Roland Schulz [Fri, 12 Jan 2018 01:58:30 +0000 (17:58 -0800)]
Merge release-2018 into master
Change-Id: I197f817d0b54392bc1198536e39e74baacad3e96
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Mark Abraham [Tue, 9 Jan 2018 07:42:07 +0000 (08:42 +0100)]
Merge branch release-2016 into release-2018
Change-Id: I22d5b28794a4bbb3b122af339a282695aa64f266
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
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
Carsten Kutzner [Mon, 8 Jan 2018 10:46:47 +0000 (11:46 +0100)]
Fix a few typos in SIMD documentation
Change-Id: Ia64f936098172eb4e13d3bacf1caa824c43779fc
Roland Schulz [Fri, 5 Jan 2018 22:59:42 +0000 (14:59 -0800)]
Remove unused defines
Change-Id: I776307a4acd53e88f9ea06dddb1c23fc5d9fc2e3
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
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
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
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
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
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
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
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
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
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
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
Paul Bauer [Wed, 3 Jan 2018 10:39:00 +0000 (11:39 +0100)]
Correct dihedral restraint section in Manual
Fixes #2038
Change-Id: I37bfaa3083efe5721b2d30f4b1038062fc4dbe2b
Mark Abraham [Sun, 24 Dec 2017 03:21:34 +0000 (14:21 +1100)]
Add cool quote
Change-Id: I8ac6652c895aa85f2237599a17183aaa4f37f19e
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Mark Abraham [Tue, 26 Dec 2017 07:59:24 +0000 (18:59 +1100)]
First release candidate for version 2018
Change-Id: I893e4a9c0f2684955554ad537e6d9609e5f83102
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
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
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
Mark Abraham [Tue, 26 Dec 2017 13:01:43 +0000 (14:01 +0100)]
Silence POWER8 compiler warnings
Change-Id: Id116b048d775d36ce8ac942380cfd64deed3bb7e
Roland Schulz [Tue, 26 Dec 2017 18:51:23 +0000 (10:51 -0800)]
Fix quote
Change-Id: Ic763145c231951cd8e61cf36f3486de7a3d30e30
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
Mark Abraham [Fri, 22 Dec 2017 14:11:52 +0000 (01:11 +1100)]
Merge branch release-2016 into release-2018
Change-Id: I909443584916c574f94b38d0aab2701163faecad
Mark Abraham [Thu, 21 Dec 2017 14:00:56 +0000 (01:00 +1100)]
Merge branch release-5-1 into release-2016
Change-Id: Ic4aa87c01dfe281c9c8aa31fbc0f7f9fcbe9752d
Mark Abraham [Thu, 21 Dec 2017 13:56:25 +0000 (00:56 +1100)]
Bump minor version for theoretical new release
Change-Id: I54152717d87ad84e7fa5549887b587aa10fe43e4
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
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
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
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
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
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
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
Mark Abraham [Wed, 20 Dec 2017 12:33:56 +0000 (13:33 +0100)]
Merge "Merge branch release-2016 into release-2018" 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
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
Paul Bauer [Tue, 19 Dec 2017 13:47:30 +0000 (14:47 +0100)]
Removed -skip option from gmx energy
Fixes #2145
Change-Id: Icb2576b1877540732709cc376d32d9b889302203
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
Mark Abraham [Tue, 19 Dec 2017 01:03:45 +0000 (02:03 +0100)]
Third beta release of 2018
Change-Id: I95296a74713ec41a18dd5c866e36b6c0ab66046b
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
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
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
Erik Lindahl [Sun, 17 Dec 2017 10:03:17 +0000 (11:03 +0100)]
Use reduced default tolerances for tpx comparison
The tolerances for gmx check are mainly intended
for handling slight statistical deviations, but they
can hide differences between tpr files, when the
user likely wants exact checks. This changes
changes the default relative tolerance to 0.000001
and the absolute tolerance to zero, so that we only
allow for minor differences due to compiler optimization.
Fixes #2024.
Change-Id: I55b882a194d931bf5c36541e25339b6e1eb0a1e4
Roland Schulz [Fri, 15 Dec 2017 02:19:11 +0000 (18:19 -0800)]
Fix cmake error with emacs lock files in place
Change-Id: If95d6a77303373c7a0bac5299e6f9dacd1fac81c
Roland Schulz [Sun, 17 Dec 2017 20:11:11 +0000 (12:11 -0800)]
Merge branch release-2018
Change-Id: I24fa9b72c49b9e6043e45ec87425b101b8024496
Roland Schulz [Sun, 17 Dec 2017 20:01:29 +0000 (12:01 -0800)]
Fix typo introduced in
b1b1163a245
Change-Id: I288caff40c6252fd059bc2601b4f5afd438aba08
Roland Schulz [Thu, 14 Dec 2017 17:51:48 +0000 (09:51 -0800)]
Change avx_128_fma build to double
Important for:
- Simd4N=Simd4
- sizeof(SimdInt32)!=4*GMX_SIMD_REAL_WIDTH
Change-Id: I79efca09547d84d05533c963d53ed6bf7daf3e7b
Roland Schulz [Mon, 11 Dec 2017 11:07:51 +0000 (03:07 -0800)]
Support Simd4N for SimdRealWidth<4
If the SIMD with is smaller 4 but Simd4N is supported
then use Simd4 for Simd4N.
Also move Traits into internal namespace to signify that they
are not intended for usage outside of the simd module.
Fixes #2327
Change-Id: I3d49c57cebc5d565df442d01e322c89312771699
Roland Schulz [Fri, 15 Dec 2017 01:19:48 +0000 (17:19 -0800)]
Remove incorrect/misleading OpenMP message
Change-Id: I69e8b84a593aeb3dff868a169ac88f17c101ec59
Roland Schulz [Fri, 15 Dec 2017 00:49:56 +0000 (16:49 -0800)]
Revert "Use table Ewald for Skylake"
This reverts commit
80c3f0d8ec228c6266ab721cadcb3dca48aad1d1.
After the bugfix of table (
12e9ea41a9cee) this isn't the right
choice anymore.
Change-Id: I4c916c1d038c0e7501b1bd9f91ebc89f5afbd2cd
Mark Abraham [Thu, 14 Dec 2017 11:12:34 +0000 (22:12 +1100)]
Make OpenCL implementation of gpu_utils tests conform
These fell out of sync with the CUDA implemention, and can only be
noticed if you run tests from an OpenCL build with no devices
available.
Change-Id: Ib196cf498c2537f814c9153b0279af8fdf01234d
Mark Abraham [Tue, 12 Dec 2017 09:35:38 +0000 (20:35 +1100)]
Avoid confusing message at end of non-dynamical runs
EM, TPI, NM, etc. are not targets for performance optimization
so we will not write performance reports. This commit fixes
and oversight whereby we would warn a user when the lack of
performance report is normal and expected.
Fixes #2172
Change-Id: I1097304d79701be748612510572382729f7f26be
Mark Abraham [Thu, 14 Dec 2017 03:04:13 +0000 (14:04 +1100)]
Fix return values of frame-reading functions
This function was based on read_first_x that returned the number of
atoms, and was documented to do the same, but has always returned a
logical boolean about whether a frame has been read. This led to
aspects of gmx spatial and gmx trjcat -demux being broken.
Fixed by returning a proper bool, and fixing the remaining logic that
used the return value in a non-boolean sense.
Refs #2157
Change-Id: Ic871b56f68c7dbc654ab11b34ff82932353e6ceb
Berk Hess [Tue, 12 Dec 2017 15:10:08 +0000 (16:10 +0100)]
Require -ntmpi with setting -ntomp with GPUs
With GPUs and thread-MPI, setting only -ntomp could lead to
oversubscription of the hardware threads.
Now with GPUs and thread-MPI the user is required to set -ntmpi when
using -ntomp. Here we chose that to also require -ntmpi when the user
specified both -nt and -ntomp; here we could infer the number of
ranks, but it's safer to ask the user to explicity set -ntmpi.
Note that specifying both -ntmpi and -nt has always worked correctly.
Fixes #2348
Change-Id: Iad380721807f5c53b8c70808cea75c5f29341a8f
Mark Abraham [Tue, 12 Dec 2017 19:41:16 +0000 (20:41 +0100)]
Make AVX-512 CMake detction work
Both inline assembly and the support flag have to be set for the
timing code to be compiled.
Also fixed tabs and made the warning about the number of FMA units
only a status message - it's not any more important than anything else
we make assumptions about.
Change-Id: I1a430d12bc52cbea2495d2d3837c851761f552d8
Paul Bauer [Mon, 11 Dec 2017 11:53:12 +0000 (12:53 +0100)]
Remove PBC before generating TPR with group scheme
Ensure that all molecules have been made whole before generating the
run input file when using the group scheme, to avoid error
messages for large charge groups when molecules are broken
over PBC boundaries.
Fixes #2339
Change-Id: Iecba013826cbe46e7f70bd674935f9946806ee2e
Roland Schulz [Wed, 13 Dec 2017 21:00:12 +0000 (13:00 -0800)]
Simplify CMAP loop
Fixes #2350
Change-Id: Id87a2105012d541f77d1c278029fe36b874328a9
Erik Lindahl [Tue, 12 Dec 2017 14:54:56 +0000 (15:54 +0100)]
Work around AVX-512 issues in gcc-5.4 and 7.1
Fixes compilation issues with mixed and double precision builds using
AVX-512 SIMD with gcc-5.4 or gcc-7.1. Also tested with gcc-6.3, and
Debug as well as Release builds for all three versions, all of which
now pass the simd unit tests.
Fixes #2325.
Change-Id: I59c3ae0467b51412d1ebbb5b57a248534288a5db
Erik Lindahl [Tue, 12 Dec 2017 21:51:18 +0000 (22:51 +0100)]
Fix PBC error in gmx_spatial
Fix provided by Alexey Anikeenko.
Fixes #2157.
Change-Id: I2ac8a4ffac5acb0f3e432036ded3b380d720a719
Mark Abraham [Thu, 14 Dec 2017 08:26:49 +0000 (09:26 +0100)]
Merge "Merge branch release-2016 into release-2018" into release-2018
Roland Schulz [Wed, 13 Dec 2017 16:45:14 +0000 (08:45 -0800)]
Remove int support for SimdArrayRef
Keep int tests for better SimdArrayRef test coverage.
Change-Id: Ic5234fbfe11c5fe427ec57e4fdba915c9197c07c
Erik Lindahl [Tue, 12 Dec 2017 22:00:49 +0000 (23:00 +0100)]
Documented power spectrum to gmx velacc
This option was saved by the bell and my nostalgia for
power spectra. The usual recourse is that we get rid of
functionality that nobody takes the time to document.
Fixes #2019.
Change-Id: I09fc5367a59300e2fca780125893fad5c1d72b81
Roland Schulz [Tue, 12 Dec 2017 19:17:16 +0000 (11:17 -0800)]
Add work-around for ICC 18.0/.1
Also remove old work-around for unsupported version.
Change-Id: I927749b55f76b30b7d9140f84fa6216c725b5852
Erik Lindahl [Tue, 12 Dec 2017 14:31:07 +0000 (15:31 +0100)]
Require TPR file for gmx cluster
The program crashes without it, so it wasn't
optional.
Fixes #2170.
Change-Id: I63af728eea047dd4c3b11d890d507473109a7279
Erik Lindahl [Tue, 12 Dec 2017 00:15:00 +0000 (01:15 +0100)]
Disallow ascii formats for gmx trjcat
Since trjcat (deliberately) does not use any TPR file,
the tool can't handle trajectory formats such as GRO
or PDB where atom/residue names are needed.
Fixes #2225.
Change-Id: I55cbfd5f8a3909c1f76e63fa402f0c3243a6f7c7