alexxy/gromacs.git
5 years agoRequest flushing denorms to zero in OpenCL
Szilárd Páll [Mon, 30 Jul 2018 16:18:37 +0000 (18:18 +0200)]
Request flushing denorms to zero in OpenCL

This change adds by default the -cl-denorms-are-zero to the flags used
for kernel compilation. This is done to:
- avoid a large performance penalty on AMD Vega with ROCm (which by
  default handles denorms on GFX9 or later).
- make the defaults uniform across CUDA and OpenCL.

Fixes #2593

Change-Id: I9e6183c4367b5960e0e21f1dd342d7695acfbc44

5 years agoEnsure domains are large enough for atom motion
Berk Hess [Thu, 16 Aug 2018 11:51:18 +0000 (13:51 +0200)]
Ensure domains are large enough for atom motion

The introduction of the dual pair list has led to larger nstlist
values, which leads to larger atom displacements between domain
decomposition steps. This has made it much more likely that
"atom moved to far" errors appeared at DD and PME redistribution.
Now minimum DD cell size setting correctly takes into account atom
displacement (when there is a reference temperature).

Note that this can significantly increase the minimum DD cell size
for solvent systems and slighlty for systems with large molecules.

Fixes #2614

Change-Id: Ie41131e9eed3ef828928516a6b8ebfb9b5ba2bdb

5 years agoFixed mdrun segv with QM/MM ONIOM scheme
Berk Hess [Tue, 21 Aug 2018 08:07:22 +0000 (10:07 +0200)]
Fixed mdrun segv with QM/MM ONIOM scheme

Fixes #2617

Change-Id: I097d392ea53aeff589042df5074866e07a0ce5c5

5 years agoRefactor calc_verlet_buffer_size()
Berk Hess [Thu, 16 Aug 2018 11:45:23 +0000 (13:45 +0200)]
Refactor calc_verlet_buffer_size()

Split of parts, which will be reused, from calc_verlet_buffer_size().
This change is only code motion.

Refs #2614

Change-Id: I9cf68a2661ee10eb991240d2768c077df9f9c0c5

5 years agoDisable single compilation unit with CUDA 9.0
Szilárd Páll [Thu, 19 Jul 2018 13:53:43 +0000 (15:53 +0200)]
Disable single compilation unit with CUDA 9.0

CUDA 9.0 does not support CC 2.x, hence even with the default list of
targeted arch, multiple compilation units an be enabled.

Fixes #2561

Change-Id: I741081da39539f211fad32bda5c1f1dccc4378f9

5 years agoFix Verlet buffer estimate with BD
Berk Hess [Thu, 16 Aug 2018 11:19:55 +0000 (13:19 +0200)]
Fix Verlet buffer estimate with BD

With BD and bd_fric>0, the masses used for estimating the pairlist
buffer based on estimated motion of constrained atoms and virtual
sites were, incorrectly, the actual masses instead of 1.

Fixes #2613

Change-Id: I5378c5f5566ccda28554b5a6c7d7c403228aa794

5 years agoFix assertion failure in CG
Berk Hess [Tue, 14 Aug 2018 08:31:24 +0000 (10:31 +0200)]
Fix assertion failure in CG

When the final step coincided with a coordinate output step,
conjugate gradient minimization would exit with an assertion failure
instead of writing confout.gro.

Fixes #2554

Change-Id: I53fffccb5310259132724b83ee452ef01f8ac9c8

5 years agoReally fix CG with multiple domains
Berk Hess [Tue, 14 Aug 2018 08:02:44 +0000 (10:02 +0200)]
Really fix CG with multiple domains

Commit 9232fa9a incorrectly claimed to fix CG with multiple domains.
The change fixes all issues due to the change of the global state
only being available on the master rank.

Note that there is still an issue with writing the final trajectory
frame.

Refs #2554

Change-Id: I1ed3363f722daad9e6aef00d9ded6647acc820f2

5 years agoAdd check for pull group PBC to grompp
Berk Hess [Wed, 15 Aug 2018 14:45:15 +0000 (16:45 +0200)]
Add check for pull group PBC to grompp

Pull groups that use a reference atom for periodic boundary treatment
should have all their atoms well within half the box size of this
reference. When this is not the case, grompp will now issue a warning.

Refs #2397

Change-Id: Ida7004624a470981d9ce22a1ef921daebad83364

5 years agoImprove GPU detection sanity check error message
Szilárd Páll [Mon, 13 Aug 2018 14:36:38 +0000 (16:36 +0200)]
Improve GPU detection sanity check error message

When the unexpected condition is triggered some extra info on what type
of error has been left behind after a successful detection of a
compatible GPU is now printed to aid with identifying issues.

Refs #2415

Change-Id: I85e0da4c339df8184aa2dec49440ce2d0e83e8bf

5 years agoFix enforced rotation energy output
Mark Abraham [Tue, 17 Jul 2018 22:49:51 +0000 (00:49 +0200)]
Fix enforced rotation energy output

Its own per-group energy output files were always OK, but normal edr
and log writing didn't work unless pull groups were also active.

Change-Id: I66d3eb1e14b72766c385a69fd35a750b2338343f

5 years agoFix SIMD anyTrue bug, and add better unit test
Erik Lindahl [Mon, 13 Aug 2018 12:48:26 +0000 (14:48 +0200)]
Fix SIMD anyTrue bug, and add better unit test

The double precision versions could occasionally
miss elements.

Fixes #2588.

