alexxy/gromacs.git
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 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

6 years agoAdd AVX_512 and KNC symbols to FFTW SIMD test
Erik Lindahl [Fri, 5 Jan 2018 10:49:45 +0000 (11:49 +0100)]
Add AVX_512 and KNC symbols to FFTW SIMD test

Otherwise the CMake code might complain loudly about
FFTW not being accelerated on KNC or KNL hosts.

Change-Id: I888936e9cec18436d775cb3c6eedc21335ab0e95

6 years agoRemove FindCUDA from source tarball
Mark Abraham [Tue, 19 Dec 2017 07:25:06 +0000 (18:25 +1100)]
Remove FindCUDA from source tarball

When we decided to bundle FindCUDA.cmake and supporting files to keep
our developer and Jenkins builds free of warnings, we did not take
care to ensure that the user gets the behaviour from their cmake,
since the combination of their cmake and its FindCUDA.cmake is much
more likely to work correctly than their cmake and FindCUDA.cmake from
cmake 3.4.3.

The testing of the release tarball as part of the release workflow
will ensure that we don't silently ship a broken CUDA build.

Refs #2276

Change-Id: I9ed6fa97921eb5c3ce3b4a6ecc401b4dd26e1251

6 years agoImprove frame time/step handling in trjconv
Erik Lindahl [Thu, 28 Dec 2017 13:51:35 +0000 (14:51 +0100)]
Improve frame time/step handling in trjconv

Store the exact step in PDB/GRO file headers,
and be more careful about not claiming to have
time or step information when it was not available.
This change will avoid some of the problems
described in #2189, but it does not yet properly
fix the issue in the TNG library.

Refs #2189.

Change-Id: I44bb59fbca83da53f6e8d4e494ae6476a82eb7cd

6 years agoMerge branch release-2018
Mark Abraham [Thu, 4 Jan 2018 15:25:43 +0000 (16:25 +0100)]
Merge branch release-2018

Lots of copyright bumps, also

Change-Id: I0f9e8d81b265cc96cbcc84d30267932af2ab5b69

6 years agoImplement changes for CMake policy 0068
Erik Lindahl [Wed, 27 Dec 2017 11:50:51 +0000 (12:50 +0100)]
Implement changes for CMake policy 0068

CMake-3.9 introduced a changed behavior for RPATH
vs. install_name options on OS X. This avoids relying
on functionality that will be removed in future
CMake versions.

Change-Id: Ic3697615bc372d09d45dfd007ba5a088624de051

6 years agoAdd test config of GPU build on slave without GPU
Mark Abraham [Mon, 4 Dec 2017 02:57:49 +0000 (13:57 +1100)]
Add test config of GPU build on slave without GPU

This will test that e.g. GPU detection and cleanup code does not give
unexpected fatal errors.

Change-Id: Ic3314777b6f530fe02aa55e05ca3d352eb786d7d

6 years agoFix gmx msd when using COM removal and molecules
Paul Bauer [Wed, 3 Jan 2018 12:31:24 +0000 (13:31 +0100)]
Fix gmx msd when using COM removal and molecules

Changed order of code to actually assign correct coordinates before
copying the data, and modified data structure size when using COM
removal and individual molecules.

Fixes #2043

Change-Id: Ic16f05a589609a43f14fd75753ca8589cf3d8c42

6 years agoFix trjconv for tdump<frame timestep
Erik Lindahl [Wed, 3 Jan 2018 10:48:34 +0000 (11:48 +0100)]
Fix trjconv for tdump<frame timestep

Set frame timestep before starting the loop by
reading first two frames and rewinding, and make
sure we always write something to the dump output
based on best-guess (if there is at least one
input frame present).

Fixes #1832.

Change-Id: Ic1db912c966448e68b307cfc1fd492f4677e7ab4

6 years agoFix index error in gmx chi
Erik Lindahl [Wed, 3 Jan 2018 14:44:01 +0000 (15:44 +0100)]
Fix index error in gmx chi

An error in the index construction could lead
to segfaults. However, the actual indices were
correct, so it should not have produced any
incorrect results.

