alexxy/gromacs.git
6 years agoMerge branch release-2018
Mark Abraham [Fri, 9 Feb 2018 10:34:15 +0000 (11:34 +0100)]
Merge branch release-2018

Change-Id: I2524a854b75c0100ab821c4512339f3768ed4428

6 years agoUse more portable python shebangs
Mark Abraham [Tue, 6 Feb 2018 16:22:16 +0000 (17:22 +0100)]
Use more portable python shebangs

Per https://www.python.org/dev/peps/pep-0394/#recommendation, we
should use env, and point it at python2. When we either make them 2/3
or just-3 compatible, this should change.

Some distros (notable Arch Linux) already point python at python3 so
we should choose to be explicit, and thus somewhat portable.

Fixes #2401

Change-Id: Icf98e04660c798d10b167f971b20698e0741994a

6 years agoMerge "Merge branch release-2016 into release-2018" into release-2018
Mark Abraham [Thu, 8 Feb 2018 17:45:26 +0000 (18:45 +0100)]
Merge "Merge branch release-2016 into release-2018" into release-2018

6 years agoMerge branch release-2016 into release-2018
Mark Abraham [Thu, 8 Feb 2018 16:55:11 +0000 (17:55 +0100)]
Merge branch release-2016 into release-2018

Resolved conflicts in commit matrices by implementing the same logical
change as in release-2016 (move msvc+icc config to post-submit matrix)
in release-2018.

Change-Id: Id5d731e37e54b8c3896763d0a4ca496f99612f0f

6 years agoUse SIMD bondeds without perturbed interactions
Berk Hess [Wed, 24 Jan 2018 15:26:08 +0000 (16:26 +0100)]
Use SIMD bondeds without perturbed interactions

With free-energy, but without perturbed bonded interactions,
we would use the SIMD accelerated bondeds functions.

Change-Id: I67bdb0cba9c6ec20b076576af940d2be51fa6c9f

6 years agoAlways run the essential dynamics tests
Aleksei Iupinov [Thu, 8 Feb 2018 15:12:14 +0000 (16:12 +0100)]
Always run the essential dynamics tests

Change-Id: Ice24b0217d55d3c19ebdcb6b25a3f2f3539c31ef

6 years agoEnable debug FP exceptions without TPI, not with TPI
Aleksei Iupinov [Mon, 5 Feb 2018 14:49:15 +0000 (15:49 +0100)]
Enable debug FP exceptions without TPI, not with TPI

This was broken since I2a152a752079ca4. A FIXME is marked
to resolve interaction with the hidden command line switch
"-fpexcept".

Change-Id: I4b270233db34f19766d1bc4dda1725d7fcf9e897

6 years agoMerge "Merge branch 'release-2018' into master"
Mark Abraham [Thu, 8 Feb 2018 12:18:00 +0000 (13:18 +0100)]
Merge "Merge branch 'release-2018' into master"

6 years agoMerge branch 'release-2018' into master
Aleksei Iupinov [Thu, 8 Feb 2018 10:47:06 +0000 (11:47 +0100)]
Merge branch 'release-2018' into master

Manually modified:
src/programs/mdrun/md.cpp (to uncomment done_ebin())

Change-Id: Ic3887c40668f69e69ee8da15d210721b8bd3e95f

6 years agoAllow bonds with distance=0
Berk Hess [Wed, 7 Feb 2018 12:15:19 +0000 (13:15 +0100)]
Allow bonds with distance=0

We should allow overlapping atoms in harmonic bonds. But the code
would cause a floating point exception and incorrect free-energy
derivatives.
Note that using sqrt(x) instead of x*invsqrt(x) is faster on Intel.

Change-Id: I87dd1e84f8f526ac40e482bccc94d89e33a1d112

6 years agoCleaning up do_force_cutsVERLET function from wallcycle calls
Prashanth Kanduri [Mon, 18 Dec 2017 09:05:04 +0000 (10:05 +0100)]
Cleaning up do_force_cutsVERLET function from wallcycle calls

Change-Id: I50bead1f0760e2f61f5002d33bba8fc6e85692b5

6 years agoRemove unnecessary includes from domdec.h
Aleksei Iupinov [Tue, 6 Feb 2018 10:37:09 +0000 (11:37 +0100)]
Remove unnecessary includes from domdec.h

Change-Id: I0d1e1d8ebc52a60b3b939525b61952980b46d673

6 years agoZero unused values to silence the warning
Aleksei Iupinov [Tue, 6 Feb 2018 15:29:43 +0000 (16:29 +0100)]
Zero unused values to silence the warning

Change-Id: I8419a823e9a94434c3c534da4bf98ca79ff6ead7

6 years agoPrevent log file energy average printing dividing by zero
Mark Abraham [Wed, 31 Jan 2018 07:48:16 +0000 (08:48 +0100)]
Prevent log file energy average printing dividing by zero

If there's not enough data for averages, skip the average printing
entirely. In principle, pr_ebin could be called from elsewhere than
print_ebin, so now we print "N/A" rather than "nan" or segfaulting.

