Berk Hess [Mon, 2 Mar 2020 16:42:03 +0000 (17:42 +0100)]
Fix grompp unbound atom check
The check in grompp for unbound atoms would check for any
potential (and constraints) instead of only potentials involving
two atoms. This enabled false negatives.
Change-Id: I677b86a4e4bbe8cd0c6a8a0bf43983be622edfa6
Berk Hess [Mon, 2 Mar 2020 10:15:51 +0000 (11:15 +0100)]
Fix nrdf with partial COMM removal
In the uncommon case where the center of mass motion is removed for
part of the system but not the whole system, the number of degrees
of freedom for the part without COMM removal would be incorrectly
lowered by 3.
Fixes #3406
Change-Id: I371bcfbbd6cf7ddddccb9234752128239bad356f
Berk Hess [Mon, 2 Mar 2020 15:20:26 +0000 (16:20 +0100)]
Fix too small pairlist buffer on Intel GPUs
The pairlist buffer generated for Intel GPUs was slightly too small,
because it assumed a 4x4 atom-cluster pair kernel instead of 4x2.
This also fixes incorrect kernel setup messages in the log file.
Fixes #3407
Change-Id: I744f98a934b5d9f60e0708cb064571aa6e389c44
Paul Bauer [Mon, 2 Mar 2020 08:37:08 +0000 (09:37 +0100)]
Revert "Remove frozen atoms from VCM groups"
This reverts commit
3a93c3a8ed49d20b47aed181d98f64921b864a3d.
Reason for revert: Change is incorrect
Change-Id: I808655e109e1da7ce37a59c1d55dabd059a32bb7
Paul Bauer [Thu, 27 Feb 2020 10:47:26 +0000 (11:47 +0100)]
Remove frozen atoms from VCM groups
Atoms are removed during preprocessing.
Also add release note missing for previous patch.
Fixes #2553
Change-Id: I4fd52d50a9ef3af4ed11f9b507902d4ac59ed487
Paul Bauer [Fri, 28 Feb 2020 09:56:27 +0000 (10:56 +0100)]
Merge branch release-2019 into release-2020
Resolved Conflicts:
cmake/gmxVersionInfo.cmake
src/gromacs/ewald/pme.cpp
src/gromacs/gmxana/gmx_disre.cpp
src/gromacs/gpu_utils/gpu_utils.cu
src/gromacs/hardware/gpu_hw_info.cpp
src/gromacs/hardware/gpu_hw_info.h
src/gromacs/mdrun/rerun.cpp
Change-Id: I2a89270a1321a51e0bc25e2b6890245f562945a2
Paul Bauer [Thu, 27 Feb 2020 14:00:12 +0000 (15:00 +0100)]
Define all CPU NB kernels
Access to kernels that where not defined could otherwise lead to
undefined behaviour.
Fixes #2728
Change-Id: Ib014cfd0dbc46961eb4e6a81acb3e06d57c3df73
Jonathan Vincent [Mon, 24 Feb 2020 14:26:20 +0000 (06:26 -0800)]
Moves call to choose best performaing kernels to pme_gpu_reinit_atoms
atoms.nAtoms is zero when pme_gpu_reinit is called, resulting in
the useOrderThreadsPerAtom and recalculateSplines always being set to false.
Refs #3189
Change-Id: I36d4be71565cfe8cd8e50fbe6cfe1035f3e15c8e
Paul Bauer [Mon, 24 Feb 2020 14:54:18 +0000 (15:54 +0100)]
Version 2019.6
Set DOI strings.
Updated regressiontest hash.
Change-Id: If7c04fbd26756275daea1c252ef977a367669b42
Pascal Merz [Tue, 25 Feb 2020 07:15:45 +0000 (00:15 -0700)]
Loosen gmxapi stopsignaler test
Gmxapi stopsignaler test was checking whether simulations were stopped
on the step after a stop signal was set. This is true for the legacy
implementation, but only due to the exact order of instructions. The
StopSignalHandler does not guarantee to stop simulations at the next
NS step after a signal has been set, it promises to stop a simulation
at the next NS step after a signal has been communicated. This change
loosens the criterion to reflect this.
Further, this change
* Changes the numberOfTimesCalled() function to timeElapsedSinceStart(),
also including a different treatment of the call before the restraint
is ever called, to avoid misunderstandings.
* Adds a comment to explain the expectations validated by this test.
Fixes #3397
Change-Id: I2a3805a14c03d0ee12ebd21b5863c5243b1c3671
Pascal Merz [Fri, 21 Feb 2020 01:11:13 +0000 (18:11 -0700)]
Use legacy code path for t_graph (modular simulator)
This change redirects simulations which will require a t_graph object
to the legacy code path. It also adds an assert to catch cases in which
the redirection would fail in a more graceful way.
Fixes #3389
Change-Id: I17a70e504c206b2798cd2439c0c0ff5d5cd112e3
Pascal Merz [Wed, 26 Feb 2020 23:19:29 +0000 (16:19 -0700)]
Extract and expose function to determine whether molecules are broken over PBC
This prevents code duplication in the child change I17a70e50. This
is pure refactoring with two exceptions:
* Checking for orientation restraints is changed from
fcd->orires.nr
to
gmx_mtop_ftype_count(mtop, F_ORIRES)
This allows to use this function before the force constant struct
is built. An assert is added to make sure this never get out of
sync (which would hint to something going very wrong somewhere else...)
* A `if(fplog){}` around a single GMX_LOG(mdlog.warning) was removed.
Change-Id: I6303c6b1cab86c57971a1486c892a1b122a446c6
Pascal Merz [Thu, 16 Jan 2020 08:13:05 +0000 (09:13 +0100)]
Fix constraint contribution to dhdl (modular simulator)
The contribution to dhdl from the constraints was not added under
modular simulator.
Refs #1255
Change-Id: I804f52eeb97a17ae0d233700203da1db33a54d54
Szilárd Páll [Fri, 25 Oct 2019 23:24:23 +0000 (01:24 +0200)]
Avoid mdrun terminate due to GPU sanity check errors
When a GPU is a exclusive or prohibited mode, early detection calls can
fail and as a result an mdrun run abort with an error, even if all GPU
offload is explicitly disabled by the user.
This change adds a status code to handle the case of devices being
unavailable.
Additionally, other errors may be encountered during the dummy kernel
sanity check (e.g. out of memory), but since the change that switches
to using launchGpuKernel() wrapper did not handle the exception in the
sanity checking, this can also abort a run even if the GPU in question
is not selected to be used.
This change adds code to catch the exception this and report the error
and avoid abort the run.
Fixes #3178 #3399
Change-Id: I0cdedbc02769084c172e4a42fe5c1af192007cec
Szilárd Páll [Wed, 26 Feb 2020 15:07:25 +0000 (16:07 +0100)]
Document NVIDIA OpenCL broken on Volta and Turing
Refs #3125
Change-Id: Id200c1092b279d45a97b98c6fe1d03c2ffb14fb0
Szilárd Páll [Thu, 20 Feb 2020 18:20:26 +0000 (19:20 +0100)]
Remove outdated PME-GPU limitation in user guide
PME GPU is supported on all compatible GPU platforms and vendors.
Change-Id: I8b054825d4c6a2d030b87fe4b6a9be759911c9f6
Pascal Merz [Tue, 25 Feb 2020 23:58:02 +0000 (16:58 -0700)]
Fix calculation of reciprocal terms in rerun
This at least temporarily fixes #3400.
Change-Id: I04d67d9bb3edbd66049573de71940e4bb7fa1ad4
Magnus Lundborg [Wed, 19 Feb 2020 12:17:14 +0000 (13:17 +0100)]
Fix out of sync checkpoint files in simulations sharing state
When multidir simulations share the state, the checkpoint files
of the different simulations should all be from the same step.
To ensure this, MPI barriers have been added before renaming
the checkpoint files from their temporary to their final names.
So now the contents can never be out of sync. In the worst, and
rather unlikely, case that something going wrong during renaming,
some checkpoint files could have temporary and some final names.
Refs #2440.
Change-Id: I88088abb726a36dbf9a9db2fa2eb4a46c3bf2cd7
Szilárd Páll [Fri, 24 Jan 2020 13:12:28 +0000 (14:12 +0100)]
Improve GPU update tasks assignment consistency
GPU update task assignment was not consistent with the assumptions and
supported features of the 2020 release and did not implement the correct
checks and fallback in cases where GPU update was decided to not be
supported. Specifically, this change makes sure that when separate PME
ranks are used, without direct GPU communication for PP-PME, GPU update
falls back to the CPU.
Fixes #3354
Change-Id: I7c9dd67cd8cf61f0201b626b8b7674917e3365a5
Paul Bauer [Fri, 21 Feb 2020 14:49:21 +0000 (15:49 +0100)]
Avoid integer overflow in dispersion correction
Index could become out of range and turn negative.
Fixes #3391
Change-Id: I91a8ea0ab01370fb972c02994e2b996284e1d06a
Christian Blau [Tue, 25 Feb 2020 09:25:02 +0000 (10:25 +0100)]
Document density-fit cross-correlation in .mdp options
Add missing documentation about cross-correlation as
similarity measure for density-guided simulations.
Though documented in the reference manual, it was until now
not mentioned in the .mdp options.
Change-Id: I2a5a13ca6fb0a15e8c2ff1cba6a6edbe0182053d
Paul Bauer [Mon, 24 Feb 2020 12:29:21 +0000 (13:29 +0100)]
Revert "Expose vsite counting"
This reverts commit
2078fd0619459bd533a94550d5754477dbbaabaa.
Not needed in fact.
Change-Id: I238d33e23e3b508ec0c77a5c43f67e5838950f34
Paul Bauer [Sat, 22 Feb 2020 12:31:41 +0000 (13:31 +0100)]
Fix clang-6 image template
Overlooked this when merging
1093dfa9ba24329162179a3fcbcbb8c491ab9543.
Change-Id: I85d5b852ab5d565289d64dd21ade09dabd4115c4
David van der Spoel [Mon, 17 Feb 2020 22:20:24 +0000 (23:20 +0100)]
Fixed bug in gmx disre due to inconsistency in input.
The gmx disre program used the labels in the distance restraint entries
(see manual) as an index in internal arrays. This might lead to either
memory errors or the program stopping due to uninitialized variables.
Fixes #3384
Change-Id: Ic2d77c3fd81547e030bf7ce21860a71e3adbb2b3
Pascal Merz [Fri, 21 Feb 2020 00:34:04 +0000 (17:34 -0700)]
Use legacy code path for NMR restraints (modular simulator)
Fixes #3388
Change-Id: I03db8af35d71c7405716e73516c4235fc089334c
Pascal Merz [Thu, 20 Feb 2020 21:15:56 +0000 (14:15 -0700)]
Correct for skewed box in non-DD modular simulator
In modular simulator, the correction for skewed boxes was only performed
when DD was active. This change makes sure it happens in all cases.
Also left a TODO to think about unifying the approach for the two cases
moving forward.
Fixes #3383
Refs #3392
Change-Id: I897dbc9e490bb1a1e465e711c66b47a29e214fd1
Berk Hess [Fri, 21 Feb 2020 10:36:04 +0000 (11:36 +0100)]
Add fatal error when multisim runs sharing state have different init_step
Refs #2440
Fixes #3990
Change-Id: I052cd53dc9517a3df53663e52720ee5a80ea65c0
M. Eric Irrgang [Wed, 25 Dec 2019 15:55:34 +0000 (18:55 +0300)]
Simplify GitLab CI Dockerfiles.
Consolidate some docker build instructions into distinct images for
the base dependencies, the various toolchains, and the docs build
environment. Combine Dockerfiles that only differ in toolchain version.
Total image size is prioritized over total build time by making all
apt-get layers include update, install, and cleaning in single RUN
commands, where intermediate layers are part of the tagged images.
Made images both for clang and gcc builds of the documentation.
Refs #3263
Change-Id: I55d6a128067f78214193223756db94a1964c491d
David van der Spoel [Wed, 12 Feb 2020 13:53:33 +0000 (14:53 +0100)]
Fixed bug in orires code that was checking too strict.
Fixes #3375
Change-Id: I0f64b386477b9a72f18c95fd977ac8cf5dbeeccd
David van der Spoel [Wed, 12 Feb 2020 13:53:33 +0000 (14:53 +0100)]
Fixed bug in orires code that was checking too strict.
Added one test to see that input is accepted.
Fixes #3375
Change-Id: I0f64b386477b9a72f18c95fd977ac8cf5dbeeccd
David van der Spoel [Mon, 17 Feb 2020 15:22:52 +0000 (16:22 +0100)]
Fixed typo in GMXRC.csh.cmakein
A bashism crept into a csh file.
Refs #3381.
Change-Id: I2f11e027db2804ee850f93a2d18de8ad427abc8e
Szilárd Páll [Fri, 14 Feb 2020 18:12:27 +0000 (19:12 +0100)]
Fix gpuudpate and gpucomm matrix docs
Improves the outdated documentation/description of the matrices
clarifying the use/role of these.
Also removed gpubufferops matrix which is not needed in the release
branch (the feature is automatically triggered when required by some
other features).
Change-Id: I097e1d6b150767a95b9d638b3c6031a24ece995f
Pascal Merz [Thu, 13 Feb 2020 02:37:57 +0000 (19:37 -0700)]
Expand test coverage of exact continuation tests
The exact continuation tests were not covering the new
Parrinello-Rahman functionality of modular simulator, nor the
berendsen-berendsen NPT case using md-vv. This change fixes this.
Fixes #3377 (fixes point 4, last task on the list)
Change-Id: I3bcd072969259383dd1812d425dd7b3baee5bd85
Pascal Merz [Thu, 13 Feb 2020 02:32:36 +0000 (19:32 -0700)]
Fix reading of checkpoints with Parrinello-Rahman (modular simulator)
Using modular simulator, simulations using Parrinello-Rahman barostat
could not be read from checkpoint, throwing an error in the checkpoint
loading routine. While the legacy implementation of the P-R barostat
required the pressure at the previous step to be checkpointed, the
modular implementation does not require this. load_checkpoint is,
however, expecting this field to be present and throws an error.
This change fixes this by setting the globalState flags in dependence
of whether the modular simulator will be used, avoiding read_checkpoint
to expect this entry.
Note that tests ensuring this bug not to reappear are introduced in the
child change I3bcd0729.
Refs #3377 (fixes point 3)
Change-Id: If8afd294b8c79ceef66e71293d9d93cf2f7d0df8
Pascal Merz [Thu, 13 Feb 2020 02:09:13 +0000 (19:09 -0700)]
Fix Parrinello-Rahman scaling on initial step (modular simulator)
If Parrinello-Rahman scaling was requested on the first step, it was
not properly initialized. The setup routine would have correctly
(although non-obviously so) calculated the scaling matrix, but have
requested the propagator to use the scaling one step too late.
For new simulations, this never happens (since scaling happens on the
second step, not the first). It could, however, lead to slight
errors if restarting from a checkpoint occured exactly on a scaling
step. As restarting from Parrinello-Rahman simulations using modular
simulator was broken anyway, we can be sure that this has never
happened in practice.
This change fixes the bug, adds explanations of what happens on the
initial step, and makes the function calls more explicit (at the cost
of a very small amount of code duplication).
Refs #3377 (fixes point 2)
Change-Id: Ic3ba7ba078260a9d039d506fc0a87353f80d23dd
Pascal Merz [Wed, 12 Feb 2020 23:58:57 +0000 (16:58 -0700)]
Move modular simulator decision before checkpoint loading
Currently, the decision on whether to use modular simulator is done
relatively late during the runner stage. This makes it impossible to
allow for different behavior at checkpoint loading time. The current
change therefore moves this decision before checkpoint loading time.
To achieve this, some adaptations were needed:
* Use gmx_mtop_interaction_count to determine whether virtual sites
will be used before the respective object is created.
* The membrane embedding check via pointer is replaced by a boolean
set earlier during the runner phase.
* The essential dynamics check was split to catch command line inputs
during the runner phase, and mismatching checkpointing data during
the simulator phase (mirroring legacy behavior in do_md()).
* Replace the ensemble restraint check by a low-level alternative
for the early runner call (mimicking the distance restraint
initialization), while keeping the current check for the
simulator-level call. Note that as multi sims are disabled, this
low-level test will effectively never fail, but the additional
clarity is helpful in further development. The later test ensures
that changes to the init_disres() don't make this check invalid -
if they would ever get out of sync, the simulations would exit with
a fatal error.
Refs #3377 (fixes point 1)
Change-Id: I635e033db51d6ecc8bf121c72730a121e04586dd
Pascal Merz [Tue, 11 Feb 2020 01:08:17 +0000 (18:08 -0700)]
Fix checkNumberOfBondedInteractions bug
When checkNumberOfBondedInteractions finds a missing interaction, the
program is not exiting because a function enclosed in a logging statement
starts a global reduction, but is only ever reached by master.
Fixes #3373
Change-Id: I9a0faa790595a7ea59db561a20246a76857435a1
Pascal Merz [Wed, 12 Feb 2020 22:33:39 +0000 (15:33 -0700)]
Expose vsite counting
This allows to check whether vsites are present before the
respective object is created.
Refs #3377 (prepares point 1)
Change-Id: I8273daf38d46e2f052573f48323b5b6137965e9f
Szilárd Páll [Mon, 10 Feb 2020 18:30:22 +0000 (19:30 +0100)]
Fix incorrect GPU update task assignment fallback
This change fixes the incorrect fallback condition in the GPU update
task assignment. This also eliminates the assertion trigerred in do_md()
where the correct form of the check is asserted on.
Since the fallback path only triggers when the GPU update would be used by
default this only affected runs with GMX_FORCE_UPDATE_DEFAULT_GPU.
Change-Id: I8b2b506fa998b6ed5e6d6d8ae4b78e27006df199
Szilárd Páll [Fri, 24 Jan 2020 13:14:53 +0000 (14:14 +0100)]
Avoid dev flags in triggering gpuupdate nightly matrix
The GPU update release feature should be tested independenly from the
experimental features which were all enabled for the "gpuupdate" nightly
job. This change removes the GMX_GPU_DD_COMMS and GMX_GPU_PME_PP_COMMS
as well as the unnecessary buffer ops env var.
Refs #3354
Change-Id: I777f6996ca5b1ae1b3e7f787c18d82f605035e47
Szilárd Páll [Tue, 28 Jan 2020 18:24:13 +0000 (19:24 +0100)]
Avoid (re)initializing GPU update without DD
Unless repartitioning happens the GPU update-constraints module's
expensive initialization only neeeds to be called once.
Fixes #3358
Change-Id: Ic2a147985da5907961a3e3277110bbae52e6cadc
Alan Gray [Wed, 5 Feb 2020 17:18:34 +0000 (09:18 -0800)]
Bug fix to avoid passing null object into cudaDestroyTextureObject
In the initial dummy context creation sanity-check part of the
simulation, a null object is passed into this function. This can cause
runtime failures with certain versions of CUDA. This change only calls
the function when the object is non-null.
Change-Id: I8118f6086fa2227c8dc697e4634878a12fe3676f
Berk Hess [Mon, 3 Feb 2020 10:26:50 +0000 (11:26 +0100)]
Actually fix PME forces with FE without perturbed q/LJ
PME would incorrectly ignore the mesh forces on perturbed atoms when
no charges or LJ atom types were actually perturbed.
This is because the "fix" in commit
12f01f79 incorrectly changed the
lambda value used for the PME forces from the actual lambda value
to 1 instead of to 0 as it should have been.
Fixes #2640
Fixes #3359
Change-Id: Ib19565bf017ddbd2fddc66c52be0ff9efc7e707c
Berk Hess [Mon, 3 Feb 2020 10:26:50 +0000 (11:26 +0100)]
Actually fix PME forces with FE without perturbed q/LJ
PME would incorrectly ignore the mesh forces on perturbed atoms when
no charges or LJ atom types were actually perturbed.
This is because the "fix" in commit
12f01f79 incorrectly changed the
lambda value used for the PME forces from the actual lambda value
to 1 instead of to 0 as it should have been.
Fixes #2640
Fixes #3359
Change-Id: Ib19565bf017ddbd2fddc66c52be0ff9efc7e707c
Paul Bauer [Thu, 23 Jan 2020 10:11:09 +0000 (11:11 +0100)]
Workaround for Gitlab archive size
Refs #3361
Change-Id: Ie1911501ce45a67d412b60aede7335b0acd3a786
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