Fixes #1814.

Change-Id: I191de7248615994d5c0dfb39eccafd53ebbedb67

6 years agoCorrect dihedral restraint section in Manual
Paul Bauer [Wed, 3 Jan 2018 10:39:00 +0000 (11:39 +0100)]
Correct dihedral restraint section in Manual

Fixes #2038

Change-Id: I37bfaa3083efe5721b2d30f4b1038062fc4dbe2b

6 years agoAdd cool quote
Mark Abraham [Sun, 24 Dec 2017 03:21:34 +0000 (14:21 +1100)]
Add cool quote

Change-Id: I8ac6652c895aa85f2237599a17183aaa4f37f19e

6 years agoFix complexity for large exclusion orders
Erik Lindahl [Wed, 3 Jan 2018 09:25:09 +0000 (10:25 +0100)]
Fix complexity for large exclusion orders

To avoid exploding computational complexity
for highly connected molecules with large
values for excluded neighbors, avoid
adding a neighbor to the temporary nnb
structure if it is already present as a
lower-order neighbor.

Fixes #2260.

Change-Id: I30c27a281ddcbbac175f79ab9d5bba49f2f988ae

6 years agoFix duplicate warning
Mark Abraham [Wed, 3 Jan 2018 09:17:00 +0000 (10:17 +0100)]
Fix duplicate warning

Thread-MPI, GPUs and energy groups was issuing this warning
twice. Note that no-MPI and real-MPI are still handled correctly -
they warn on the second call, which is the only one made in those
cases.

Fixes #2372

Change-Id: I68eb0505056b8edd5233a6abf1f2e30b09bbacee

6 years agoDon't allow multiple energy groups for GPU runs
Erik Lindahl [Sun, 31 Dec 2017 16:24:23 +0000 (17:24 +0100)]
Don't allow multiple energy groups for GPU runs

Exit with a fatal error instead of only warning, since the
latter leads to writing data for energy groups that
is incorrect to the energy file.

Fixes #1822.

Change-Id: I34ccb10bba6d6e1350283e34ebc908c6f830baab

6 years agoRemove duplications in GMXLIB search paths
Erik Lindahl [Sun, 31 Dec 2017 11:11:10 +0000 (12:11 +0100)]
Remove duplications in GMXLIB search paths

Remove entries that are duplicated, or identical
to the default search path, to avoid e.g.
listing identical force fields multiple times.

Fixes #1928.

Change-Id: Ib3caa116b4a6e1ce50424408832a96da52eba774

6 years agoAvoid FTZ triggering simd test failures
Erik Lindahl [Mon, 25 Dec 2017 21:34:14 +0000 (22:34 +0100)]
Avoid FTZ triggering simd test failures

For very small arguments on platforms without
FMA support, the Intel compiler's default
usage of flush-to-zero for denormal values can
lead to slight deviations. Since this is a
range we really don't care about, and non-FMA
platforms are anyway a thing of the past, just
avoid testing a very small range around that
threshold for non-FMA SIMD platforms.

Fixes #2335.

Change-Id: I7cfb14284e79534f114891ba4dcd1f1c7223faf3

6 years agoDocument required position restraint files
Erik Lindahl [Tue, 2 Jan 2018 23:41:17 +0000 (00:41 +0100)]
Document required position restraint files

Explain properly to users why the files are
suddenly required when it has worked fine without
them for a decade.

Fixes #2237.

Change-Id: I7990994d2da1f1af95b07bb0110b9bfdd89f3e25

6 years agoAllow empty lines in hdb files
Erik Lindahl [Sun, 31 Dec 2017 13:20:10 +0000 (14:20 +0100)]
Allow empty lines in hdb files

Skip lines that consist only of whitespace. Not a universal
solution for fixing hdb files, but better than the user
getting very strange error messages that don't say anything
about whitespace.

Fixes #2028.

Change-Id: I0962c89d0251f83da7fe0440efd31fb7ca468690

6 years agoFix OpenCL compiles on Mac OS
Erik Lindahl [Fri, 29 Dec 2017 22:18:38 +0000 (23:18 +0100)]
Fix OpenCL compiles on Mac OS