Added some const correctness. Added some tests. Unfortunately they
currently have to write a file to disk, but we should have the test
before refactoring it to run in memory. The tests needed to be able
to clean up their memory, so runner can now also call done_ebin
but for stability we'll leave that off for now.

TODO When merging to master branch enable the call to done_ebin
in runner().

Fixes #2394

Change-Id: Id2e151664dd4553e49880f96bdd90aacc945f992

6 years agoUse isfinite unambiguously
Mark Abraham [Tue, 6 Feb 2018 07:52:13 +0000 (08:52 +0100)]
Use isfinite unambiguously

Patch provdied by Veselin Kolev

Fixes #2400

Change-Id: I1923998a2288e20cb339e7fc59210cbf9ac5bfa8

6 years agoOnly setup Ewald in the generic group kernel if it's used
Aleksei Iupinov [Mon, 5 Feb 2018 11:31:57 +0000 (12:31 +0100)]
Only setup Ewald in the generic group kernel if it's used

Helps to not divide by garbage values.

Change-Id: I67999c56b2ce6105d154e7f90b137f67bafd4673

6 years agoSet cutoff modifiers in forcerec
Berk Hess [Mon, 5 Feb 2018 15:05:23 +0000 (16:05 +0100)]
Set cutoff modifiers in forcerec

The cutoff modifiers were not copied from interaction_const_t
to forcerec_t which meant only the generic kernels was used with
the group scheme.

Fixes #2399

Change-Id: I2890cbd55e648e434ad3817edc4e5fe4c5697162

6 years agoMake ndx files optional in SimulationRunner
Aleksei Iupinov [Mon, 5 Feb 2018 10:08:06 +0000 (11:08 +0100)]
Make ndx files optional in SimulationRunner

Change-Id: Ib1010097d2dce75a6fdac49bb3b3c5aa3e4c4b8f

6 years agoRemove mdpInputFileName_ from SimulationRunner, per TODO
Aleksei Iupinov [Mon, 5 Feb 2018 09:59:54 +0000 (10:59 +0100)]
Remove mdpInputFileName_ from SimulationRunner, per TODO

Change Ib6511a338935b14be was the prerequisite.

Change-Id: Ief8717d45c5948a7666b232dd7ea3f1863823671

6 years agoFix assertion failure in TPI
Berk Hess [Mon, 5 Feb 2018 09:38:22 +0000 (10:38 +0100)]
Fix assertion failure in TPI

Fixes #2398

Change-Id: I89ddde7bdb6c061411160009df1f87e7c2cef0a1

6 years agoDon't print impossible CUDA version numbers in absence of GPUs
Aleksei Iupinov [Fri, 26 Jan 2018 15:22:33 +0000 (16:22 +0100)]
Don't print impossible CUDA version numbers in absence of GPUs

As results of CUDA version API calls are not checked for success
when printing the gmx binary information header, values of the
non-initialized variables were printed on nodes with no GPUs
(e.g. "CUDA runtime: 32.96"). This change makes the gmx print
"N/A" as a CUDA version string in case of CUDA API error.

Change-Id: Ia5856badb5e5e536f50d1a028163743b4bf93107

6 years agoFix input MDP contents for swap and IMD tests
Aleksei Iupinov [Thu, 1 Feb 2018 16:39:10 +0000 (17:39 +0100)]
Fix input MDP contents for swap and IMD tests

Change I7a9a7c60591 moved the input MDP contents from files
to std::string's, and in doing so butchered the line breaks
for no good reason, silently breaking the tests.
This is now fixed, using C++11 raw string literals.

Change-Id: Ia4abc26ce67fdebba5f830c2461743b38d944956

6 years agoCheck for GTEST_IS_THREADSAFE being defined
Aleksei Iupinov [Tue, 30 Jan 2018 13:26:15 +0000 (14:26 +0100)]
Check for GTEST_IS_THREADSAFE being defined

Change I0d847bc24 updated GTest library to version 1.8.0,
which added GTEST_IS_THREADSAFE to the list of macros that
can only be defined to 1, or undefined. This change corrects
the check of the macro.

Change-Id: I6e2f9bb30a9128bc85a1b5f38c73d21b65dd61f7

6 years agoAdd information for n2t file format
Paul Bauer [Tue, 30 Jan 2018 12:13:26 +0000 (13:13 +0100)]
Add information for n2t file format

Refs #2130, #2146

Change-Id: I21acf300d5a9336b0c11d82d6e2f4d10fc1ef212

6 years agoReplace macros for multi-sim
Mark Abraham [Sat, 20 Jan 2018 16:14:23 +0000 (17:14 +0100)]
Replace macros for multi-sim

This now use static inline functions.

Change-Id: Ib80c4912690aee9ea2d06266eca143a6a7638b34

6 years agoUpdate GoogleTest to 1.8.0
Mark Abraham [Thu, 23 Feb 2017 16:07:20 +0000 (17:07 +0100)]
Update GoogleTest to 1.8.0