Change-Id: Ie033a3af0e5de25205533868062716a83f33df3c

5 years agoFix gmx solvate topology updating
Kevin Boyd [Thu, 2 Aug 2018 01:33:19 +0000 (21:33 -0400)]
Fix gmx solvate topology updating

The topology update of gmx solvate was hardcoded to SOL molecules
(and some of the reported quantities also registered HOH and WAT).

Changed to allow updates based on any solvent molecule information.

Also, now allows for updates with multiple solvent molecule types
in the input solvent configuration

Added test case for topology update with multiple solvents

fixes #1929

Change-Id: If506e0f509c8a25cb615fb8d3f15b4dfdb239afa

5 years agoFix -skip option for gmx rms
Paul Bauer [Wed, 25 Jul 2018 14:27:23 +0000 (16:27 +0200)]
Fix -skip option for gmx rms

Made sure request to skip points is honored.

Fixes #2565

Change-Id: I518d3f91861f89426020861d0382f5e689f33ba0

5 years agoReport up to date hwloc version information
Kevin Boyd [Tue, 31 Jul 2018 01:54:27 +0000 (21:54 -0400)]
Report up to date hwloc version information

The hwloc version in gmx --version and log files had been
taken from HWLOC_API_VERSION in the hwloc header, which is
not always updated to reflect new releases.

Added HWLOC_VERSION to buildinfo.h from cmake, used in place of
HWLOC_API_VERSION

Fixes #2591

Change-Id: I0ed9f1f1ad9b4262fbb966c03c407eeb1edfc3da

5 years agoFix CG with multiple domains
Mark Abraham [Wed, 18 Jul 2018 14:50:13 +0000 (16:50 +0200)]
Fix CG with multiple domains

The global state can only be accessed on master rank, so we should set
the flags there and then permit the DD code to propagate the setup of
the cg_p vector.

Fixes #2554

Change-Id: If294bf000eb0266125ecc6c6bf937aac0390e2b8

5 years agoImprove the robustness of the nvcc CMake check
Szilárd Páll [Mon, 23 Jul 2018 15:06:54 +0000 (17:06 +0200)]
Improve the robustness of the nvcc CMake check

The check to assess whether nvcc is likely functioning as expected is
made more robust by including the build-type specific CUDA_NVCC_FLAGS_*
flags in the test compilation.

Change-Id: I175809809fa436cb887c8b2a1cb48914338e596b

5 years agoFix nvcc host compiler check triggering
Szilárd Páll [Mon, 23 Jul 2018 13:46:53 +0000 (15:46 +0200)]
Fix nvcc host compiler check triggering

The nvcc host compiler check conditional triggering on the change of the
host compiler binary has not been functional as the check has been
placed after another gmx_check_if_changed() call on the same variable.
This change moves the code that checks the functioning of nvcc and host
compiler to gmxManageNvccConf and refactors the conditionals to reuse
the result of the previously issues check if changed call.

Fixes #2583

Change-Id: I26586aaec394cce93a05774cb4184b3928b560cb

5 years agoFix bfactor output
Paul Bauer [Fri, 20 Jul 2018 14:01:36 +0000 (16:01 +0200)]
Fix bfactor output

The fix for the PQR file output caused the files containing bfactors to
be incorrectly written in this format due to a missing check that has
been added.

Fixes #2575

Change-Id: I35c3b99fee81db689df9564c3386edd85e26cbb2

5 years agoCorrections to the user guide mdrun perf section
Szilárd Páll [Wed, 25 Jul 2018 14:55:31 +0000 (16:55 +0200)]
Corrections to the user guide mdrun perf section

* Corrected some MPI examples that used the non-suffixed gmx binary;
* Corrected a reference to tMPI threads;
* Added -pmefft to the perf-related options description

Change-Id: I5761e14816ae70efd200bb82cf48641d9d9dad67

5 years agoFixed syntax error in make_gromos_rtp.py
Kevin Boyd [Sun, 29 Jul 2018 12:54:04 +0000 (08:54 -0400)]
Fixed syntax error in make_gromos_rtp.py

Didn't affect the resulting rtp if everything else was in order,
just prevented an error message.

Refs #2557

Change-Id: I5289db159b62abde31103841c33d2b90f4a7717e

5 years agoFix pre-submit matrix
Mark Abraham [Wed, 18 Jul 2018 05:53:03 +0000 (07:53 +0200)]
Fix pre-submit matrix

Changes in slave configuration for master branch need matching
changes here

Change-Id: I0e1b38ae0de85d02b427d5fb61c0b1068fe43e83

5 years agoUpdated to prepare for 2018.3 release
Mark Abraham [Wed, 21 Mar 2018 15:04:44 +0000 (16:04 +0100)]
Updated to prepare for 2018.3 release

Change-Id: I0c33fcbdfcc0010b5a13cbbc5503c6a95df751dc

5 years agoVersion 2018.2
Mark Abraham [Wed, 13 Jun 2018 00:30:34 +0000 (02:30 +0200)]
Version 2018.2

Updated release notes for some commits that were missing them.

Change-Id: Id9eca559faa981fb762699a34336b6b3d0f58399

5 years agoFix premature reporting of action when GPUs are not detected
Mark Abraham [Wed, 13 Jun 2018 07:24:45 +0000 (09:24 +0200)]
Fix premature reporting of action when GPUs are not detected

The decision about what to do when GPUs could not be detected is a
responsbility taken at a higher level, so the detection handling code
should just report the facts.