Confirmed to work on Mac OS 10.13.2 running
on a Macbook Pro with Radeon Pro 560.

Fixes #2369.

Change-Id: I0b0056075ecbaf7c11e0022ed13e43cfe2e7484c

6 years agoFix membed by calling the proper mtop finalization routine
Mark Abraham [Tue, 2 Jan 2018 07:55:09 +0000 (07:55 +0000)]
Fix membed by calling the proper mtop finalization routine

Fixes #2364
Refs #2371

Change-Id: I27166acec903e4c0cf3b9a54aaf4b9db7d6974b0

6 years agoImprove manual from comments by Gang Liu
Erik Lindahl [Sat, 30 Dec 2017 21:28:47 +0000 (22:28 +0100)]
Improve manual from comments by Gang Liu

Fixes #2078.

Change-Id: If1267822be4963a59bac4dc07f9731c9489cc3e3

6 years agoMake it explicit that time units apply to begin/end times
Erik Lindahl [Sat, 30 Dec 2017 16:55:36 +0000 (17:55 +0100)]
Make it explicit that time units apply to begin/end times

The help documentation could be interpreted as if the
begin/end frame selection was always specified in ps, no
matter what the time unit was set to. This makes it
explicit that the time unit selection applies, and that ps
is just the default unit.

Fixes #2235.

Change-Id: If010a8d6f8e3e1949039ff4f32a5cc00058466e0

6 years agoDon't require matching names between rtp and tdb files
Erik Lindahl [Sun, 31 Dec 2017 14:03:05 +0000 (15:03 +0100)]
Don't require matching names between rtp and tdb files

This was only documented in the source. It's a remnant
from the days when all force fields were in the same
directory, and no longer necessary. With this change we
will properly match all termini to all amino acids.

Fixes #2026, #2027.

Change-Id: Ie7bf8e65892281cc2744146a5525be0c4afdcecf

6 years agoDon't write reference pull group 0 to log
Erik Lindahl [Mon, 1 Jan 2018 23:28:28 +0000 (00:28 +0100)]
Don't write reference pull group 0 to log

This is an internal group used for absolute
references, which cannot be set by users, so
printing it just leads to confusion.

Fixes #2143.

Change-Id: I89ee3a0e3a65855735b745f4ed7615ca47bfd36a

6 years agoFix gmx density for non-mass calculations
Erik Lindahl [Mon, 1 Jan 2018 16:53:00 +0000 (17:53 +0100)]
Fix gmx density for non-mass calculations

Implemented fix proposed by Klark Chen and Reid
Van Lehn so that we always use mass and never
charge/electron density to center systems.

Fixes #2230.

Change-Id: Id49741bd44349d43a27b5f20f4e498d2fd4ba1f9

6 years agoClarify XTC error message
Erik Lindahl [Mon, 1 Jan 2018 20:14:35 +0000 (21:14 +0100)]
Clarify XTC error message

Explain that the fatal error can also be
triggered by coordinates that are NaN, or
if the scaled values cannot be represented
with integers.

Fixes #2152.

Change-Id: I6eec60df48fe3994258bf8dce00ff33328c93f13

6 years agoFirst release candidate for version 2018
Mark Abraham [Tue, 26 Dec 2017 07:59:24 +0000 (18:59 +1100)]
First release candidate for version 2018

Change-Id: I893e4a9c0f2684955554ad537e6d9609e5f83102

6 years agoSeparate canDetectGpus and findGpus futher, and fix tests
Mark Abraham [Thu, 21 Dec 2017 10:56:59 +0000 (21:56 +1100)]
Separate canDetectGpus and findGpus futher, and fix tests

Renamed detect_gpus to findGpus so that no code can silently call
detect_gpus while forgetting to call the required canDetectGpus first.
Some test code is updated accordingly, which should have happened
earlier. The function with the new name now needs no return value, so
the formerly confusing return value of zero for success is no longer
present.