This is the first new release in several years. It introduces some new
features that may prove useful. It no longer requires work-arounds for
newer gcc versions. It fixes several issues that we had worked around
ourselves. Several other fixes have been transferred to the updated
versions.

This version incorporates the documentation (but only for this
version) because that can be useful for GROMACS developers,
particularly to have available offline.

Change-Id: I0d847bc2490935e0ddc3170b674d7460a5a08506

6 years agoRemoved unused flag PCA_CAN_READ_NODE
Berk Hess [Thu, 25 Jan 2018 09:39:41 +0000 (10:39 +0100)]
Removed unused flag PCA_CAN_READ_NODE

Change-Id: Ie3f5fca1208991688179c9acba698bda419a056e

6 years agoRemove unused declaration
Mark Abraham [Sat, 27 Jan 2018 07:54:44 +0000 (08:54 +0100)]
Remove unused declaration

Found by pre-release clang 6

Change-Id: Ibea53009ea71f295123c5c533e6478ae9f4a5da2

6 years agoRemove unused fields of t_commrec
Mark Abraham [Wed, 24 Jan 2018 15:30:33 +0000 (16:30 +0100)]
Remove unused fields of t_commrec

Change-Id: I7704117ca1c51c5e5ad50514d53c0bb0c508de43

6 years agoReduced includes of common headers in headers
Mark Abraham [Thu, 25 Jan 2018 07:23:00 +0000 (08:23 +0100)]
Reduced includes of common headers in headers

This makes it faster to recompile after refactoring
those headers.

Change-Id: I882eb29b23b3a983a9209243a9667b3ed77cdd66

6 years agoRemoved mdrun -multi
Mark Abraham [Thu, 18 Jan 2018 19:47:53 +0000 (20:47 +0100)]
Removed mdrun -multi

mdrun -multidir remains, and works better.

Moved some of the control logic into init_multisystem, particularly
because it was duplicated, and wrong in both versions.

Reduced scope of nmultisim.

Removed documentation.

Removed comment in mdrun.cpp that wasn't in English, has been there
for a very long time, and doesn't seem likely to be accurate or
useful.

Change-Id: I711330bde6ee001cbc60645beecf18e6b7d5fae4

6 years agoChange multi-sim tests to use -multidir
Mark Abraham [Thu, 18 Jan 2018 19:44:20 +0000 (20:44 +0100)]
Change multi-sim tests to use -multidir

The former use of -multi is deprecated.

The need to make directories for -multidir makes it more clear that
simulation runner should not be a thing made and owned by the test
fixture.

Change-Id: Ib6511a338935b14beed0c23a683f9dd2a66a164e

6 years agoRemove unused fields per TODO
Aleksei Iupinov [Wed, 24 Jan 2018 13:49:48 +0000 (14:49 +0100)]
Remove unused fields per TODO

Change-Id: Ia895f83254a0ad8a500304660f39f9d2e384ae6d

6 years agoRemove gmx_inline
Mark Abraham [Wed, 24 Jan 2018 07:49:27 +0000 (08:49 +0100)]
Remove gmx_inline

C++ supports the inline keyword, and we should prefer to
use standard things where possible.

Removed the include of the relevant header in the two places where
that was now possible.

Change-Id: Ia709e3b55d83d01459706580fc337aaa275a6330

6 years agoTeach include sorter to ignore cmake-test files
Mark Abraham [Wed, 24 Jan 2018 08:13:19 +0000 (09:13 +0100)]
Teach include sorter to ignore cmake-test files

Change-Id: Ie08c0ab7a03fcd1016347f534b518ff51863da98

6 years agoMove Windows icc config to post-submit testing
Mark Abraham [Wed, 24 Jan 2018 13:23:00 +0000 (14:23 +0100)]
Move Windows icc config to post-submit testing

The front end and standard library for this build are the same as the
msvc config, so there is not a great deal of coverage added by this
config. Post-submit does not use this slave at all.  Only running one
job per matrix on this slave will permit us to use only one executor
on it, which might reduce the number of strange failures and hangups.

Fixes #2387

Change-Id: Iedc421b7f4ea6d74f0b4cbd5cc88ea958b427213

6 years agoReplace gmx_bool with bool in bitmask functions
Mark Abraham [Tue, 23 Jan 2018 22:00:28 +0000 (23:00 +0100)]
Replace gmx_bool with bool in bitmask functions

These functions never stored to a variable of type gmx_bool, so there
is not even a theoretical downside to using a proper bool.

Change-Id: If0f5f1fffe6badb3bb6c777f04365cd6c403ebdc

6 years agoRemove support for implicit solvation
Mark Abraham [Mon, 15 Jan 2018 13:01:44 +0000 (14:01 +0100)]
Remove support for implicit solvation

Mdp files with implicit-solvent = no can still be read, and formerly
valid related fields are now ignored, so that default mdp files from
previous versions of GROMACS will work. Anything else for the
implciit-solvent mdp value gives an error in grompp.