Clarified some of the intended usage in the documentation

Fixes #2374

Change-Id: I63b569e053dd88d66351640019efc758e91bbdff

5 years agoUpdate top-level README
Mark Abraham [Wed, 13 Jun 2018 07:09:36 +0000 (09:09 +0200)]
Update top-level README

Included most recent core GROMACS publication

Change-Id: If389c72902831598b7cf0263a7b74e40c8d21f86

5 years agoFixed documentation typo
Mark Abraham [Wed, 13 Jun 2018 07:39:26 +0000 (09:39 +0200)]
Fixed documentation typo

This version is true to the original text.

Refs #2359

Change-Id: I3c2ab7a30109a397999883d5147346f1244a77f0

5 years agoAdd AWH continuation consistency checking
Berk Hess [Tue, 20 Mar 2018 13:35:34 +0000 (14:35 +0100)]
Add AWH continuation consistency checking

AWH now checks at checkpoint continuation that the number of
visits/samples matches the update count. This catches unallowed
changes of AWH parameters or the number of walkers.

Change-Id: I3e3325327552f1f6c2f25c61ff8991c06c6fc36a

5 years agoMore fixes to suit gcc 8 for double build
Mark Abraham [Wed, 21 Mar 2018 09:57:26 +0000 (10:57 +0100)]
More fixes to suit gcc 8 for double build

gcc 7 supports the same syntax, but only gcc 8 requires it.

xl code path untested, because we have no access to a working compiler

Fixes #2421

Change-Id: I8f89af4b066be68e07a286a9fa45b8ded3c925f3

5 years agoAlso issue OMP_NUM_THREADS reading note to the log
Szilárd Páll [Thu, 29 Mar 2018 12:58:02 +0000 (14:58 +0200)]
Also issue OMP_NUM_THREADS reading note to the log

The note that was meant to inform users that OMP_NUM_THREADS was setting
the number of threads in their run (as this value can be inherited by
the env) has not been logged. It was also printed right after the tpx
reading statues making it hard to notice. Removed stderr output now
that this is no longer required.

This change makes the note easier to notice prepending a newline and
issues it to the log file too.

Refs #2472

Change-Id: I73fc9de5e9d747f9d7a094c6678ffc1547481b94

5 years agoChanged histogram check interval for multidimensional AWH bias.
Viveca Lindahl [Tue, 24 Apr 2018 16:14:15 +0000 (18:14 +0200)]
Changed histogram check interval for multidimensional AWH bias.

The step interval for performing covering checks depended explicitly
on the total number of points in the AWH histogram. The covering
checks themselves however only depends directly on the extent of each
one-dimensional axis. For a multidimensional grid in combination with
relatively few samples to cover the sampling interval (e.g. using
Brownian dynamics), this could lead to a delayed detection of the
covering.

The same step interval was also used for checking for histogram
anomalies, which however only generates warnings and is not integral
to the AWH method itself.

Now the covering check interval is instead determined from the number
of sigmas, the "width" of one sample, required to cover each
dimension. Since there is about 1 point per sigma, the dependency of
the check interval on the number of points is essentially unchanged in
the one-dimensional case. However, this relation is not numerically
exact. Therefore, this change also requires updating reference data
for a regression test to be updated.

The check interval for histogram anomalies is set to be the same as
for the covering, but could in the future be made less frequent.

Added release note.

Fixes #2487

Change-Id: I5af0d48436664d8fdfe8bafa05cde3cdae27e45a

5 years agoAdd fatal error for inconsistent graph
Berk Hess [Thu, 7 Jun 2018 09:14:27 +0000 (11:14 +0200)]
Add fatal error for inconsistent graph

In case a moleculetype consists of multiple monomers connected
by restraints, an inconsistent graph could be generated.
Now a fatal error with explanation is generated for such cases.
Also a fatal error is generated with an inconsistent graph with  long
bonds in general.

Fixes #2549

Change-Id: I6fa11fb7cefd74ed077c1fb523a2147c91e0d0fd

5 years agoAvoid COM removal moving frozen atoms
Berk Hess [Thu, 7 Jun 2018 12:27:44 +0000 (14:27 +0200)]
Avoid COM removal moving frozen atoms

Fixes #2551
Refs #2542

Change-Id: Ifd7523661248594cce7329dfd86e814b78c9c32c

5 years agoRemove constraint v correction for frozen atoms
Berk Hess [Tue, 5 Jun 2018 09:24:16 +0000 (11:24 +0200)]
Remove constraint v correction for frozen atoms

The optimized update routines no longer set the velocities of frozen
dimensions to zero, but the constraint code would still correct
the velocities of frozen dimensions.

Note that the COM correction can still modify velocities of frozen
dimensions, but this is a negligible effect unless there are
systematic COM forces.

Fixes #2542

Change-Id: I4770d9bd7991a021ce173f219eb7310a91eaf10e

5 years agoFix gmx solvate with multiple solvent molecule types
Paul Bauer [Fri, 8 Jun 2018 08:32:27 +0000 (10:32 +0200)]
Fix gmx solvate with multiple solvent molecule types

When using a solvent box with multipe solvent molecule types, gmx
solvate would crash due to memory corruption. Fixed by properly freeing
the temporary storage for the atom information.

Fixes #2550

Change-Id: I68ed6afcd7898eb9de0686b6efeb9ff74174c92b

5 years agoFix MPI inconsistency in EM after constraint failure
Berk Hess [Tue, 5 Jun 2018 14:01:01 +0000 (16:01 +0200)]
Fix MPI inconsistency in EM after constraint failure