Shifted some more responsibilities from findGpus to canDetectGpus, so
that the latter now has responsibility for ensuring that when it
returns true, the former will always succeed.

Fixed tests that compile with CUDA, but cannot run unless there
are visible comatible devices and a valid context.

Refs #2347, #2322, #2321

Change-Id: I34acf8be4c0f0dcc29e931d83c970ba945865ca7

6 years agoReplace GMX_ALIGNED with alignas and SIMD alignment define
Roland Schulz [Wed, 27 Dec 2017 18:59:04 +0000 (10:59 -0800)]
Replace GMX_ALIGNED with alignas and SIMD alignment define

This allows each platform to define its required or
preferred SIMD alignment, and we avoid using alignments
larger than what might be supported on each architecture.
Also fix overalignment in pairs.

Fixes #2365

Change-Id: I4793adf31d186eade8a1fd8c920ab75c685ad53f

6 years agoFixes and updates for xplor2gml.pl and atom_nom.tbl
David van der Spoel [Wed, 2 Aug 2017 09:54:46 +0000 (11:54 +0200)]
Fixes and updates for xplor2gml.pl and atom_nom.tbl

The xplor2gmx.pl script received an extra wildcard entry for HE2*
in GLN residues.

The residue number printed in a comment was fixed (+1 removed)

Reading of the restraint file is stopped if dihedral (restraints)
are encountered in order to prevent incorrect interpretation as
distance restraints.

Introduced Perl strict keyword, leading to lots of "my" statements.

Updated atom_nom.tbl to have correct ILE delta hydrogens.

TODO:
Automatic extraction of dihedral_restraints.

Change-Id: I2eb024b4e4fb75b2483654af835f8c588b0bbcc7

6 years agoSilence POWER8 compiler warnings
Mark Abraham [Tue, 26 Dec 2017 13:01:43 +0000 (14:01 +0100)]
Silence POWER8 compiler warnings

Change-Id: Id116b048d775d36ce8ac942380cfd64deed3bb7e

6 years agoFix quote
Roland Schulz [Tue, 26 Dec 2017 18:51:23 +0000 (10:51 -0800)]
Fix quote

Change-Id: Ic763145c231951cd8e61cf36f3486de7a3d30e30

6 years agoFix builds on ARM & clarify (ARM) GPU support
Erik Lindahl [Tue, 12 Dec 2017 19:29:41 +0000 (20:29 +0100)]
Fix builds on ARM & clarify (ARM) GPU support

Fixed a typo in architecture.h that prevented
the Neon Asimd instructions from being selected,
and updated the CPU brand detection to also look
for a new label with Tegra X1 on Ubuntu 16.04

Clarified in error messages and documentation that
Gromacs in fact does not build all supported GPU
architectures by default, explain the common cases
when things might fail, exactly what the user
should do to enable the support, and how the
support strings should be formatted.

Fixes #2287.

Change-Id: I87a2eb81ee11b78f072e3ef359a00c75eb7ec24b

6 years agoMerge branch release-2016 into release-2018
Mark Abraham [Fri, 22 Dec 2017 14:11:52 +0000 (01:11 +1100)]
Merge branch release-2016 into release-2018

Change-Id: I909443584916c574f94b38d0aab2701163faecad

6 years agoMerge branch release-5-1 into release-2016
Mark Abraham [Thu, 21 Dec 2017 14:00:56 +0000 (01:00 +1100)]
Merge branch release-5-1 into release-2016

Change-Id: Ic4aa87c01dfe281c9c8aa31fbc0f7f9fcbe9752d

6 years agoBump minor version for theoretical new release
Mark Abraham [Thu, 21 Dec 2017 13:56:25 +0000 (00:56 +1100)]
Bump minor version for theoretical new release

Change-Id: I54152717d87ad84e7fa5549887b587aa10fe43e4

6 years agoDocumentation and fixes for physical validation
Pascal Merz [Thu, 14 Dec 2017 22:55:34 +0000 (15:55 -0700)]
Documentation and fixes for physical validation

Addresses #2349

Adds documentation for the physical validation suite in
docs/dev-manual/physical_validation.rst