grompp can now only write a tpr file that has a false value for
ir->implicit_solvent, but can read older versions. When mdrun is
presented with an older tpr file that did such a simulation, it
refuses to run, presenting a useful error message. Such tpr files are
still useful for other purposes, so can still be read, except that the
fields specific to these methods are ignored.

grompp now ignores the topology directives for related parameters,
which means that force-field folders that are the same as, or
modifications of folders formerly supported by GROMACS still
work. However, the versions currently distributed have none of those
fields.

The group-scheme kernels have been removed, and generation
infrastructure updated so that they do generate the code that's in the
repo. However, now that the python generation scripts no longer
generate GB kernels, the dictionary ordering changes, which changes
the generated output. That output is not sensitive to the order of the
declarations or data-structure elements, so this is only a cosmetic
issue.

Documentation has been removed.

Unit tests on .mdp file handling have had to be updated.

Also removed unused enbcoul enumeration

Refs #1500
Refs #1971
Fixes #1054

Change-Id: Ib241555ff3d8e60012ba0e628ab0f9a3f91eca9e

6 years agoRemove topology support for implicit solvation
Mark Abraham [Mon, 15 Jan 2018 13:01:44 +0000 (14:01 +0100)]
Remove topology support for implicit solvation

Refs #1500
Refs #1971

Change-Id: I75d05d52ea1d528f63f2249da62f0bcfca4274d2

6 years agoTest the mixed mode PME with walls and box scaling
Aleksei Iupinov [Tue, 16 Jan 2018 16:31:58 +0000 (17:31 +0100)]
Test the mixed mode PME with walls and box scaling

Refs #2385

Change-Id: I42281dd6b3da30c777a0819d97c1d85e69049674

6 years agoTest PME CPU/GPU with walls and box scaling
Aleksei Iupinov [Tue, 16 Jan 2018 15:09:01 +0000 (16:09 +0100)]
Test PME CPU/GPU with walls and box scaling

Change-Id: I34f9a1b3a20b25b9cb577f074e08ccddad9f1b2e

6 years agoWrap the PME testing loop in a method for extensibility
Aleksei Iupinov [Fri, 12 Jan 2018 16:16:57 +0000 (17:16 +0100)]
Wrap the PME testing loop in a method for extensibility

Also clarify the XML reference data step tag.

Change-Id: I04eee98d92221f4e0e2fa23fa1180896858f1add

6 years agoPreliminary cleanup before removing ifdef cplusplus
Mark Abraham [Sun, 24 Dec 2017 05:53:27 +0000 (16:53 +1100)]
Preliminary cleanup before removing ifdef cplusplus

Several files used more complex organization, which is best resolved
manually before we do some scripted refactoring.

Converted two all-vs-all kernels to C++ so that smalloc.h could be
converted. We'll anyway remove those kernels some time soon.

Change-Id: I49549cff19effa91bf0400ab706d582b13017309

6 years agoAVX512: copysign
Roland Schulz [Sat, 20 Jan 2018 01:22:59 +0000 (17:22 -0800)]
AVX512: copysign

Change-Id: I336b9096d83f7dc74ec53d233df8c2ad75a51ed1

6 years agoAVX512 GCC 5.3 work-around
Roland Schulz [Fri, 19 Jan 2018 21:23:27 +0000 (14:23 -0700)]
AVX512 GCC 5.3 work-around

GCC 5.3 has bug in overload resolution causing the AVX512
and scalar function to become ambiguous.

Change-Id: I1db4696f19c05c9eb3a97320a8c6c5b41823cca9

6 years agoAdd a death test for the duplicate inputrec keys checking
Aleksei Iupinov [Thu, 18 Jan 2018 11:13:00 +0000 (12:13 +0100)]
Add a death test for the duplicate inputrec keys checking

That was fixed in Idc66145af.

Refs #2386

Change-Id: I4c726989da646ffa5343f4bcdea51dfdf049ef6c

6 years agoMerge "Merge branch 'release-2018' into master"
Mark Abraham [Fri, 19 Jan 2018 14:55:18 +0000 (15:55 +0100)]
Merge "Merge branch 'release-2018' into master"

6 years agoRename class BiasReader to struct BiasOutputSetup
Aleksei Iupinov [Fri, 19 Jan 2018 10:05:20 +0000 (11:05 +0100)]
Rename class BiasReader to struct BiasOutputSetup

Change-Id: Id3b2eb7405b88633914be50d3c41c7ced861238d

6 years agoAdd dev-guide docs for automatic update of regressiontests
Mark Abraham [Fri, 19 Jan 2018 11:14:33 +0000 (12:14 +0100)]
Add dev-guide docs for automatic update of regressiontests

Change-Id: I28e907157cfc7e428841030f4605fed02def390b

6 years agoMove the temporary file MPI workaround into the base mdrun test class
Aleksei Iupinov [Fri, 12 Jan 2018 13:23:41 +0000 (14:23 +0100)]
Move the temporary file MPI workaround into the base mdrun test class

Change-Id: Ic3fb0f42dde408b6f26944ffc59366d21c5086e3

