Incorporated all fixes made in version 5.0.7

Fixed bugs with intermol interactions and DD

Fixed two array access issues with the combination of intermolecular interactions with domain decomposition when special bonded communication was used. This could not lead to silent errors. Added intermolecular interactions to the DD maximum distance check. Disabled (fatal error) the above combination with charge groups.

Also fixed longest 2-body interaction distance print in case the longest distance is in an exclusion.

Issue 1820

Fixed intermolecular interactions with small mols

Fixed intermolecular interactions not being assigned with domain decomposition for system with only single charge group molecules.

Fixed signalling on some platforms

Signalling used for coordinating things like checkpoints and end-of-run conditions was broken on platforms where the char type defaults to unsigned (e.g. Power). Now fixed by specifying the use of signed char.

Added code to detect incorrect cycle counting

When threads are not pinned to cores, the wallcycle counting can get messed up on machines where the cycle counters are not synchronized between the cores. Since it’s difficult to detect thread pinning on all architectures and without pinning the counting can be correct on synchronized machines, we try to detect incorrect counters. We only detect negative cycle counts, but that should catch nearly all cases. When we detected an invalid count, we ignore the cycles counted and do not print the cycle accounting table. Dynamic load balancing is never disabled, because a few incorrect load measurements do not cause problems here.

Issue 1821

Fixed wallcycle subcounters

The MPI receive buffer has to be as long as the send buffer, but the problem can only be seen if you configure with GMX_CYCLE_SUBCOUNTERS on.

Issue 1821

Removed dihedrals from GLY .rtp entry.

This is the only FF file that uses these dihedrals for GLY, which prevent the generation of a topology involving GLY-PRO because of the assumption that +H exists. Removing all explicit [dihedrals] to conform to the same format as all other AMBER FF.

Fixed broken OpenCL build and detection

Fixed that an extra semicolon in CMake code broke the OpenCL build everywhere.

Fixed that the OpenCL device compatibility test was broken all platforms other than OS X.

Issue 1824

Improved NVML support

Introduced a check on the NVML API version in order to avoid compilation issues when old driver/NVML versions are picked up.

Reworded and added hints related to fixing/working around the issues presented to the user.

Eliminated the note about unsuccessful NVML detection that appears after the first cmake run.

Issue 1838

Add CUDA nvcc >=7.0 support

With CUDA 7.x, there is a few % performance benefit to using sm_52 arch as target instead of JIT-ed compute_50, mostly relevant with the newly released v7.5 (as v7.0 has other regressions which make it slower).

This change adds a single new target architecture (5.2) and changes the virtual architecture included in the binary from 5.0 to 5.2 with new enough nvcc to make 5.1.x versions future-proof when new hardware is released.

Fixed nbnxn_4xN performance regression

Commit 8e92fd67 changed the 2xNN kernel to use gmx_simd_blendnotzero_r and the 4xN kernel to use gmx_simd_blendv_r. Making the 4xN kernel consistent with the 2xNN kernel improves the performance with AVX2 with 4% and 3% for the RF and PME kernels, respectively.

Fixed GMX_EXTERNAL_BOOST configuration

Issue 1844.

Fixed syntax of PME tuning error message

The ‘%’ preceding the format specifier was missing.

Made bash completions work with bash –posix

Replace dashes in generated function names with underscores.

Related to Issue 1840.

Fixed mdrun -nb auto -rerun with GPU and energy groups

mdrun -nb auto -rerun behaved as if -nb gpu had been used (gave a fatal error). Now fixed, so that the use of energy groups triggers a CPU-only rerun as originally intended.

Issue 1823

Fixed -seltype option for C++ tools

Accidentally unavailable in any tool (since 5.0), now fixed.

Fixed a reaction-field warning message

A wrong warning message was given when epsilon-rf was non-zero.

Hardened FindSphinx.cmake

Particularly in cross-compilation environments, our CMake code could find Sphinx, fail to execute a test, and then respond inappropriately. Now fixed.