As this was misunderstandable, changed the default behavior of
`make check-phys` and `make check-all` to actually run the simulations.
This might take very long, but since the physical validation tests need to
be turned on explicitly via cmake option, the chances of somebody using the
tests by mistake are low. The `check` targets are:

* `make check`: Run unit and regression tests (unchanged)
* `make check-phys`: Run simulations needed for physical validation, then
  run physical validation tests
* `make check-phys-analyze`: Only run physical validation tests, assuming
  that simulations were run previously and are available.
* `make check-all`: Combination of `make check` and `make check-phys`

Additionally, `make check-phys-prepare` can be used to prepare GROMACS
input files and a script to run the simulations needed for the physical
validation tests.

Bugfixed dependecy issue that attempted to run validation test before
target `gmx`.

Fix in physical_validation package to avoid including matplotlib by default
(and hence requiring X and Gtk).

Improved output of physical validation script (update while running
simulation, info about script after preparing input files, etc).

Additional minor changes not mentioned in #2349:

* Allowing name of test to be different of directory of input files, which
  allows to define several tests on the same input files.
* Adapted some tests - more thorough checking of ensembles (check
  temperature- and pressure-dependence separately *and* collectively), and
  updated tolerance levels.
* Bumped physical_validation package to newest version to include bugfixes
  and stability improvements.

Change-Id: I7219f5392ed068ba1b2e13b30efe5aa4e36ff586

6 years agoUpdate double-precision test configurations
Mark Abraham [Thu, 7 Dec 2017 04:36:49 +0000 (15:36 +1100)]
Update double-precision test configurations

These changes improve coverage of double precision, using more release
mode, particularly with latest gcc and icc, and using 128-bit SIMD,
which have been cases that were buggy recently. The other aspects of
the configurations that have been modified have been
non-critical. Where appropriate, brief rationales are recorded. This
resolves an old TODO item in the post-submit matrix.

Fixed a sign mismatch in initializing an OpenCL variable that didn't
need to be initialized.

Noted relevant new TODOs.

Refs #2300, #2325, #2326, #2334, #2335, #2336, #2337, #2338

Change-Id: I131fa1a6776d1e7809799c3f931a1fc8100fcdc9

6 years agoVersion 5.1.5
Mark Abraham [Thu, 21 Dec 2017 08:47:01 +0000 (19:47 +1100)]
Version 5.1.5

Bumped SOVERSION_MINOR and REGRESSIONTEST_HASH

Change-Id: Ie62ecacbe53f4f39e4592a7593ed53ffe47fd642

6 years agoUpdate checks for BuildOwnFFT
Roland Schulz [Wed, 20 Dec 2017 19:42:17 +0000 (11:42 -0800)]
Update checks for BuildOwnFFT

- Allow on Windows (e.g. WSL, Mingw)
- Disallow with Ninja (broken)

Fixes #2356

Change-Id: I8ac5dd520f92b882dcaeb009792fae2d6e9f0062

6 years agoDestruct MDModules/force providers prior to calling free_gpu()
Carsten Kutzner [Mon, 18 Dec 2017 15:33:47 +0000 (16:33 +0100)]
Destruct MDModules/force providers prior to calling free_gpu()

With the current code mdModules gets out of scope at the end of mdrunner,
which also triggers the destruction of the force providers.
By then, the GPUs will already have been cleaned up in free_gpu()
via cudaDeviceReset(). This makes it impossible for a force
provider that also uses the GPU to properly clean up. This change
makes sure that the destructor of the force providers is
called before the GPU context gets destroyed.

Change-Id: If64c4008a63207693502e16f5711de0c97e688f4

6 years agoSet GMX_GPU_AUTO to FALSE with GMX_GPU defined
Aleksei Iupinov [Wed, 20 Dec 2017 13:16:38 +0000 (14:16 +0100)]
Set GMX_GPU_AUTO to FALSE with GMX_GPU defined

Refs #1985, #2357

Change-Id: I5cada97015ee94717ea6eb988b3a84a351f11293