6 years agoMake the reference data variables local in GetIrTest
Aleksei Iupinov [Thu, 18 Jan 2018 11:36:22 +0000 (12:36 +0100)]
Make the reference data variables local in GetIrTest

Change-Id: Ief12dd273b7d1099eb01d025cec7fde1efdc5aeb

6 years agoMerge branch 'release-2018' into master
Aleksei Iupinov [Fri, 19 Jan 2018 10:42:17 +0000 (11:42 +0100)]
Merge branch 'release-2018' into master

Change-Id: I77f2ee791cfe08a3d162605e14b411a18244b4c3

6 years agoFixes for issues found by clang 6
Mark Abraham [Mon, 8 Jan 2018 08:22:16 +0000 (09:22 +0100)]
Fixes for issues found by clang 6

Change-Id: Ibdaad0a36d30659f2f9fa8bf142d311bc1f38b2d

6 years agoRemove incorrect release-note entry
Roland Schulz [Thu, 18 Jan 2018 22:13:03 +0000 (14:13 -0800)]
Remove incorrect release-note entry

Change was reverted before the release.

Change-Id: Id46ba251edc9a44cd62275d03ecfe15d5230cfd9

6 years agoGot rid of manual memory management in the PME overlap structures
Aleksei Iupinov [Tue, 28 Nov 2017 14:14:40 +0000 (15:14 +0100)]
Got rid of manual memory management in the PME overlap structures

Also moved a couple of fields (send_id, recv_id) to the proper
place.

Change-Id: I372d82b703349c65fd86257795d958a8b38c98b8

6 years agoBump version numbers for 2019 development
Mark Abraham [Wed, 17 Jan 2018 14:21:05 +0000 (15:21 +0100)]
Bump version numbers for 2019 development

Change-Id: I5c89b5266d122ba63017a2d7d84b9da1c0066040

6 years agoAvoid dynamic STL containers in global init
Roland Schulz [Fri, 12 Jan 2018 02:00:58 +0000 (18:00 -0800)]
Avoid dynamic STL containers in global init

For global variables (and static class members) using dynamic containers
causes issues if using LD_PRELOAD to load different libgromacs.

Change-Id: I7bc20b8305fdf5cfedd43d0e1351d9327cdca332

6 years agoRe-enable multi-rank PME tests (with the file race fixed in parent)
Aleksei Iupinov [Fri, 12 Jan 2018 11:09:42 +0000 (12:09 +0100)]
Re-enable multi-rank PME tests (with the file race fixed in parent)

Also remove the MPI_Barrier call, which was the previous
attempt at fixing the issue.

Change-Id: I2deb6b77abe2b8719a8b4d50410e92427cbbbd85

6 years agoRemove support for BlueGene
Mark Abraham [Tue, 16 Jan 2018 18:58:56 +0000 (19:58 +0100)]
Remove support for BlueGene

These systems are nearly at end of life, and are starting to be
decommissioned. Plus regressiontests haven't passed since about
version 5.1.

Accordingly, QPX SIMD is no longer supported, since only the
BlueGene/Q A2 cores implemented it.

Our cpuinfo code can still detect this platform, because that
does no harm, but we now fall back to GMX_SIMD_ACTIVE=None.

Docs and build system have been updated accordingly.

There is an aspect of the Verlet scheme that was originally
implemented for BlueGene/Q (namely simd_interaction_array), but this
is now also used by the no-SIMD build, so remains in the code.

Change-Id: I1a680671bfab56f94d9fadb2e8f751ba429e5894

6 years agoFix COMM removal on part of the system
Berk Hess [Fri, 12 Jan 2018 14:23:40 +0000 (15:23 +0100)]
Fix COMM removal on part of the system

COMM removal requested for part of the system acted on the whole
system.

Fixes #2381

Change-Id: Ic36ce0d261dd9b5aeceef1803f6a97e6a9ca8716

6 years agoAdd contribution information to webpage
Paul Bauer [Fri, 27 Oct 2017 14:49:03 +0000 (16:49 +0200)]
Add contribution information to webpage

We'll need a link from a high-level page on the new website to these
details, but the details and cross-links make sense to have as part of
the developer guide.

Change-Id: I0839367662804fe75cd18479db5335644f787176

6 years agoPort thread-MPI to compile as C++
Mark Abraham [Wed, 17 Jan 2018 13:23:27 +0000 (14:23 +0100)]
Port thread-MPI to compile as C++

Change-Id: Ie184dcd672af99e2cea400465b9a1112bfd0d923

6 years agoAdd check in grompp to avoid assertion failure
Berk Hess [Thu, 18 Jan 2018 10:51:36 +0000 (11:51 +0100)]
Add check in grompp to avoid assertion failure

With an mdp file with a parameter present with both the current name
and the old name which automatically gets replaced, an assertion
would fail. Now a fatal error is issued.

Fixes #2386

Change-Id: Idc66145afaca6a1e0cb868dd6aba2405e2dd7171

6 years agoFix box scaling in PME mixed mode
Aleksei Iupinov [Tue, 16 Jan 2018 17:08:57 +0000 (18:08 +0100)]
Fix box scaling in PME mixed mode