Fixes issue #2540

Change-Id: Id18c17af82f80917388c11fc776b79bf4966a4ac

5 years agoMake sure that the value of awh-nsamples-update is allowed
Viveca Lindahl [Tue, 5 Jun 2018 20:46:55 +0000 (22:46 +0200)]
Make sure that the value of awh-nsamples-update is allowed

Previously, awh-nsamples-update could be set to zero, leading to
division by zero. Now it results in a fatal error.

Fixes #2489

Change-Id: I65aae5d5c533b9aab7ea9aae3e317e92a926c18c

5 years agoUse default CMake path variables
Erik Lindahl [Fri, 11 May 2018 14:06:59 +0000 (16:06 +0200)]
Use default CMake path variables

Remove our homegrown path variables for binaries, libraries,
manpages and data in favor of the ones documented as part of CMake.
The 'gromacs' part of the data directory has been moved to a separate
GMX_INSTALL_DATASUBDIR variable.

This enables Gromacs-2018 docker builds with multiple different
accelerations installed with different binary/library subdirectories.

Change-Id: I1618428c94ea2cfb90dc1ff5261b26a9307c1a94

5 years agoFix PQR file output
Paul Bauer [Tue, 22 May 2018 15:01:20 +0000 (17:01 +0200)]
Fix PQR file output

PQR files from editconf were always written as fixed format PDB files
with just the field information added. As pointed out in the linked
redmine, this can violate the PQR file standard if the field lengths are
too long, even though the file would still be a valid PDB.

This adds a slightly different form of the writeout that has a flexible,
PQR conform format.

Fixes #2511

Change-Id: I626380b642a0214970753da289e9c969ce411ea7

5 years agoBump GMX_BUILD_OWN_FFTW to 3.3.8 to avoid bugs
Erik Lindahl [Tue, 5 Jun 2018 09:56:07 +0000 (11:56 +0200)]
Bump GMX_BUILD_OWN_FFTW to 3.3.8 to avoid bugs

FFTW-3.3.8 seems to fix build errors with AVX-512, and
as reported on the FFTW web page it also removes the -ffast-math
flag which results in errors with gcc-8.

Fixes #2541.

Change-Id: Ibe4ef0040986e4b83f92f0bb404c72fa1b5e11ea

5 years agoFixed enemat when .edr had no matching energy groups
Mark Abraham [Mon, 21 May 2018 17:07:25 +0000 (19:07 +0200)]
Fixed enemat when .edr had no matching energy groups

Removed some debug output that obscured both the code and the useful
user-facing warnings.

Used a simpler bool construct to decide whether to issue the warning.

Fixes #2508

Change-Id: Ife56264991e365f8f5ca3b1285caea8033da7584

5 years agoImproved docs for gmx mindist -pi
Mark Abraham [Tue, 27 Mar 2018 19:47:55 +0000 (21:47 +0200)]
Improved docs for gmx mindist -pi

Change-Id: Ia8ba72afd357e4952c5adf7ede3b15ff78ad9fd6

6 years agoFix segv in AWH error message
Berk Hess [Mon, 4 Jun 2018 07:29:54 +0000 (09:29 +0200)]
Fix segv in AWH error message

Change-Id: Ie8dee0c11ea0290b5bcbb8ada837a58d00881f03

6 years agoDisallow use of empty box information in solvent files
Paul Bauer [Tue, 29 May 2018 15:04:36 +0000 (17:04 +0200)]
Disallow use of empty box information in solvent files

An empty box information in a solvent file presented to gmx solvate
could case an infinte loop because the current coordinate would always
be incremented by zero. Disallowed by introducing new function that
checks for proper box information.

Fixes #2523

Change-Id: I461509f8aafa2048253faf85ccbe388bbbaf80a7

6 years agoRemove unused results of cudaStreamQuery()
Aleksei Iupinov [Tue, 22 May 2018 09:05:03 +0000 (11:05 +0200)]
Remove unused results of cudaStreamQuery()

Coincidentally fixes #2509 (Windows + CUDA compilation)

Change-Id: I032c5fab53bf83cf0ea8c0299d8752b10d1f6c0e

6 years agoFix illegal instruction error on KNL
Roland Schulz [Mon, 21 May 2018 20:29:41 +0000 (13:29 -0700)]
Fix illegal instruction error on KNL

Fixes #2504

Change-Id: Ie2f55718f98d3dfbf3c312afa5141c77ead77a6d

6 years agoEnable SIMD version of update
Berk Hess [Wed, 2 May 2018 14:36:01 +0000 (16:36 +0200)]
Enable SIMD version of update

A bug in setting mdatoms->havePartiallyFrozenAtoms caused the SIMD
version of the leap-frog update to always be deactivated.

Fixes #2497

Change-Id: I670549c95c983cac5033ea6bb71b77561e063223

6 years agoFix indexing issue in the pull code
Berk Hess [Tue, 24 Apr 2018 14:02:09 +0000 (16:02 +0200)]
Fix indexing issue in the pull code

When determining if the COM of pull groups should be computed,
the indexing range of group[] for each pull coordinate is one element
too long. In most cases this element is 0, so in which case it only
lead to extra, useless compute when a cylinder group is used.
Note that for dihedral geometry the extra element is actually dim[0]
in pull coord, which is 0 or 1, which is harmless.

No release note, since this did not affect results, it could only
cause a minor performance loss with cylinder pulling.