6 years agoUse new defaultRealTolerance() to stabilise some tests
Mark Abraham [Wed, 20 Dec 2017 11:13:00 +0000 (22:13 +1100)]
Use new defaultRealTolerance() to stabilise some tests

The single-precision values in these tests sometimes failed to compare
equal with string-ified versions when the test was run from a
double-precision build on Windows. That difference may have originated
in how a rounding mode was implemented in different libraries, but
ultimately doesn't matter because the value should not be compared as
if it was computed in double precision.

Change-Id: I9b7c2b9409145cc579229f0866935754e3a9dcac

6 years agoMerge "Merge branch release-2016 into release-2018" into release-2018
Mark Abraham [Wed, 20 Dec 2017 12:33:56 +0000 (13:33 +0100)]
Merge "Merge branch release-2016 into release-2018" into release-2018

6 years agoMerge branch release-2016 into release-2018
Mark Abraham [Tue, 19 Dec 2017 13:23:59 +0000 (00:23 +1100)]
Merge branch release-2016 into release-2018

Change-Id: I2c3aa754de1b8ff971854740da9815fff8a41f0d

6 years agoRemove potentially wrong "per user request" note from npme reporting
Aleksei Iupinov [Tue, 19 Dec 2017 15:40:23 +0000 (16:40 +0100)]
Remove potentially wrong "per user request" note from npme reporting

Refs #2204

Change-Id: Idd2127737b7b1af9cec9f7b547478b8b82cdb59a

6 years agoRemoved -skip option from gmx energy
Paul Bauer [Tue, 19 Dec 2017 13:47:30 +0000 (14:47 +0100)]
Removed -skip option from gmx energy

Fixes #2145

Change-Id: Icb2576b1877540732709cc376d32d9b889302203

6 years agoMake acceleration correction VCM mode work
Berk Hess [Tue, 19 Dec 2017 10:55:25 +0000 (11:55 +0100)]
Make acceleration correction VCM mode work

The new acceleration correction VCM mode did not actually correct
the coordinate for the acceleration, since a null pointer was passed.
Introduced an extra CGLO flag to allow for correction of the
coordinates, but leave the initial coordinates unaffected.

Change-Id: I673793902df7241085fff20c63cf3ce88ef60313

6 years agoThird beta release of 2018
Mark Abraham [Tue, 19 Dec 2017 01:03:45 +0000 (02:03 +0100)]
Third beta release of 2018

Change-Id: I95296a74713ec41a18dd5c866e36b6c0ab66046b

6 years agoFix table tests and improve table construction
Mark Abraham [Mon, 11 Dec 2017 05:36:43 +0000 (16:36 +1100)]
Fix table tests and improve table construction

Since compilers are allowed to use different FMA constructs, we
now allow the consistency check to deviate a few ulps.

For sinc and other extreme functions that oscillate, the
scan over the definition range to locate the minimum quotient
between the 1st and 4th derivative to set the table spacing
exposes some delicate errors. Basically, it is not possible
to have arbitrarily low relative errors for the derivative
for a function that has large magnitude in the same place.
For now we reduce the test interval for sinc(); this should
anyway not be relevant for normal well-behaved MD functional
forms.

Fixes #2336.

Change-Id: I5f999ae871ae21ddc5b59cf78ad8bd27fe2df622

6 years agoMake oversubscription warning consistent
Berk Hess [Fri, 15 Dec 2017 15:12:15 +0000 (16:12 +0100)]
Make oversubscription warning consistent

The hardware thread oversubscription warning was only issued
with OpenMP and without separate PME ranks. Now it actually reduces
the thread count over the physical node.
Also moved the thread affinity up to the earliest possible point.

Refs #2345

Change-Id: Ifdf62c723fd87b0ddaab0df1e2f1bf36b461ea33

6 years agoFix electric field .mdp documentation
Carsten Kutzner [Mon, 18 Dec 2017 16:13:11 +0000 (17:13 +0100)]
Fix electric field .mdp documentation

Typo accidentally introduced in ca9e2450877d00e49

Change-Id: Idc1bf111b65c4e365aad61b2fb83a447d7c58bfd