A TODO is left to test and handle this better in master.

Fixes #2385

Change-Id: I34d01d3ea6802f624888a1fd85eef72711a82f2f

6 years agoReplace stderr prints in filenm.cpp by asserts
Berk Hess [Wed, 17 Jan 2018 13:55:44 +0000 (14:55 +0100)]
Replace stderr prints in filenm.cpp by asserts

Refs #2377

Change-Id: Iec556bf03b613e27c6b98e09577801f4d0701d06

6 years agoMerge branch 'release-2018' into master
Aleksei Iupinov [Wed, 17 Jan 2018 12:29:47 +0000 (13:29 +0100)]
Merge branch 'release-2018' into master

Change-Id: I101621e6fca6729cc42cd7eb6678c1471ccf6ef2

6 years agoRe-enable GPU with walls and 1 energy group
Berk Hess [Tue, 16 Jan 2018 14:13:08 +0000 (15:13 +0100)]
Re-enable GPU with walls and 1 energy group

With a single non-bonded energy groups and walls we can use a GPU
for non-bonded calculations.

Change-Id: I95e72d6acc8852091bb269b350cdbf67f56e19fc

6 years agoMerge "Merge release-2018 into master"
Mark Abraham [Tue, 16 Jan 2018 16:30:35 +0000 (17:30 +0100)]
Merge "Merge release-2018 into master"

6 years agoMerge release-2018 into master
Roland Schulz [Fri, 12 Jan 2018 01:58:30 +0000 (17:58 -0800)]
Merge release-2018 into master

Change-Id: I197f817d0b54392bc1198536e39e74baacad3e96

6 years agoRemove tumbling ice-cube warning with SD
Berk Hess [Tue, 16 Jan 2018 13:02:37 +0000 (14:02 +0100)]
Remove tumbling ice-cube warning with SD

With SD there is friction, so ice cubes will not tumble.

Change-Id: Ibe91856529c26386e3f3683f95b574a9c6e7a875

6 years agoAlways write the input MDP file for testing just before the grompp call
Aleksei Iupinov [Fri, 12 Jan 2018 10:55:17 +0000 (11:55 +0100)]
Always write the input MDP file for testing just before the grompp call

This should hopefully help avoid the race issue that was
briefly observed with the multi-rank PME test
(the input MDP was occasionally garbled by multiple writes).

Change-Id: Ib624825f79a3dc7b6d3f5e81d8e6b5907f27b35a

6 years agoAvoid mdrun echoing "No option -multi"
Berk Hess [Fri, 12 Jan 2018 10:50:33 +0000 (11:50 +0100)]
Avoid mdrun echoing "No option -multi"

mdrun would print as many messages "No option -multi" as there
are MPI ranks to stderr.
Also updated -multi to -multidir in an error message.

Fixes #2377

Change-Id: I697956e28f904b148974183ad85ed7ed4ec82221

6 years agoCall GPU profiler reset on separate PME ranks
Szilárd Páll [Thu, 11 Jan 2018 16:37:21 +0000 (17:37 +0100)]
Call GPU profiler reset on separate PME ranks

As separate PME ranks can now offlaod to GPU, to be able to collect
profiling data, the reset call was added.

Fixes #2378

Change-Id: I48ad62ab51165347471efc9c5710c49f0001b2e0

6 years agoMove OctaneSandwich.mdp and spc2-IMD.mdp into strings
Aleksei Iupinov [Thu, 11 Jan 2018 16:38:28 +0000 (17:38 +0100)]
Move OctaneSandwich.mdp and spc2-IMD.mdp into strings

Change-Id: I7a9a7c60591ecce964a9d4aa43f8e150033260c9

6 years agoRemove unused alanine_vsite.mdp
Aleksei Iupinov [Thu, 11 Jan 2018 16:54:23 +0000 (17:54 +0100)]
Remove unused alanine_vsite.mdp

Change-Id: Ieb87c9178f34ae08a39d36ed249b388545143e83

6 years agoRemove contrib directory
Mark Abraham [Tue, 19 Dec 2017 02:16:12 +0000 (13:16 +1100)]
Remove contrib directory

Distributing code that can't be compiled is a service to nobody.
Version control means we can't lose whatever value remains.

Moved the build-own-fftw feature to external, which is anyway quite
appropriate for code that core developers (and the original
contributor maintain regularly), and is a very popular feature with
users.

Refs #1043

Change-Id: I964b07756b02068dec8473bc22fe7c465763aad6

6 years agoBumped version for next patch release
Mark Abraham [Thu, 11 Jan 2018 02:35:05 +0000 (03:35 +0100)]
Bumped version for next patch release

Change-Id: I264bca65d7d327387196453faeccbedb87e4fcb8

6 years agoVersion 2018
Mark Abraham [Tue, 9 Jan 2018 21:25:31 +0000 (22:25 +0100)]
Version 2018

Removed "-rc1" per policy. Bumped regressiontests hash.