Fixes #2486

Change-Id: Ie5785181fbe28d8db57e37c58553ae3835e657b7

6 years agoRemove obsolete variable prec gro file output
Paul Bauer [Tue, 17 Apr 2018 15:48:54 +0000 (17:48 +0200)]
Remove obsolete variable prec gro file output

It seems like the help message for the -ndec option in trjconv has never
been updated to indicate that gro files can no longer be written with
flexible precision. This has been fixed now.

Change-Id: Ia514bf48f6a25f13911524211a703d49b3bc307a

6 years agoPrevent OpenCL timing memory leak
Aleksei Iupinov [Tue, 27 Mar 2018 20:30:43 +0000 (22:30 +0200)]
Prevent OpenCL timing memory leak

Fixes #2470

Change-Id: I4917de697bee7df98da0037e9165e52e660f83a0

6 years agoRemove leftover mention of twin-range scheme
Mark Abraham [Thu, 29 Mar 2018 12:22:26 +0000 (14:22 +0200)]
Remove leftover mention of twin-range scheme

Also fixed a broken symref to a version number that should
never have been a symref

Change-Id: Id1b10614106748de6ff114ade4b542ac7581f4cf

6 years agoChange warninp filenm to std::string
Berk Hess [Tue, 3 Apr 2018 08:00:15 +0000 (10:00 +0200)]
Change warninp filenm to std::string

This prevent buffer overflows with long filenames.

Fixes #2465

Change-Id: Ifcd264a6b33929f6b369d543c83c16d5378db937

6 years agoClarified mdp options relating to bonds
Mark Abraham [Tue, 27 Mar 2018 19:39:34 +0000 (21:39 +0200)]
Clarified mdp options relating to bonds

Change-Id: Iffcaaaf1fc6c707c8f644da18cf03e28d2137557

6 years agoMore gcc-8 fixes for POWER
Mark Abraham [Tue, 20 Mar 2018 07:39:37 +0000 (08:39 +0100)]
More gcc-8 fixes for POWER

Fixes #2421

Change-Id: I43c13df3a217d0f2154dca0ef215efd9cd27474a

6 years agoUpdated to prepare for 2018.2 release
Mark Abraham [Wed, 21 Mar 2018 15:04:44 +0000 (16:04 +0100)]
Updated to prepare for 2018.2 release

Change-Id: I1c72e8a3ac1b6b2e29b39c2d52bad5b87a884912

6 years agoVersion 2018.1
Mark Abraham [Fri, 23 Feb 2018 13:20:17 +0000 (14:20 +0100)]
Version 2018.1

Change-Id: I3285c77fc557c1a6f34796c4bfb4843846b0d8a5

6 years agoMerge "Merge branch release-2016 into release-2018" into release-2018
Mark Abraham [Wed, 21 Mar 2018 11:07:16 +0000 (12:07 +0100)]
Merge "Merge branch release-2016 into release-2018" into release-2018

6 years agoUpdate release notes for 2018.1
Mark Abraham [Tue, 27 Feb 2018 16:10:15 +0000 (17:10 +0100)]
Update release notes for 2018.1

Change-Id: Ia60d523647e1915856ae3b00a0cb9eacd939fc56

6 years agoMerge branch release-2016 into release-2018
Mark Abraham [Tue, 20 Mar 2018 22:17:51 +0000 (23:17 +0100)]
Merge branch release-2016 into release-2018

Conflict in pre-submit matrix, kept 2018 content that already
has the same logical change made.

Change-Id: I40b2db8d149388bed07471fcdb8082b0fc92b9b5

6 years agoDocument matrix_convert function in PBC
Vedran Miletić [Tue, 20 Mar 2018 11:27:45 +0000 (12:27 +0100)]
Document matrix_convert function in PBC

The brief documentation was in place, but the documentation of the
function parameters was missing. This patch adds it and also fixes
incorrect Doxygen syntax at pbc_dx_d.

Change-Id: Ic897911bf4b8866bb7c4dc3aea982493cc03874c

6 years agoFix gmx dump AWH formatting issue
Berk Hess [Tue, 20 Mar 2018 12:19:01 +0000 (13:19 +0100)]
Fix gmx dump AWH formatting issue

A comma was missing in the list of AWH checkpoint entry string
which caused the naming to be messed up in the gmx dump output.

Change-Id: I85d0722236f3f9559c1117fdcee39766d04b424d

6 years agoUpdate use of gpu_id in Jenkins
Mark Abraham [Tue, 20 Mar 2018 11:50:17 +0000 (12:50 +0100)]
Update use of gpu_id in Jenkins

We plan to remove one of the GPUs from the slave that had three, so we
need to update the testing configurations. The new configuration might
balance load a little better.

Refs #2408, #2410

Change-Id: I3b5d9c8702c021f0676ea3ca12f9e7f1d3317ed1

6 years agoDisallow single simulation with multisim
Berk Hess [Mon, 19 Mar 2018 13:33:47 +0000 (14:33 +0100)]
Disallow single simulation with multisim

To avoid many untested code paths, we, at least temporarily,
disable a single simulation with mdrun -multisim and -multidir.

Refs #2448

Change-Id: I9befdb677f3c77bcc6dc0c77abc3478f0b83ba8d

6 years agoUpdate use of gpu_id in Jenkins
Mark Abraham [Tue, 20 Mar 2018 11:51:56 +0000 (12:51 +0100)]
Update use of gpu_id in Jenkins

