Szilárd Páll [Wed, 22 Jan 2020 16:07:01 +0000 (17:07 +0100)]
Fix deadlock in PP-PME balancing startup delay
The condition whether load balancing should start included a per-rank
computed fixed time-delay. Therefore different ranks could evaluate this
condition differently resulting in a deadlock.
This change fixes the deadlock by broadcasting the result of the time
delay check.
Fixes #3335
Change-Id: I39ebc7e99483a6837bdbd79e312148384c1966b3
Paul Bauer [Tue, 14 Jan 2020 07:01:30 +0000 (08:01 +0100)]
Use utf-8 for python file reading
Avoids crashing on non-ascii characters
Also needed in release-2020 due to https://gitlab.com/gromacs/gromacs/pipelines/
111716110
Change-Id: Ie489110bbe37619d36f8feb739e04ef60cccff16
Berk Hess [Wed, 22 Jan 2020 21:26:51 +0000 (22:26 +0100)]
Fix DD rank count prime check
The domain decomposition would refuse to run with large prime factors
in the MPI rank count even when the grid was specified by the user.
Fixes #3336
Change-Id: I92f20ce18f314db68890650e76741b0ee70c05df
Artem Zhmurov [Thu, 23 Jan 2020 09:58:53 +0000 (10:58 +0100)]
Fix a couple of commas in cool quotes
A couple of commas between the quotes and their authors went missing.
Due to a random nature of cool quotes, I am not sure if this have
any consequences.
Change-Id: Ifb79557efc3fd3d8d75dd0a6566cccc7e5a43ea4
Gaurav Garg [Fri, 10 Jan 2020 17:29:17 +0000 (22:59 +0530)]
Fix PME checks in GPU update assignment decision
The decideWhetherToUseGpuForUpdate() function performed a check on
whether PME is on GPU, but neglected to check if PME is actually
active. Therefore, cases without PME (e.g. reaction field) were
unintentionally being prevented from running update on GPU. This change
adds a check whether pmeRunMode != PmeRunMode::None
Change-Id: Ic49f99b2e2afddabd7e2c8e68ab3d6d9325dc07a
Berk Hess [Wed, 22 Jan 2020 10:53:24 +0000 (11:53 +0100)]
Fix illegal memory access in PME communication
Depending on the compiler, mdrun could exit with an illegal
memory access error when a PME rank communicates 0 atoms with
another PME rank.
Change-Id: Ic1a08903f53c3d0b655ed5475ad99024979b461e
Berk Hess [Tue, 21 Jan 2020 21:05:31 +0000 (22:05 +0100)]
Clarify COMM/posres grompp note
In the common case of equilibrating a macro-molecule using position
restraints, grompp will issue a note about COMM removal when using
default mdp settings. Added a sentence that says that it is likely
not an issue in this common case.
Change-Id: Ide8b75664c4da3789c6661d8d69f855f9abea4e0
Paul Bauer [Mon, 20 Jan 2020 14:48:19 +0000 (15:48 +0100)]
Fix documentation error with doxygen >1.8.16
Fixes #3280
Change-Id: Ia41e080ea5ee4bc393d1e0240fc56958d81f6c68
Paul Bauer [Fri, 17 Jan 2020 11:54:26 +0000 (12:54 +0100)]
Actually fix Gitlab doc build
Was still failing after
658765317fd94df5d534c039462be03ab3839067 got
merged.
Actually fixes #3278
Change-Id: I747fe5c677864d1f50ab97d0eda38c68a6085b45
Paul Bauer [Thu, 16 Jan 2020 17:50:25 +0000 (18:50 +0100)]
Fix bad link in developer docs
Also made sure that error gets caught by the Gitlab CI runner.
Fixes #3278
Change-Id: I36b73a4322c69242eef3dcefa6684ef973b1bd01
Berk Hess [Thu, 16 Jan 2020 14:13:41 +0000 (15:13 +0100)]
Add check for shells and GPU update
Fixes #3303
Change-Id: I84a9d005fdff142e332e449bd7b2cce314617adb
Berk Hess [Thu, 16 Jan 2020 14:23:35 +0000 (15:23 +0100)]
Correct fixed redmine issue id from 3297 to 3296
Recent commit
36a65816 said it fixed issue 3297, but this should
have been issue 3296.
Refs #3296
Change-Id: I85a95e818d3cda816211dc2aa8ddb32e9e0c69d4
Szilárd Páll [Fri, 10 Jan 2020 15:37:32 +0000 (16:37 +0100)]
Fix PME run mode without PME
pmeRunMode was incorrectly set to CPU when the PME task is not
assigned to a GPU in a non-PME run.
This change make sure that non-PME runs pmeRunMode is correctly set to
None. It also moves this setup code to a function in the taskassignment
module.
Change-Id: I2c2c609e56d3cb6eef5cfccf2f0489545cedf6ef
Paul Bauer [Thu, 16 Jan 2020 08:17:14 +0000 (09:17 +0100)]
Fix nightly build failure on Gitlab
Found an unused variable warning when building without thread or real
MPI.
Change-Id: I6badc5c32e9eeb07cfafacd3ff9219dd612be847
Berk Hess [Tue, 14 Jan 2020 13:51:38 +0000 (14:51 +0100)]
Fix multisim with parallel simulation
mdrun -multisim with more than one rank per simulation would stop
with a fatal error due to using a partially initialized
gmx_multisim_t in GpuTaskAssignmentsBuilder::build().
Fixes #3297
Change-Id: Idfe24110908dc8cad29cd9a0eac7233fca4102f9
Artem Zhmurov [Fri, 10 Jan 2020 16:37:34 +0000 (17:37 +0100)]
Report if update is running on the GPU or on the CPU
This adds a line which states where update is offloaded next
to the rest of the GPU usage information.
Fixes #3292.
Change-Id: Ie6b076c4309c7695ab9b46037ced92e95dea1558
Paul Bauer [Fri, 10 Jan 2020 16:52:53 +0000 (17:52 +0100)]
Revert "Exclude build-system files from CPack"
This reverts commit
617d7fb728eee44331d8f8f98fa644bc5921fcb3.
Caused #3291
This commit fixes #3291
Change-Id: Ib75dd9274c1822192d5ffd0ce458ab35a3406f11
Christoph Junghans [Fri, 10 Jan 2020 00:37:09 +0000 (17:37 -0700)]
gmxManageMPI.cmake: convert MPI FLAGS to lists
Convert MPI FLAGS to lists as otherwise space will get quoted in
CFLAGS in gmxCFlags.cmake.
Change-Id: Ieee4b68d254261f079d954443322faf040e8b6e9
Szilárd Páll [Fri, 10 Jan 2020 13:22:07 +0000 (14:22 +0100)]
Improve mdrun performance user guide
- Extended GPU update related section;
- Tweaked the bonded GPU offload related section to reflect the current
state of the code.
Change-Id: I89ed39750d449df8b273f36ee6530df29ff31b7e
Roland Schulz [Tue, 7 Jan 2020 21:43:32 +0000 (13:43 -0800)]
Merge release-2019 into release-2020
Change-Id: I34a795ad1fdc805d056401932f8c543ed77cfae7
Roland Schulz [Tue, 7 Jan 2020 01:51:48 +0000 (17:51 -0800)]
Workaround for ICC 19u5 and 20initial
Change-Id: I34f4215f2112579b1a92c87aca28b270b4aca09e
Roland Schulz [Tue, 7 Jan 2020 04:55:49 +0000 (20:55 -0800)]
Add support for ICC NextGen with MKL
Change-Id: I2ac3d994736f2261955db65c7c039b7c33cdbaa7
M. Eric Irrgang [Fri, 8 Nov 2019 20:07:49 +0000 (23:07 +0300)]
Remove transitional links for online gmxapi Python package reference.
Provide link to current GROMACS gmxapi documentation,
built by GitLab Runner.
Fixes #2985
Change-Id: I1e56828aba4cc2568bbc9e6617863ca10197058d
Paul Bauer [Fri, 27 Dec 2019 13:48:34 +0000 (14:48 +0100)]
Prepare for 2020.1
Reset DOI strings
Change-Id: I5898dfdacde0c851c1a870a983094a2e56c3ab2b
Paul Bauer [Fri, 27 Dec 2019 13:01:33 +0000 (14:01 +0100)]
GROMACS 2020 release
Updated regressiontest hash
Set doi strings
Set correct release date
Change-Id: I5d34e1176e5a0ecc6b38a15d830d228127a69d9d
Paul Bauer [Wed, 1 Jan 2020 15:39:30 +0000 (16:39 +0100)]
Revert "GROMACS 2020 release"
This reverts commit
78c3280ad9c1802db4f6a7e02978207921add05f.
Reason for revert: wrong release date
Change-Id: Ia0d4112349ea4bdca9edda2a30e8933cacc2ad19
Paul Bauer [Fri, 27 Dec 2019 13:01:33 +0000 (14:01 +0100)]
GROMACS 2020 release
Updated regressiontest hash
Set doi strings
Change-Id: Id053624d5e276aea62a5d07ebf995cf01b54f1ab
Erik Lindahl [Tue, 31 Dec 2019 11:00:43 +0000 (12:00 +0100)]
Add link to paper explaining GROMOS twin-range issues.
Change-Id: I81e89817ce9441bb3d25bc43b00b4cc995590c3a
Mark Abraham [Tue, 31 Dec 2019 13:56:42 +0000 (13:56 +0000)]
Avoid 386 O3 codegen bug even more
Refs #3205
Change-Id: I78f3cc03da36e129a842507f9cdd3d170beb8c08
Artem Zhmurov [Mon, 30 Dec 2019 14:34:18 +0000 (15:34 +0100)]
Inform user why forcing GPU update is not possible
Currently, if the GMX_FORCE_UPDATE_DEFAULT_GPU is set in not supported
case, the update silently switches to the CPU code path. This adds the
message that informs user that this has happened and why.
Change-Id: I7317d83271158c9973f4c102d8ca830b437626b5
Artem Zhmurov [Mon, 30 Dec 2019 22:20:46 +0000 (23:20 +0100)]
Add description of GMX_FORCE_UPDATE_DEFAULT_GPU dev flag to the UG
Refs. #3021
Change-Id: Idff63154c5ebb0b5bd209ce6025934db3aedf8fd
Artem Zhmurov [Mon, 30 Dec 2019 11:17:20 +0000 (12:17 +0100)]
Fix gpuupdate matrix
1. Set GPU direct communications environment variables in update
matrix to allow for multi-rank testing.
2. Fall back to the CPU update if PME is not fully offloaded
in DD case and with PME-only rank (requred for GPU direct
communications).
Change-Id: I66283a446b0cc58fd0165226b01bf58ce9ec90f1
Mark Abraham [Mon, 30 Dec 2019 12:44:17 +0000 (12:44 +0000)]
Tests that verify serializer behaviours
xdr_vector serializing char uses four bytes per char, which is
wasteful when that char buffer is just a binary dump such as with the
tpr file body. This test ensures that our assumption when writing tpr
files is that we can reinterpret as a wider data type and avoid excess
padding.
It also tests that xdr_opaque does not introduce such padding.
Refs #3269
Refs #3276
Change-Id: I9c40b8ab7b9dabe461cb4dd146bb132d8f5a9681
Mark Abraham [Sun, 29 Dec 2019 23:08:15 +0000 (00:08 +0100)]
Remove use of tuple in LINCS code for GPU implementation
GCC 6.4 for POWER9 couldn't compile any form of increasing the size of
a vector of tuples that I could think of, so got rid of the tuple.
Used some range-based for, rather than explicit indexing plus the (slow)
at() function. There's no need to check indices are in range if there
are no indices!
Change-Id: Ie36a7a6fafe8f6613ec449778cfe2fbf97e02007
Paul Bauer [Mon, 23 Dec 2019 12:11:02 +0000 (13:11 +0100)]
Fix build error with wrong name from cached cmake file
The CMakeCache files could go out of sync when the name of the source
directory changes, leading to an unrecoverable build error.
To avoid this, CMakeCache files are no longer preserved between build.
Change-Id: Ifa1d808c05bd2f40132b9a721348b1bddb86fc02
Erik Lindahl [Sun, 29 Dec 2019 13:43:35 +0000 (14:43 +0100)]
Write TPR body as opaque XDR data in big-endian format
This implements support for opaque data in our serializers,
as well as a few missing XDR support opaque routines,
including support for data objects larger than 2GB.
By using this for the new serialization of the TPR body
we avoid the unintended 4x growth of the file size, and
avoid introducing extra endian swapping or padding.
We also adjust the endian so the InMemorySerializer
swaps to big endian (i.e., swap if host is little endian)
such that the body of the TPR file is compatible with
the header that is already written as big-endian by
the XDR routines.
Fixes #3276.
Change-Id: I99011dffe190155e671bd656127c2a33459923e2
Artem Zhmurov [Fri, 27 Dec 2019 11:15:23 +0000 (12:15 +0100)]
Change the behavior of the GPU update UI
1. By default, update will now run on the CPU
2. The "-update cpu" will override the GMX_FORCE_UPDATE_DEFAULT_GPU
environment variable.
Change-Id: I08efb6a594fb062fe145baa7cc00ba5c8ec63374
M. Eric Irrgang [Fri, 27 Dec 2019 13:54:44 +0000 (16:54 +0300)]
Resolve CMake ambiguities for gmxapi Python package build.
* Fix inconsistency in documented package dependencies.
* Update version of the required `cmake` Python package.
* Simplify setup.py since we can assume CMake >= 3.12 at build time. Avoids
having the CMake dependency too early in the Python package build.
Fixes #3270
Change-Id: I6d4a4b838f05985741f4560a05a3d9f257b2ec3d
Paul Bauer [Sat, 28 Dec 2019 11:20:23 +0000 (12:20 +0100)]
Change releng to give information about Gitlab
Started with converting the information for releng into information for
Gitlab when build can not find the releng repository.
Refs #3272
Change-Id: I027dd8eb3d01435cb06fba093fb2c64f381d47f3
Paul Bauer [Sat, 28 Dec 2019 11:10:25 +0000 (12:10 +0100)]
Extend information for GPU update
Refs #3167
Change-Id: I0df45487839c46ac98e99865c0d61637230ddc1a
Paul Bauer [Mon, 23 Dec 2019 09:07:06 +0000 (10:07 +0100)]
Exclude build-system files from CPack
Found that during Gitlab CI builds both ccache and build directory
where included in the final archive. Added exclusions to make sure
they do not propagate there.
Change-Id: I79717914c1d91a548ff295ff479b84ae19640e5d
Mark Abraham [Sat, 28 Dec 2019 12:26:27 +0000 (13:26 +0100)]
Merge "Merge origin/release-2019 into release-2020" into release-2020
Paul Bauer [Sat, 28 Dec 2019 10:59:13 +0000 (11:59 +0100)]
Remove membed from features
gmx membed currently does not work because the group scheme has been
removed.
Change-Id: I775ee8d2268e44610fa04ca15a1f3ff92b18f574
Paul Bauer [Fri, 27 Dec 2019 15:37:12 +0000 (16:37 +0100)]
Deprecate support for Armv7
Fixes #2990
Change-Id: Ia9dbfc9ea6cf23782e812ef2929e4851b264bc82
Artem Zhmurov [Fri, 20 Dec 2019 13:08:36 +0000 (14:08 +0100)]
Add a note to the log file when -update gpu was set with DD
GPU update with DD is not enabled with DD even if '-update gpu'
is requested. The only way to enable it is to set
GMX_FORCE_UPDATE_DEFAULT_GPU environment variable. This patch
adds a note to the output, expaining that. Also, extra warning
note is added when the environment variable is set.
Fixes #3259.
Change-Id: I480dd8e734ff60156e117cc80b1cd9af6a161791
Paul Bauer [Mon, 23 Dec 2019 09:19:16 +0000 (10:19 +0100)]
Add copyright check and improve cache usage
Changed the way jobs are using the runner cache, so that each subsequent
build can benefit from the cache.
Also removed caching from jobs that don't benefit from it.
Change-Id: Ic4505cc034ddf83dc2a7e8dc07ed1dfa9558633d
Paul Bauer [Fri, 27 Dec 2019 12:58:41 +0000 (13:58 +0100)]
Merge origin/release-2019 into release-2020
Resolved Conflicts:
cmake/FindHwloc.cmake
cmake/gmxVersionInfo.cmake
docs/CMakeLists.txt
src/gromacs/gmxana/anadih.cpp
src/gromacs/gmxana/gmx_angle.cpp
src/gromacs/mdlib/forcerec.cpp
Change-Id: Ie4408c932a712d4f9d1f42117a512e0474535df5
Artem Zhmurov [Fri, 27 Dec 2019 10:19:52 +0000 (11:19 +0100)]
Clean bad auto-format in decidegpuusage doxygen comments
Change-Id: Ia2ca1dcc138c920d54ce928889cfcad63fc3784b
M. Eric Irrgang [Thu, 12 Dec 2019 13:08:28 +0000 (16:08 +0300)]
Update intersphinx configuration.
Disable intersphinx cache expiration and set a finite timeout to play
more nicely in non-networked environments.
Change-Id: I5802f7dbba43897e27a77366013e254f868357e7
M. Eric Irrgang [Thu, 12 Dec 2019 13:06:41 +0000 (16:06 +0300)]
Set Sphinx default role.
Set default_role config value to 'any' for better automatic handling of
interpreted text in the default role. Allows improved readability for
documentation that may not always be processed by Sphinx, such as
Python docstrings.
Change-Id: I5bf37111d6870117810ac308cfaa8c5f1ae9bb5c
M. Eric Irrgang [Thu, 26 Dec 2019 16:18:55 +0000 (19:18 +0300)]
Fix external web link.
Ineffective syntax was used to try to make a link from the text "Conda"
to the Conda website. Instead, make a properly defined link target and
use "Conda_" for hyperlinked text throughout the document.
Change-Id: Iee77f8b28c9ee2e621da1fb9c8e46832a95e5e5e
M. Eric Irrgang [Thu, 12 Dec 2019 12:58:40 +0000 (15:58 +0300)]
Clean up Sphinx interpreted text in the default role.
* Fix typos or syntax for several text literals that Sphinx tries to
process as interpreted text (in the default role).
* Use Google docstring conventions to guide adjustment of gmxapi
docstrings.
Change-Id: If6eeede8dcc782c04fc4363005c38c746a8664ea
Paul Bauer [Fri, 20 Dec 2019 14:00:02 +0000 (15:00 +0100)]
Add files for Gitlab CI
Change-Id: I2508b6ba4a551a0768b1d5dfd742d97ebec37c7c
Paul Bauer [Mon, 16 Dec 2019 11:39:33 +0000 (12:39 +0100)]
Prepare for GROMACS 2019.6
Reset doi strings
Change-Id: I38fa39c52cde5d967525770ec2a6381b7fcee33a
Paul Bauer [Mon, 16 Dec 2019 11:36:38 +0000 (12:36 +0100)]
GROMACS version 2019.5
Added doi strings
Updated regressiontest hash.
Change-Id: If6c34638caf40f562fd8a744af767be4941ff73b
Paul Bauer [Sun, 22 Dec 2019 16:04:37 +0000 (17:04 +0100)]
Revert "Fix that tests intended for multiple ranks run that way"
This reverts commit
1ebc7b0bff4a32ce957fd79a1d1bd20b535ea518.
Reason for revert: The parallel running of tests doesn't work the way we want here and the effort for fixing things in a soon to be critical fixes only branch is not worth it in my opinion
Change-Id: I59fb6f9daf7019592de7e8db202ccd050c133610
Alan Gray [Thu, 12 Dec 2019 11:06:36 +0000 (03:06 -0800)]
Add user guide doc for GPU buffer ops and comms env variables
Change-Id: Ib6701adbf6f4909a804394606a362fa209716497
Paul Bauer [Fri, 20 Dec 2019 13:28:10 +0000 (14:28 +0100)]
Fix wrong header in release notes
Fixes #3261
Change-Id: Icc31b7a273670e99c21c9bb60343e1ce5d532653
Christian Blau [Mon, 25 Nov 2019 15:42:25 +0000 (16:42 +0100)]
Remove problematic output of gmx angle
It could happen that the calculation of the standard deviation
for angles caused a divide by zero error for empty populations.
Because this standard deviation of per frame averages over all
frames was anyhow meaningless, it has been removed.
Refs #3206
Change-Id: Icf541a8b3bef502da9a22b55a8e8154b2d4fc8f8
Paul Bauer [Tue, 17 Dec 2019 14:21:38 +0000 (15:21 +0100)]
GROMACS 2020 release candidate
Adjusted regresstiontest hash
Change-Id: I37cec8154843b8f8a2a9136051b50bce7eba5888
Szilárd Páll [Thu, 19 Dec 2019 19:44:35 +0000 (20:44 +0100)]
Enable buffer ops when GMX_GPU_DD_COMMS is set
Buffer ops is always a hard dependency for DD with GPU direct comm, so
enable it instead of requiring an extra env var to be set on mdrun
invocation.
Change-Id: Iea354f8ce636a115e0ed866228746e91f34df228
Paul Bauer [Thu, 19 Dec 2019 16:42:15 +0000 (17:42 +0100)]
Fix regressiontests failing with ctest
Setting the -ntomp variable and not -nt at the same time causes errors
when running the regressiontests through ctest.
This was introduced in I78925951dcb59a11af01bc64f0dea373fe172cbb while
updating things for Gitlab CI.
Fixes #3257
Change-Id: I19afd7817b5c637d6653fda8533f23720b45cc41
Alan Gray [Thu, 19 Dec 2019 13:32:53 +0000 (05:32 -0800)]
Release note for GPU direct communications
Change-Id: I4487f2ed6bc789e6cfb3e68d802ccedda0c51962
Alan Gray [Thu, 19 Dec 2019 09:45:58 +0000 (01:45 -0800)]
Fix PME tuning issue when PME-PP communications are active
If PME-PP direct GPU communication is active, the CPU-GPU
asynchronicity in the codepath causes the timing load balance ratio
used to trigger PME tuning to be unreliable. This change
unconditionally starts PME tuning when the PME-PP communication
feature is active (unless PME tuning has been de-activated with
the -notunepme option).
Partially addresses #3208
Change-Id: Iea173d19062dbd11d57ca9ceb4e52b9f20d4ff15
Szilárd Páll [Fri, 29 Nov 2019 00:10:10 +0000 (01:10 +0100)]
PP-PME load balancing improvements
Add a minimum number of nstlist tuning intervals and minimum time delay
at the beginning of the run before the load balancing starts. This allow
hardware clocks to ramp up and avoids having early measurements
overestimate rendering subsequent ones with different grid setups only
faster due to hardware warmup.
Also use global variables to adjust the number of measurements to be
skipped after switching configs.
Refs #3208
Fixes #2203
Change-Id: If835d2482e127caa51d50f45f25c19144d35efaa
M. Eric Irrgang [Thu, 19 Dec 2019 11:09:18 +0000 (14:09 +0300)]
Add issue tracking for deprecations.
Provide links in release notes to issue tracking for announced
deprecations.
Fixes #3251
Change-Id: I246651f8cb868eb1deecac86c2e7d6f0ec81b3f1
Berk Hess [Wed, 18 Dec 2019 18:23:43 +0000 (19:23 +0100)]
Fix mdrun appending invalidating energy files
When appending at mdrun restarts, energy files would become
unreadable at the appending point.
Fixes #3250
Change-Id: I7683e1a954fb8865acb5e77aae028ae717ae0ab3
Alan Gray [Wed, 18 Dec 2019 15:41:45 +0000 (07:41 -0800)]
Fix conditional on assertion for combining GPU Update and GPU coordinate send
Fixes a problem introduced in
9a3c2ce312c1e04634d636655388a8aaad53c8d1
which unintentionally blocks any use of GPU update with PME-PP
Communication because !stepWork.doNeighborSearch is missing from the
condition on the assertion.
Related to #3159 and #3160 which, when implemented, will remove the
restriction on coordinate send originating from the GPU (on non search steps).
Change-Id: Ie9b1102386b2c1bc927c09e4d8ead2bd2321320d
Szilárd Páll [Tue, 10 Dec 2019 11:24:32 +0000 (12:24 +0100)]
Allow x D2H to overlap with GPU force compute
With GPU update coordinates are transferred back to the CPU every step
if there are forces to compute on the CPU. Originally this was
implemented with a back-to-back transfer launch and wait at the
beginning of do_force().
This change moves the CPU wait for the completion of the coordinate
transfer closer to the consumer tasks in order to avoid blocking GPU
force tasks' launch and allowing compute and transfer to overlap.
Fixes #3221
Change-Id: Ia6641147bbec1186b54c1445d36dc31000eae9c4
M. Eric Irrgang [Fri, 13 Dec 2019 16:41:48 +0000 (19:41 +0300)]
Update reference to uncrustify and clang-format.
Correct some copy-paste errors. Consolidate some references to
formatting tools and continue to transition away from uncrustify.
uncrustify references and infrastructure remain, along with Jenkins
documentation. These can be removed after transitioning from Jenkins to
GitLab Runner, pending clarification on how to distinguish between
documentation for all supported versions versus the current version.
There are also various references and workarounds related to uncrustify
in the source code. These can be updated in separate changes against the
post-release-2020 master branch.
Refs #3248
Change-Id: I3331f73921812a918d32dd6a045eabc4da4a6a6d
Berk Hess [Fri, 6 Dec 2019 13:39:28 +0000 (14:39 +0100)]
Change grompp decoupling SD warning to note
The warning that grompp issues when decoupling a molecule
without the use of the SD integrator has been changed to a note,
since there are valid use cases for using normal MD when not
running in the completely decoupled state.
Note that checking for actual decoupled VdW states requires a lot of
code and would still not be 100% correct.
Fixes #2767
Change-Id: I55c84afcbcb7b19bdb8a7a8bc586a65c50f8d0c1
Paul Bauer [Tue, 17 Dec 2019 17:22:16 +0000 (18:22 +0100)]
Add ability to set OMP and tMPI thread for ctest
For Gitlab CI we need at some points to be able to set the threads used
for running the regressiontests through ctest.
(cherry picked from commit
4e6b4134e62f17d64520a46e0aad7cbd60f778f3)
Change-Id: I78925951dcb59a11af01bc64f0dea373fe172cbb
Paul Bauer [Fri, 13 Dec 2019 15:51:44 +0000 (16:51 +0100)]
Ignore build host for CI builds
When moving the CMake build directory between hosts a warning was
generated. This does not integrate well with containerized CI.
(cherry picked from commit
33079aa495e7e3b7da78bd58de9c6f30edff51d4)
Change-Id: If0a775ab86d25a7d5646e824243892320d4ddbe3
Berk Hess [Mon, 16 Dec 2019 09:50:06 +0000 (10:50 +0100)]
Add note for COM removal with position restraints
Center of mass motion removal in combination with position restraints
will often cause artifacts. We should (automatically) disable this,
but this will disrupt workflows, so for now grompp will issue a note.
Refs #3244
Change-Id: If983e918d26f0af2fab96d44d0f2b1fc3cedb901
Artem Zhmurov [Mon, 16 Dec 2019 21:17:47 +0000 (22:17 +0100)]
Clean-up buffer-ops CUDA kernels
1. Adjust naming according to conventions.
2. Reduce number of type casting.
3. Use native CUDA types.
Fixes #3237.
Change-Id: I79da0dd1edf6c302661ba0954e4191fde1ebf2e8
Paul Bauer [Tue, 10 Dec 2019 10:11:26 +0000 (11:11 +0100)]
Test parallel mpi only with openmp
Can time out in other conditions
Found while working on Gitlab CI
Refs #3232
Change-Id: I7cf62ed913d2bc8c88317a674b0594dbe54ba394
Szilárd Páll [Tue, 17 Dec 2019 12:43:00 +0000 (13:43 +0100)]
Comment the use of waitCoordinatesCopiedToDevice
Tthis is to note that we are only using a barrier a mechanism to sync
with GPU tasks rather than to preventing a race between the copy and
other CPU tasks.
Change-Id: I8d432f7ef3e87e56beffa7f58230e50bcd59a666
Paul Bauer [Fri, 13 Dec 2019 15:50:21 +0000 (16:50 +0100)]
Set correct dependency for doc build on gmxapi
When building the documentation with the python package, we need to know
about the symbols in the package when building docs for e.g. the pdf
manual.
Change-Id: Ia9a248da5746a5d90736cd3f3aa345fe8ffd0c79
(cherry picked from commit
0aa283c6b578b1b6bf6673169697865142014368)
Paul Bauer [Fri, 13 Dec 2019 15:50:01 +0000 (16:50 +0100)]
Fix compiler warning about extra ;
Change-Id: I9718ab9d9772dfc7251bc1eb175be59544b2c2cb
(cherry picked from commit
6ef70b67bb06f03da97315170a44f76679d92a23)
Szilárd Páll [Fri, 6 Dec 2019 18:57:24 +0000 (19:57 +0100)]
Add wallcycle counting to StatePropagatorDataGpu
Launch overheads are counted in the main GPU launch overhead counter and
a separate subcounter is used for the launch and a main counter for the
CPU blocking wait timing.
Note that this chnge introduces mdtypes->timing->mdtypes cyclic dependency,
the warning on which is suppressed.
Fixes #3207
Change-Id: I3b69df9e4888800b43712a42b863958db80f5caa
M. Eric Irrgang [Fri, 13 Dec 2019 16:14:43 +0000 (19:14 +0300)]
Be more specific with clang-format suggestions.
Refs #3238
Change-Id: If71687cbab9a9aa1c10e3501849932a0ea0f3112
Paul Bauer [Mon, 16 Dec 2019 12:51:02 +0000 (13:51 +0100)]
Fix formatting error
Fix originally proposed by Boris Timofeev.
Refs #3225
Change-Id: Ie742f2c751473d17fc8f69e9ed79faacdd6fc56c
Mark Abraham [Sat, 28 Sep 2019 08:25:41 +0000 (10:25 +0200)]
Fix that tests intended for multiple ranks run that way
Added the flag that triggers ctest to use the flags that will produce
multiple ranks in both thread-MPI and real MPI cases.
Change-Id: I4ef3af4fd1750ab7cc231a29191fc4042385c309
Pascal Merz [Tue, 17 Dec 2019 04:24:40 +0000 (21:24 -0700)]
Fix exact continuation modular simulator
With modular simulator, the center of mass motion was mistakenly
removed also when continuing from checkpoint, breaking exact
continuation.
Change-Id: I4db837a1b11f1b44cfae4970230a51a2c05d84aa
Szilárd Páll [Sat, 14 Dec 2019 22:15:44 +0000 (23:15 +0100)]
Fix the GPU bonded stream with 1 PP + 1 PME rank
WIth 1 PP + 1 PME rank the GpuBonded constructor gets passed the
non-local nonbonded stream which is nullptr and as a result the bonded
kernel launch happens in the default stream blocking concurrent
kernel execution.
This change makes sure that only when there is PP domain decomposition
is the GpuBonded constructor passed the nonlocal stream.
Fixes #3241
Change-Id: I858401b78c620adc3bea176e40e6fa179e583483
Paul Bauer [Fri, 6 Dec 2019 11:18:23 +0000 (12:18 +0100)]
Fix torsion angle calculation
Fix originally contributed by Boris Timofeev.
Fixes #3225
Change-Id: I4862679e4aeae514736df53f0eff44bf3b85f928
Christian Blau [Mon, 9 Dec 2019 18:42:20 +0000 (19:42 +0100)]
Fix densityfitting stalling and energies
Density guided simulations would stall when there were no atoms on a
node. Further, the energy contributions were added for every
participating node, resulting in wrong energies.
Both issues are fixed with this patch.
fixes: #3230
refs: #3235
Change-Id: Iab773993fb3f98bd154acaa1d3971e655182a2b2
Mark Abraham [Wed, 31 Oct 2018 13:44:55 +0000 (14:44 +0100)]
Simplify gmxapi RPATH handling
Fixes #2722
Change-Id: Ic697f596285acdb5c7728b7ebc995ea44c82f3ac
Paul Bauer [Wed, 27 Nov 2019 15:35:16 +0000 (16:35 +0100)]
Check for using correct hwloc headers and runtime
Also add assertion in the code to prevent errors from linking
against the wrong library while running.
Fixes #3200
Change-Id: Ib2f2861702e111f67c38b0c9d65ccbe4c81a0ccd
Artem Zhmurov [Thu, 12 Dec 2019 16:30:27 +0000 (17:30 +0100)]
Clean up outdated comments in md.cpp
Some of the comments were left unattended as the code evolved.
Change-Id: I12c2e313645fcbb1a112f3f0c9f4c72e7943d9d6
Pascal Merz [Wed, 11 Dec 2019 01:49:24 +0000 (18:49 -0700)]
Test for expected output files
Ie7f03f5b fixes a bug where modular simulator would not write
final coordinates to file. This test checks whether some basic
output files are present (edr, trr, log, gro, cpt).
Change-Id: I02299d342667104ccc19f0af6d557bb8aa916494
Pascal Merz [Wed, 4 Dec 2019 06:55:36 +0000 (23:55 -0700)]
Fix final configuration writing for modular simulator
Modular simulator was not writing final configuration (.gro) file.
This commit fixes this, and removes an outdated sentence in the
documentation of ITrajectoryWriterClient.
I02299d34 introduces a test to avoid similar errors in the future.
Note that the complexity required to introduce this feature implies that
trajectory writing in the modular simulator needs some work for
GROMACS 2021.
Change-Id: Ie7f03f5beea2d78411c7a0cdfa85f71deeb622fa
Szilárd Páll [Mon, 2 Dec 2019 18:29:28 +0000 (19:29 +0100)]
Allow overlapping CPU force H2D with compute
The reduction orchestration code already uses explicit sync event
in all cases and StateGpu implements the ability to schedule force
H2D in a separate stream for the "All" locality.
Hence, this change switches for non-DD runs the CPU force H2D to be done
in the update stream to allow overlap with force work in the local
stream.
Refs #3170 #3029
Change-Id: Iceb9aac395335c062109d552d3f0289688a9c75f
Christian Blau [Tue, 22 Oct 2019 08:55:59 +0000 (10:55 +0200)]
Densityfitting - enforce similarity increase with adaptive force scaling
Previous to this patch, the force constant for density guided
simulations with adaptive force constant scaling was scaled up the same
amount that it was scaled down, not resulting in the announced enforced
increase in similarity. Now, the force constant is increased more strongly
than decreased, resulting in the desired enforced increase in similarity.
Change-Id: I5b149c79d91ea9e5ceeb5b0e7dce854bd6f34711
Artem Zhmurov [Thu, 5 Dec 2019 13:49:25 +0000 (14:49 +0100)]
Allow using GPU update with DD and update groups
The GPU update is now can be enabled for the supported DD cases
with the GMX_FORCE_UPDATE_DEFAULT_GPU environment variable. Also
added the checks on whether the SHAKE algorithm was requested,
since SHAKE is not supported by the GPU update.
Refs. #3226, #3163.
Change-Id: I57e3ad3b8a571ec244989e888afd5cfcbaf9b75e
Artem Zhmurov [Wed, 11 Dec 2019 15:19:15 +0000 (16:19 +0100)]
Enable most of the pulling flavors with GPU update
Only constraints pulling is not supported, since it is not implemented
in GPU version of LINCS. There is no reason to disallow other flavors
of pulling.
Change-Id: Iceca52bba5e040bd241a156f9cf58ab3556acdac
Mark Abraham [Wed, 11 Dec 2019 14:46:51 +0000 (15:46 +0100)]
Document DOMAINDECOMP(cr) correctly
It is likely there are numerous cases where this is used mistakenly
when havePPDomainDecomposition expresses the real intent. If so,
runs with 1 PP and 1 PME rank may have buggy behaviour.
Refs #2395
Change-Id: I07be73a6c690887b3043140a2a78ae6fe6bb17f1
Artem Zhmurov [Wed, 11 Dec 2019 10:53:31 +0000 (11:53 +0100)]
Clarify what setting zero to some output mdp options does
Change-Id: I36dc059e982c3358cbfa55596e71093ce3208446
M. Eric Irrgang [Wed, 11 Dec 2019 13:50:33 +0000 (16:50 +0300)]
gmxapi landing page update.
In response to user feedback, replace some content that was confusing
instead of informative.
Change-Id: Ida8c12ba2caf4ef224b9276570bc719c9000e2bd
M. Eric Irrgang [Wed, 11 Dec 2019 13:45:36 +0000 (16:45 +0300)]
gmxapi documentation readability improvements.
In response to user feedback, provide a "quick install" overview section.
Rearrange and update some content.
Change-Id: I2a1bbf1a1efbda769e330b85925ed01dbcdae29e