Updated release notes for final release, including release date, and
removing beta-phase fix content. Sorted tools page by tool name/topic.
Fixed some text to refer to changes in the past tense. Updated
some line wrapping.

Change-Id: Ia82a1cef3270dbdddd173c58248fc9bf6ea420c5

6 years agoAnnounce in user log files that features are deprecated.
Mark Abraham [Wed, 10 Jan 2018 12:22:27 +0000 (13:22 +0100)]
Announce in user log files that features are deprecated.

These are merely informational notes, not warnings or errors.

Refs #1781, #1971, #2136

Change-Id: I96e19acb0e15d3f42b0929f555b451299a2882e4

6 years agoFix GMX_ENABLE_AVX512_TESTS being internal
Roland Schulz [Wed, 10 Jan 2018 18:26:18 +0000 (10:26 -0800)]
Fix GMX_ENABLE_AVX512_TESTS being internal

Internal implies FORCE and thus variable couldn't be used to disable test.

Change-Id: I07521af7e998b4b032106f020a918ed2a0e7f747

6 years agoFix automated GPU ID assignment
Mark Abraham [Tue, 9 Jan 2018 17:52:37 +0000 (18:52 +0100)]
Fix automated GPU ID assignment

When we permitted separate PME-GPU ranks, we should have relaxed
this logic also.

However, the performance in such cases is not very predictable, so if
there's a distribution of tasks with more than one task to a GPU that
is uneven, then we should require the user to specify exactly what
they want. This also reinstates the 2016-era behaviour where, if
running multiple PP ranks on GPUs, that mdrun will not by default
produce an unbalanced mapping with more than one task per GPU.

Change-Id: I5b2fad317ecbb4e5e02fccd68e15350b678df34c

6 years agoUser guide updates to GPU section
Szilárd Páll [Fri, 5 Jan 2018 02:54:44 +0000 (03:54 +0100)]
User guide updates to GPU section

Refs #2359

Change-Id: Ied4945f83dc19f93a51aa78f51b7cea18021f5b8

6 years agoRelease notes tweaks
Szilárd Páll [Tue, 9 Jan 2018 19:33:24 +0000 (20:33 +0100)]
Release notes tweaks

* Move dynamic pruning to features.
* Add new CPU arch support to the perf highlights.

Change-Id: Ia6228cb779ebcebd4ba81505c8545b85f00ffc90

6 years agoAdd release notes to source repo
Mark Abraham [Wed, 6 Dec 2017 01:13:35 +0000 (12:13 +1100)]
Add release notes to source repo

Release notes content is current up to 2018-rc1, and will need to be
updated for the final release. Also several TODOs to remove the
content of beta-phase fixes, and text about them.

Change-Id: I6f5999327c9ac4ab56d8057b5eb2b4f8351eda87

6 years agoImprove pdb2gmx for nonstandard residue types
Erik Lindahl [Tue, 2 Jan 2018 10:55:31 +0000 (11:55 +0100)]
Improve pdb2gmx for nonstandard residue types

If explicit non-blank chain identifiers are set, it
will now be a hard error if the residue types in each
chain do not match. For blank chain ID we still need
to allow detection of non-chain parts, but this case
too now provides more explicit output information.

Fixes #2370.

Change-Id: Ic70f4d91fddd80a22e91eb1a0672a15838966a75

6 years agoInstall guide updates
Szilárd Páll [Fri, 5 Jan 2018 02:51:26 +0000 (03:51 +0100)]
Install guide updates

Updated install guide to reflect chnges in for the 2018 release.

Refs #2359

Change-Id: Ic679e7d7e96392c2c28185db1f71928146cd742d

6 years agoEnvironment variable docs maintenance
Szilárd Páll [Tue, 19 Dec 2017 18:20:42 +0000 (19:20 +0100)]
Environment variable docs maintenance

Removed deprecated variables (some ancient, some recent), corrected some
misspelled ones.

Added undocumented environment variables.

Left a comment with handy one-liner to discover leftovers as well as
undocumented variables.

Refs #2359

Change-Id: Icb80cf661e2a53c5049fe18d687b987fb2c025f1

6 years agoDo not print PME counter breakdown if it's empty
Aleksei Iupinov [Fri, 5 Jan 2018 11:25:28 +0000 (12:25 +0100)]
Do not print PME counter breakdown if it's empty

Fixes #2361

Change-Id: I4272cec58d837d2f1038d23ceb1eaf52736e3d52

6 years agoHandle erroneous command line args better
Mark Abraham [Wed, 3 Jan 2018 10:35:38 +0000 (11:35 +0100)]
Handle erroneous command line args better

Some gmx modules need to be able to accept non-option arguments, and
some should not. Introduced enough functionality to support such
behaviour, while giving useful error messages in cases where the
command line is merely missing hyphens (which can happen e.g. when
people copy-paste from inconveniently built PDF files for tutorials).
Increased test coverage of relevant cases.

Removed some useless command-line argument strings from test cases
that never needed them.

Also tested some behaviours of handling string options, and renamed
some test input strings to reflect the intent.

Fixes #2153