We plan to remove one of the GPUs from the slave that had three, so we
need to update the testing configurations. The new configuration might
balance load a little better.

Refs #2408, #2410

Change-Id: Ie253ef07998cf45c5fc2e118a5394f0817e66f75

6 years agoClarify the mdrun GPU options docs
Aleksei Iupinov [Thu, 1 Mar 2018 22:32:03 +0000 (23:32 +0100)]
Clarify the mdrun GPU options docs

Refs #2359

Change-Id: If112077a59f875ffb1c689b2ac67dad7cdf2adb9

6 years agoFix VSX SIMD with gcc 8
Mark Abraham [Fri, 16 Mar 2018 21:21:48 +0000 (22:21 +0100)]
Fix VSX SIMD with gcc 8

gcc 8 apparently generates different code for the former GROMACS
code, which seems buggy. See
https://bugzilla.redhat.com/show_bug.cgi?id=1556989#c3
and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84907

Fixes #2421

Change-Id: I31492cd582b785cdfb42e8b999a165a7339ce4be

6 years agoCorrect PMF sign error in AWH bias sharing
Berk Hess [Fri, 16 Mar 2018 10:00:41 +0000 (11:00 +0100)]
Correct PMF sign error in AWH bias sharing

Recent commit 229c8f63 was though to fix a sign error in
the calculation of the deconvolution of the AWH PMF when sharing
the bias over multiple simulations, but this sign was misplaced.

Fixes #2439

Change-Id: I67ec06ff4d832a857467b58b362f9f6f88671aa8

6 years agoFix recent mdrun signaling bug
Berk Hess [Thu, 15 Mar 2018 17:09:55 +0000 (18:09 +0100)]
Fix recent mdrun signaling bug

Recent commit e4deba12 accidentally negated the locality condition
for signaling checkpoint and termination in mdrun.

Fixes #2457

Change-Id: I1b7a4c26637766a44cad2581c9c9ec420aa4ab6e

6 years agoFix virial with external pull potential and MPI
Berk Hess [Thu, 15 Mar 2018 10:25:50 +0000 (11:25 +0100)]
Fix virial with external pull potential and MPI

When using an external pull potential with domain decomposition,
currently this is only used by AWH, the virial contribution would
be multiplied with the number of MPI ranks.

Fixes #2455

Change-Id: I61452fb9eca6e68fea3256cc25b39033a9c5d8e7

6 years agoImprove inter-simulation signaling
Berk Hess [Wed, 14 Mar 2018 10:59:53 +0000 (11:59 +0100)]
Improve inter-simulation signaling

Use a single boolean for controlling inter-simulation signaling.
This would have prevented issue #2447.
Introduce an inter-simulating signaling frequency. This both
simplifies the code and significantly reduces communiation overhead
for many simulations and/or many ranks per simulation.
Correct the terminimation step print with replica exchange.

Refs #2440 and #2447

Change-Id: I8ed50c5b11564d9a967bcacb15c4fcd3be05caea

6 years agoFix mdrun signalling with AWH bias sharing
Berk Hess [Wed, 14 Mar 2018 08:32:23 +0000 (09:32 +0100)]
Fix mdrun signalling with AWH bias sharing

The recent commit 717fd5b8, which should have fixed issue #2440,
disabled checkpointing and termination by disabled signalling
between AWH runs that share a bias.

Fixes #2447
Refs #2440

Change-Id: Ic80ea07cfa1bde1b31fa9d660f00492b794b000f

6 years agoFix COM pulling with external potential with #ranks>32
Berk Hess [Mon, 12 Mar 2018 15:54:04 +0000 (16:54 +0100)]
Fix COM pulling with external potential with #ranks>32

With more than 32 PP-ranks, the pull code could use only a subset
of the PP-ranks. This change forces all ranks to do pulling when
external potentials are present (currently only used by AWH).

Fixes #2441

Change-Id: I8501024b7961600ec79f3707e239ddf25525aa79

6 years agoFix pull bug with geometry=direction-periodic
Berk Hess [Tue, 13 Mar 2018 13:59:19 +0000 (14:59 +0100)]
Fix pull bug with geometry=direction-periodic

When doing COM pulling with geometry direction-periodic,
the reference location needs to be used to compute the current
distance. This reference was taken from the previous step instead
of the current. In practice this only caused issues at restarts
when the distance was more than half the box length.

Fixes #2446

Change-Id: Ie0c0341ad8c6ce1e78951270cab27ecaf95d65eb

6 years agoAdd AWH fixes to release notes
Berk Hess [Tue, 13 Mar 2018 13:18:45 +0000 (14:18 +0100)]
Add AWH fixes to release notes

Change-Id: I17531da77495367b0e62b4e0b0e912bbd16659f9

6 years agoFix AWH ensemble checkpointing
Berk Hess [Mon, 12 Mar 2018 15:43:53 +0000 (16:43 +0100)]
Fix AWH ensemble checkpointing

AWH multi-runs with shared bias could terminate at different steps
leading to checkpointing from which continuation was impossible.

Fixes #2440.

Change-Id: I728c6aea9d030fcfad04efc6082309dafe3408bd

6 years agoFix AWH deconvolution when sharing a bias
Berk Hess [Mon, 12 Mar 2018 20:36:07 +0000 (21:36 +0100)]
Fix AWH deconvolution when sharing a bias

When sharing an AWH bias over multiple simulations, the PMF output
was garbage due to a missing minus sign in the reduction.
Note that this only affected the PMF output, not the sampling.