Change-Id: Icec02ea86a57a8b129a621121518036b9f032078

6 years agoClarified gmx rmsf documentation
Erik Lindahl [Mon, 8 Jan 2018 23:14:25 +0000 (00:14 +0100)]
Clarified gmx rmsf documentation

Made it clearer what input files coordinates
are taken from when writing B-factors.

Fixes #2320.

Change-Id: Ic47cbb7d9b1036c9e87a77b244dde3cd3da5df36

6 years agoReword CPU/GPU imbalance notes
Berk Hess [Tue, 9 Jan 2018 20:35:20 +0000 (21:35 +0100)]
Reword CPU/GPU imbalance notes

Changes text in CPU/GPU imbalance from "performance loss" to "wasting
resources", since in some cases one can not get higher performance.
Replaced "GPU has less load" by "CPU has more load".
Removed hint to reduce the cut-off, since one often can not do this.
Note that with CUDA all theses notes are never printed, since we no
longer have timings on (by default), unlike with OpenCL.

Fixes #2253

Change-Id: Ib4a9752ad27c1cd2a3cd751a217249694a56d3b7

6 years agoDeactivate autoselect of PME on GPU on separate rank
Mark Abraham [Tue, 9 Jan 2018 16:50:46 +0000 (17:50 +0100)]
Deactivate autoselect of PME on GPU on separate rank

Although the code does work if such a setup is specified manually, we
intended to require the user to specify mdrun -nb gpu -pme -gpu -npme
1 to get this setup.

Change-Id: I27e0e517435e0640f3a2bab1c62fc61034ec7789

6 years agoClean up user guide for release
Mark Abraham [Tue, 9 Jan 2018 15:02:34 +0000 (16:02 +0100)]
Clean up user guide for release

Various work in progress remains on master branch, but we need
something decent looking for this release, even if incomplete.

Reordered the list of files within the user guide roughly along the
lines of what might be likely to interest a user needing information,
but that's not exactly an exact science.

Change-Id: I2c13f318844e42f796804430b4519e18e62b4857

6 years agoMerge branch release-2016 into release-2018
Mark Abraham [Tue, 9 Jan 2018 07:42:07 +0000 (08:42 +0100)]
Merge branch release-2016 into release-2018

Change-Id: I22d5b28794a4bbb3b122af339a282695aa64f266

6 years agoDo not turn on DLB at replica exchange
Berk Hess [Mon, 8 Jan 2018 21:45:46 +0000 (22:45 +0100)]
Do not turn on DLB at replica exchange

Turning on DLB right after exchanging replicas caused an assertion
failure and is also useless.

Fixes #2298

Change-Id: I20c3cb6ef3d74907d53d447fa9b0c9168f03c769

6 years agoFix triclinic domain decomposition bug
Berk Hess [Mon, 8 Jan 2018 18:37:34 +0000 (19:37 +0100)]
Fix triclinic domain decomposition bug

With triclinic unit-cells with vectors a,b,c, the domain decomposition
would communicate an incorrect halo along dimension x when b[x]!=0
and vector c not parallel to the z-axis. The halo cut-off bound plane
was tilted incorrect along x/z with an error approximately
proportional to b[x]*(c[x] - b[x]*c[y]/b[y]).
When c[x] > b[x]*c[y]/b[y], the communicated halo was too small, which
could cause instabilities or silent errors.
When c[x] < b[x]*c[y]/b[y], the communicated halo was too large, which
could cause some communication overhead.

Fixes #2125

Change-Id: I2109542292beca5be26eddc262e0974c4ae825ea

6 years agoFix a few typos in SIMD documentation
Carsten Kutzner [Mon, 8 Jan 2018 10:46:47 +0000 (11:46 +0100)]
Fix a few typos in SIMD documentation

Change-Id: Ia64f936098172eb4e13d3bacf1caa824c43779fc

6 years agoRemove unused defines
Roland Schulz [Fri, 5 Jan 2018 22:59:42 +0000 (14:59 -0800)]
Remove unused defines

Change-Id: I776307a4acd53e88f9ea06dddb1c23fc5d9fc2e3

6 years agoTest that nvcc/host compiler combo works
Erik Lindahl [Fri, 15 Dec 2017 15:16:02 +0000 (16:16 +0100)]
Test that nvcc/host compiler combo works

Compile a trivial CUDA program during CMake time
to catch both unsupported nvcc/host compiler
version combinations and other unknown errors.

Fixes #1616.

Change-Id: I3cc55e4d0db9d6eb01e8a7cd8916cc7a7a1e21fd

6 years agoMake TNG writing work with multiple identical steps
Erik Lindahl [Fri, 29 Dec 2017 09:52:28 +0000 (10:52 +0100)]
Make TNG writing work with multiple identical steps

Introduce a wrapper structure around TNG so we detect
and correct for cases when writing multiple frames with
the same step, or non-zero initial steps to TNG files.
This will avoid frames overwriting each other, and make
sure the time per frame is correct.

Fixes #2189.

Change-Id: I3f44a2681138351d89183e3e196269f2b2f258fc