Fixes #2439

Change-Id: I688cda045f5e757e58b392d64384705b3ac73a17

6 years agoFix clang 6.0 with CUDA 9.0
Szilárd Páll [Mon, 12 Mar 2018 23:23:07 +0000 (00:23 +0100)]
Fix clang 6.0 with CUDA 9.0

This enables clang 6.0 CUDA build for sm_70 and works around an issue
which seems to affect sm_37 support.

Fixes #2443

Change-Id: Ib9c52e4a3a8ac1e05e851c8166eec4a6b5df4825

6 years agoTest gcc-6 and cuda-9.0
Mark Abraham [Fri, 23 Feb 2018 12:20:56 +0000 (13:20 +0100)]
Test gcc-6 and cuda-9.0

Change-Id: Iba9436d9629a404290eb02d897b8d48f2a77b5ee

6 years agoCorrect pdb2gmx -missing option
Berk Hess [Wed, 7 Mar 2018 12:48:42 +0000 (13:48 +0100)]
Correct pdb2gmx -missing option

The help text for the pdb2gmx -missing option only mentioned
missing atoms, but when atoms are missing also bonded interactions
will be missing. Now bonds are mentioned in the help text.
Since -missing allows for missing bonds, it now also allows for
dangling bonds at termini (which can actually be useful in special
cases).

Change-Id: I8d7215691ffc7dbb49f41964af9639c01355d775

6 years agoExtend "Finding out how to run mdrun better" section
Szilárd Páll [Tue, 6 Mar 2018 18:10:55 +0000 (19:10 +0100)]
Extend "Finding out how to run mdrun better" section

Change-Id: I76c75504ef505e2547861015eb20d6d6b1f31383

6 years agoFixed dvdlambda for SHAKE + FE
Mark Abraham [Fri, 2 Mar 2018 10:22:42 +0000 (11:22 +0100)]
Fixed dvdlambda for SHAKE + FE

Garbage values have been accumulated to dvdlambda whenever SHAKE was
used.

Refactoring in 513813b514 removed the lam variable. Previously, it was
used as a temporary iteration variable over SHAKE blocks, but that
refactoring to use the main variable changed the logic of the
following loop.

Fixes #2434

Change-Id: Ia9642f50358ab31ec98f8317f7a1dcda8622a9f1

6 years agoMake multi-atom TPI reproducible
Berk Hess [Mon, 5 Mar 2018 15:34:38 +0000 (16:34 +0100)]
Make multi-atom TPI reproducible

Test particle insertion of molecules of more than one atom called
a rotate function with multiple random calls in the arguments. This
lead to non-reproducible results, at least when switching compiler,
since the language does not define the argument evaluation order.
Note that this issue did not affect physical correctness.

Change-Id: I9ab07566878f381f11284d813d9077fa90e68866

6 years agoAdd checks for non-null log file pointer in AWH
Viveca Lindahl [Mon, 5 Mar 2018 18:31:20 +0000 (19:31 +0100)]
Add checks for non-null log file pointer in AWH

Mdp-option 'awh1-equilibrate-histogram=yes' and certain run setups could
lead to a segmentation fault due to fplog being null.

Fixes #2436

Change-Id: I0110325a8624c9d434af5eeeccace29814d40f2d

6 years agoWork around gcc bug with group kernel tables
Berk Hess [Wed, 28 Feb 2018 13:09:33 +0000 (14:09 +0100)]
Work around gcc bug with group kernel tables

The LJ-only interaction tables for the group kernels were incorrectly
copied with the combination of gcc-6, AVX and -O3.
Since this bug replaced -1/(6 r^6), 1/(12 r^-12) by 1/r,-1/(6 r^6)
for odd table indices, this could not cause silent errors.

Fixes #2424

Change-Id: I021d4f2fe81bd635e6f02686118d661af8c444a6

6 years agoAdd to the contributor section
Szilárd Páll [Fri, 2 Mar 2018 16:58:41 +0000 (17:58 +0100)]
Add to the contributor section

Change-Id: I1642f1ca247cf0e11781af4848b74e3d0ebd5082

6 years agoFix AWH bias-sharing with parallel simulation
Berk Hess [Thu, 1 Mar 2018 20:58:32 +0000 (21:58 +0100)]
Fix AWH bias-sharing with parallel simulation

Sharing the AWH bias over multiple simulations only worked when
each simulation was running on a single MPI rank. Now parallel
simulations also work.

Fixes #2433.

Change-Id: I71f9069a31b033151c772aac84c9912d91b213a1

6 years agoDetect AMD SMT topology
Berk Hess [Fri, 23 Feb 2018 14:22:50 +0000 (15:22 +0100)]
Detect AMD SMT topology

On AMD Zen the cpuinfo code detected hyperthreading but put all
threads on different cores in the topology. Now the correct
topology is detected using extended APIC.
Also disabled topology detection for non-AMD, non-x2APIC x86.

Fixes #2388

Change-Id: I194f3e09e669c20d1d62355a36be062e6cce264e

6 years agoFix mdrun multisim with separate PME ranks
Berk Hess [Thu, 1 Mar 2018 08:30:55 +0000 (09:30 +0100)]
Fix mdrun multisim with separate PME ranks

When running multiple simulations using separate PME ranks,
mdrun would call MPI_Barrier with MPI_COMM_NULL on some ranks.
Note: no new release note needed, since this fixes a fix.

Refs #2403
Fixes #2431
Fixes #2432

Change-Id: I7fe96a15b5030dea3e093d12850f89f00ccc9f48

6 years agoFix GPU utils test
Mark Abraham [Fri, 23 Feb 2018 14:15:46 +0000 (15:15 +0100)]
Fix GPU utils test

We should only attempt device-side work when we have compatible GPUs.

Fixes #2405 for CUDA

Change-Id: Idc28c7e89a5f08ee1d19943e3663385f2b23ff44

6 years agoPermit define .mdp field to assign values
Mark Abraham [Fri, 23 Feb 2018 10:45:56 +0000 (11:45 +0100)]
Permit define .mdp field to assign values

It is intended that the "define" .mdp field can set preprocessor
variables to values, but this got broken in some clean up. Added a
test to cover it.

Fixes #2392

Change-Id: I16a3705a0d59a912a8eb7bfad0b472f12d2dc377

6 years agoOrganize for recording 2016-era release notes and add them
Mark Abraham [Tue, 9 Jan 2018 13:41:38 +0000 (14:41 +0100)]
Organize for recording 2016-era release notes and add them

This hierarchical organization will make it easy for us to present to
users that there were two maintained release series at the time of
writing, while making available links to the releases notes of
unmaintained series, and having a straightforward path for migrating
the 2016 folder to the older folder and updating the appropriate
links.

In master branch, we will have stub .rst files in
docs/release-notes/major/ that we can fill out as functionality
changes, and movev to docs/release-notes/2019/major when we
make the release-2019 branch.

Changes to release notes in release branches will merge naturally.

Later, we can make sure that tarballs can have a useful plain-text
version built into them via sphinx also.

Change-Id: Ie35f90a616cb89727f5a9600389fdf228ecd03cb

6 years agoFix md integrator with Nose-Hoover coupling
Berk Hess [Wed, 21 Feb 2018 22:02:32 +0000 (23:02 +0100)]
Fix md integrator with Nose-Hoover coupling

When applying NH T-coupling at an MD step and no PR P-coupling,
the md integrator could apply pressure scaling with an uninitialized
or outdated PR scaling matrix.

Fixes #2418

Change-Id: I835db72776e7782ac044807961bb899e4f8c6c7b

6 years agoSwitch pre-submit CUDA 8.0 test to 9.0
Szilárd Páll [Wed, 21 Feb 2018 00:12:59 +0000 (01:12 +0100)]
Switch pre-submit CUDA 8.0 test to 9.0

Noted in TODO to add a CUDA 9.1 + gcc 6 config.

Change-Id: I1e9e1a0bcd99237167335f475d65791f6059dbb3

6 years agoAvoid aborting mdrun when GPU sanity check detects errors
Szilárd Páll [Fri, 16 Feb 2018 18:48:46 +0000 (19:48 +0100)]
Avoid aborting mdrun when GPU sanity check detects errors

A release assertion was added which assumed that the GPU
compatibility/sanity checks return with a clean CUDA API state.
Consequently, any run that encountered a non-success return value from
the CUDA API would abort the run instead of continuing the run without
using the GPU in question.
This change adds code to handle and issue a note on the error
encountered as well as ensures that the CUDA API error state cleared
at the return of the GPU detection.

Fixes #2415

Change-Id: I5d7ed59ef8e4052a75b51c9a526b8dcb465ff611

6 years agoMerge branch release-2016 into release-2018
Mark Abraham [Fri, 16 Feb 2018 17:09:01 +0000 (18:09 +0100)]
Merge branch release-2016 into release-2018

Change-Id: If1c8c37bbfc44ae383999b828d1dfea4cf67d1ea

6 years agoBumped patch version for next release
Mark Abraham [Fri, 16 Feb 2018 15:06:21 +0000 (16:06 +0100)]
Bumped patch version for next release

Change-Id: I174548b1be5261aea861ec29d550ee323ce3702e

6 years agoCorrect multisim MPI barrier
Berk Hess [Wed, 7 Feb 2018 10:03:46 +0000 (11:03 +0100)]
Correct multisim MPI barrier

An MPI barrier used with multisim was called on incorrect ranks
and a barrier was missing.

Fixes #2403

Change-Id: I06a66167afc8dca9cdd4ca9b4f9a806984a6ec7a

6 years agoFix PME for large systems with Fermi GPUs
Aleksei Iupinov [Thu, 15 Feb 2018 12:27:48 +0000 (13:27 +0100)]
Fix PME for large systems with Fermi GPUs

PME spread/gather CUDA kernel scheduling did not account for
compute capability limitations. Realistically this has only
caused it to fail on CC 2.x with input systems larger than
2^18 ~= 262k atoms. This is now fixed for all CUDA architectures.

Fixes #2409

Change-Id: I59295b5d53a341d08a221aebb52e1db9f1e80107

6 years agoVersion 2016.5
Mark Abraham [Fri, 16 Feb 2018 07:41:28 +0000 (08:41 +0100)]
Version 2016.5

Change-Id: I7dd31f2deea884f3075555547c4f3691bd4adae3

6 years agoAdd the missing comma in the quote
Aleksei Iupinov [Thu, 15 Feb 2018 14:19:33 +0000 (15:19 +0100)]
Add the missing comma in the quote

This was printed as:
GROMACS reminds you: "It's just B I O L O G Y, can't you see?Joe Jackson" ((null))

Change-Id: I69e86ecda8930fffeeab3a54f2f015339fd9b345