Artem Zhmurov [Thu, 22 Oct 2020 13:39:03 +0000 (16:39 +0300)]
Introduce intermediate variable so that compiler will not complain
Some compilers complain about the shift being larger than the shifted
variable, even though it is never executed in this case. This introduces
an intermediate shift variable that is explicitely set to zero in this case.
Issue #3752.
Paul Bauer [Thu, 22 Oct 2020 14:34:23 +0000 (14:34 +0000)]
Fix static linking with MSVC
The C and CXX flags are now properly propagated to allow static linking.
Also fixed unrelated issue with Intel where settings didn't propagate
correctly.
Artem Zhmurov [Thu, 22 Oct 2020 08:13:42 +0000 (11:13 +0300)]
Fix formatting of the authors list
Previously defined length of 18 chars per name was not enough for
some of us and the authors list become poorly aligned. This changes
the format to have only three authors per line, thus allowing for
up to 26 characters per name. And we are hiring!
Mark Abraham [Thu, 22 Oct 2020 13:09:30 +0000 (15:09 +0200)]
Compile host code with c++14 where needed
CUDA doesn't support C++17 compilation before 10.2
Szilárd Páll [Thu, 22 Oct 2020 09:02:58 +0000 (09:02 +0000)]
Add missing GPU force reduction cycle counting
Launch timing was missing in the GPU reduction refactoring added in
257d80. This change adds back the cycle counting reducing the time
leaking into the rest timer.
Andrey Alekseenko [Thu, 22 Oct 2020 06:49:25 +0000 (06:49 +0000)]
TrajectoryElement: initialize and rename logWritingStep_
Mark Abraham [Wed, 21 Oct 2020 12:45:57 +0000 (14:45 +0200)]
Suppress warnings from clang with nvcc more widely
The original fix wasn't applied widely enough, probably because of
caching of compiler flags when I tested more recent CUDA versions.
This now fixes the issue of !644 more widely.
Szilárd Páll [Tue, 20 Oct 2020 22:41:59 +0000 (00:41 +0200)]
Add missing cycle counting for GPU halo exchange calls
Calls lesft un-timed that were leaking into the "Rest" timer are now
accounted for.
Mark Abraham [Wed, 21 Oct 2020 08:50:33 +0000 (10:50 +0200)]
Fix C++ language flag propagation to nvcc
Without this, the host code is compiled with the default language
level of the compiler, which varies by compiler and version. GROMACS
should specify the version being targeted.
This mostly reverts commit
33c239bee76444e82184c0c5685a543b8b141535.
Fixes #3749
Paul Bauer [Wed, 21 Oct 2020 13:15:03 +0000 (13:15 +0000)]
Only build nblib tests when requested
Was missing a check for GMX_DEVELOPER_BUILD being set.
Fixes #3739
Change-Id: I27d2b174cca8b16a1aa54c6a78c75cdd458d590d
Andrey Alekseenko [Wed, 21 Oct 2020 10:39:15 +0000 (12:39 +0200)]
Revert "densityfit: Fix inconsistent use of iterators"
This reverts commit
a96e538b04cf6ff1e983d62fa58fb6150ab0c97f.
Andrey Alekseenko [Tue, 20 Oct 2020 16:19:34 +0000 (18:19 +0200)]
densityfit: Fix inconsistent use of iterators
and some typos
While both referenceDensity_ and referenceDensity are views into the
same data, it's clearer to use the same variable for both begin()
and end().
M. Eric Irrgang [Tue, 20 Oct 2020 12:25:58 +0000 (14:25 +0200)]
Update gmxapi version details.
The bump from gmxapi 0.1 to 0.2 was overlooked for the C++ API.
Currently, the Python bindings require C++ API version 0.2,
but this requirement can probably be relaxed before the final version
of the 0.2 Python package.
Paul Bauer [Tue, 20 Oct 2020 14:50:31 +0000 (16:50 +0200)]
Merge branch 'origin/release-2020' into merge-release-2020
Szilárd Páll [Tue, 20 Oct 2020 14:42:50 +0000 (14:42 +0000)]
Allow gcc-9 on Power 9
Previous restriction ended up blacklisting gcc 9 and later whereas the
intent was to only do so for version 10 and later. Worked around the
version comparison quirk (and lack of >= operator).
Refs #3380
Change-Id: If9f45fe77459c3d873eab3856126f1653efe8cdb
Paul Bauer [Tue, 20 Oct 2020 14:09:51 +0000 (14:09 +0000)]
Update CI rules for release-2021
Changes rules to target release-2021 branch instead of master.
Update regressiontest download branch.
Paul Bauer [Tue, 20 Oct 2020 09:57:41 +0000 (09:57 +0000)]
GROMACS 2021 first beta release
Needs branch from master in a follow-up
Change-Id: Ic8a26bd11d07278bc048023597ecfef602b4feb6
Paul Bauer [Tue, 20 Oct 2020 07:15:59 +0000 (09:15 +0200)]
Revert "GROMACS 2021 first beta release"
This reverts commit
6e84b715331a92750bdb2c697e6d810262a5ffb5.
Version string is not correct.
Paul Bauer [Tue, 20 Oct 2020 06:41:02 +0000 (06:41 +0000)]
GROMACS 2021 first beta release
Needs branch from master in a follow-up
Change-Id: Iae03d2228dc5ce8380dfb491ee11b6aff81d9796
Paul Bauer [Mon, 19 Oct 2020 15:07:02 +0000 (15:07 +0000)]
Add release highlights
Change-Id: I08d3f93dc28a8bc18ce193ccfcf781ed6e19ee80
Paul Bauer [Mon, 19 Oct 2020 08:49:38 +0000 (10:49 +0200)]
Revert "Add muparser and CMake handling"
This reverts commit
b06ac54659006d4071564c18f7abcc17d359e9c4.
Not needed as we won't have the dependent code in yet.
Change-Id: If4a7a29e3288d1ab5e0716862a636be6a1fb8d9a
Andrey Alekseenko [Fri, 16 Oct 2020 14:16:04 +0000 (16:16 +0200)]
Fix random doxygen warnings and typos
Silence annoying
"/builds/gromacs/gromacs/src/gromacs/math/vectypes.h:87: error:
gmx::BasicVector: is in library file(s), but appears in public
documentation" from source-check pipeline (appears to be false-positive
due to a forward-declaration in a random file). I was not able to come
up with a quick fix for the underlying problem in check-source, and,
from my understanding, there are plans for refactoring it soon anyway;
so I went with a suppression here.
Fix a bunch of random typos throughout the code.
Fix some unbalanced Doxygen's \{ and \}. And one widowed @}.
Fix some \copydocs (not all).
Remove a nasty non-breakable-space that was messing up block
indentation in Sphinx docs.
Erik Lindahl [Sat, 17 Oct 2020 17:14:18 +0000 (19:14 +0200)]
New Twitter-based quote
Alan Gray [Mon, 19 Oct 2020 11:46:37 +0000 (11:46 +0000)]
Halo exchange unit test for pre-existing CPU codepath
The test sets up a 2D rank topology and performs a coordinate halo
exchange (using the pre-existing CPU codepath), with 2 pulses in
the first dimension and 1 pulse in the second. Each pulse involves
a few non-contiguous indices. The sending rank, atom number and
spatial 3D index are encoded in the x values, to allow correctness
checking following the halo exchange. Follow-up will port to GPU codepath.
Paul Bauer [Sun, 18 Oct 2020 10:55:14 +0000 (10:55 +0000)]
Enable MSVC and MacOSX testing on Github
Adds files needed to test basic builds using MSVC and MacOSX on Github
using Github actions. The setup has been used with slight modifications
from the example here:
https://cristianadam.eu/
20191222/using-github-actions-with-c-plus-plus-and-cmake/
Change-Id: I4f42017b2747d55e01a00f971b140089da5d970c
Magnus Lundborg [Thu, 15 Oct 2020 10:17:03 +0000 (12:17 +0200)]
When loading AWH user data do not convolve the bias along FEP dims.
Fixes: #3736.
Alan Gray [Fri, 16 Oct 2020 11:15:41 +0000 (11:15 +0000)]
Fix for force copy dependency of GPU force reduction
Fixes issue #3729
Mark Abraham [Fri, 16 Oct 2020 07:24:56 +0000 (07:24 +0000)]
Fixes for clang 11
Keeps the build free of warnings about the missing commas
that affected the word spacing in the docs.
Andrey Alekseenko [Wed, 14 Oct 2020 15:27:41 +0000 (17:27 +0200)]
Increase tolerances for NBlibTest.SpcMethanolForcesAreCorrect test
Andrey Alekseenko [Wed, 14 Oct 2020 16:06:25 +0000 (16:06 +0000)]
Add static constexpr members to naming style guide
Resolves #3733.
Mark Abraham [Fri, 9 Oct 2020 15:54:30 +0000 (17:54 +0200)]
Fix compilation with MSVC
Mark Abraham [Wed, 14 Oct 2020 12:51:47 +0000 (14:51 +0200)]
Fix string interpolation error
Otherwise the interpolation will overrun the buffer
Mark Abraham [Wed, 14 Oct 2020 09:58:25 +0000 (09:58 +0000)]
Fix bonded tests
These were not robust enough to pass everywhere (e.g. release
builds). They probably still are not, but fixing that needs more work
than we can do now. A key part of this is that acos implementations
differ, leading to different bond angles being computed, which leads
to different rounding error in accumulating forces and shift forces.
The latter now use different tolerances, because often we compute a shift
force that is zero, modulo rounding error.
Updated required version for reference build type to gcc 7.
Used namespaces better in bonded tests
Added some GoogleTest pretty-printers to see better what was going on.
Added useful strings describing bonded kernel flavors so test failures
had more context.
Used coordinates for butane in tests so that numerical instability was
less of a problem.
Avoided an unnecessary include of vectypes.h and testasserts.h
Andrey Alekseenko [Wed, 14 Oct 2020 08:45:57 +0000 (08:45 +0000)]
Revert "CUDA nightly fail: Dirty hack"
This reverts commit
c8b6d3b269730ad613b1810aa255e05395d7e8fe.
Paul Bauer [Tue, 13 Oct 2020 12:35:54 +0000 (12:35 +0000)]
Fix missing copyright and release notes
Change-Id: I23153cd393ca8f40bda16871ff25d3285c7fe2ed
Joe Jordan [Tue, 13 Oct 2020 12:35:33 +0000 (12:35 +0000)]
Fix segfault in pull reading
Triggers asserton now later on :(
Change-Id: I08a390de653e8bbdf23288ed8a28b6dc7ad6305d
Christian Blau [Tue, 13 Oct 2020 07:48:57 +0000 (09:48 +0200)]
Add missing header in shake to fix mac clang compilation
Missing <cstdlib> fails compilation due to usage of qsort
on mac.
Closes #3730
Paul Bauer [Tue, 13 Oct 2020 07:32:55 +0000 (07:32 +0000)]
Do not validate build for external source management
If git was not found for builds not coming from a tarball,
the source validation script would generate warnings due to the missing
reference checksum file.
Refs #2128
Change-Id: I7a0d0c164e19eb47446b26a039442b57e537375b
Gilles Gouaillardet [Mon, 12 Oct 2020 14:52:23 +0000 (14:52 +0000)]
Fix nblib flags
add a missing call to gmx_target_compile_options() in CMakeLists.txt
Artem Zhmurov [Mon, 12 Oct 2020 08:50:01 +0000 (08:50 +0000)]
Fix the seeding of PRNG when it is used instead of RG
Use the timer value to seed PRNG, also switch to MT generator.
Szilárd Páll [Fri, 9 Oct 2020 16:32:31 +0000 (18:32 +0200)]
Fix NBLIB CMake error message
The recommended CMake syntax was missing the 'D' prefix.
Andrey Alekseenko [Fri, 9 Oct 2020 11:29:39 +0000 (13:29 +0200)]
api/nblib/tests/integrator.cpp: Minor changes
- Move integrator.integrate call out of for(atoms) loop, so it is run
once per timestep. We have only one atom, so it was not an actual error,
but was a bit illogical.
- Make starting conditions for the integrator a bit more diverse, as
suggested by Paul Bauer.
Artem Zhmurov [Fri, 9 Oct 2020 15:08:45 +0000 (15:08 +0000)]
Cool quote picking can freeze when hardware random number generation is not working
The bug with hardware random number generation can cause picking of cool quotes to
freeze in an infinite loop on some Ryzen systems. This patch checks the system for
the bug and falls back to PRNGs.
Andrey Alekseenko [Fri, 9 Oct 2020 14:23:34 +0000 (14:23 +0000)]
Try to fix the nightly clang-tidy-9 build
It appears that some of the `#ifdef __clang_analyzer__` patches in
gtest/gmock are now messing up with clang-tidy.
Probably related to https://reviews.llvm.org/D46325?
Here, we remove some of these special handlings of clang-analyzer, and
add a couple of more gentle NOLINT's. Since apparently we already had
patches in our copy of googletest, I don't feel bad about it.
Appears to work fine locally with clang-tidy-9.
Berk Hess [Fri, 9 Oct 2020 13:19:10 +0000 (15:19 +0200)]
Add MTS support for pull and AWH
Also adds a test for pulling with MTS.
Christian Blau [Fri, 9 Oct 2020 12:40:44 +0000 (12:40 +0000)]
Remove dysfunctional QMMM interface pt5
Removing string entries in .mdp files.
Change-Id: Ic2e0c7f78c9b89b6ecef74e7e862d66fa40d423c
Paul Bauer [Fri, 9 Oct 2020 08:10:51 +0000 (10:10 +0200)]
Remove under the hood editing of pdb files
The routines in pdbio.cpp would change atom names for hydrogens
without explicit user consent. This could lead to problems interpreting
NMR files. In addition from a software design point of view, reading
and writing data to files is not the same as interpreting it.
Fixes #3649
Change-Id: Id68c39700bfe56800e9e5dd135bc8b98ada77e8b
Magnus Lundborg [Mon, 21 Sep 2020 10:02:18 +0000 (12:02 +0200)]
AWH: Remove random term from FEP tests
Test if it is the random numbers that are making tests fail on
some builds.
Fixes: #3660
Change-Id: I3e189d7770f0089ac5d74128e096461c5b55f44f
M. Eric Irrgang [Thu, 8 Oct 2020 17:47:33 +0000 (17:47 +0000)]
Clarify the GMX_BUILD_MDRUN_ONLY full testing instructions.
For full testing of an MDRUN_ONLY installation, the documentation
suggests installing over a non MDRUN_ONLY installation. This change
attempts to clarify the use case and normalize the important aspects
of the CMake command lines.
Fixes #3723
Andrey Alekseenko [Thu, 8 Oct 2020 11:14:07 +0000 (13:14 +0200)]
NBlibTest/IntegratorWorks: Initialize x's and v's
The coordinates and velocities of the test atom were left uninitialized.
This, on my machine, occasionally caused NbLibIntegratorTests to
timeout, getting stuck indefinitely inside `put_atoms_in_box` function.
Andrey Alekseenko [Thu, 8 Oct 2020 10:20:57 +0000 (10:20 +0000)]
Add explicit types to NB kernel type enums
So these enums could be used in template parameters
Andrey Alekseenko [Wed, 7 Oct 2020 12:54:22 +0000 (14:54 +0200)]
Set CUDA hardware constants for CC 7.5, 8.6
The devices from CC 7.5 and 8.6 have lower limits on # of threads/blocks
per SM compare to all other CC 5.x+ architectures.
Source: CUDA Occupancy Calculator,
https://docs.nvidia.com/cuda/cuda-occupancy-calculator/CUDA_Occupancy_Calculator.xls,
accessed 2020-10-07.
Andrey Alekseenko [Thu, 8 Oct 2020 09:24:09 +0000 (09:24 +0000)]
Device management: Add SYCL GpuEventSynchronizer
Andrey Alekseenko [Thu, 8 Oct 2020 08:51:36 +0000 (08:51 +0000)]
Activate SYCL build on CI
Artem Zhmurov [Wed, 7 Oct 2020 20:47:38 +0000 (23:47 +0300)]
Add Andrey Alekseenko to the list of authors
Andrey Alekseenko [Thu, 1 Oct 2020 14:54:38 +0000 (16:54 +0200)]
Add GpuRegionTimer for SYCL
Erik Lindahl [Wed, 7 Oct 2020 13:49:36 +0000 (15:49 +0200)]
New release, new quotes!
Paul Bauer [Wed, 7 Oct 2020 15:32:21 +0000 (15:32 +0000)]
Fix excessive hackblock warning output
Used the wrong string comparison when checking if entries are equal in
the hackblock and rtp entries.
Fixes #3722
Change-Id: I6fecf2746a16a1694232b2c0d15c810dc0d67ec2
Mark Abraham [Wed, 7 Oct 2020 13:51:06 +0000 (13:51 +0000)]
Update to oneAPI beta09
M. Eric Irrgang [Wed, 7 Oct 2020 13:28:58 +0000 (13:28 +0000)]
Improve gmxPythonDiscovery.cmake
* Do a better job of urging CMake 3.15+ to use the requested Python
installation when a user specifies Python3_ROOT_DIR.
* Adopt another CMake 3.15 feature: Python3_FIND_VIRTUALENV is much more
readable than the older alternatives.
* Allow FindPython inputs to be set before entering the module (such as
with `-D` command line arguments) by checking before setting.
* Clarify which parts of this CMake module apply to the main FindPython
based detection and which parts exist to provide hints to other
embedded / downstream detection.
Refs #3720
Andrey Alekseenko [Tue, 6 Oct 2020 16:36:35 +0000 (18:36 +0200)]
Make LeapFrogGpu less tied to CUDA
- Extract common parts of LeapFrogGpu from .cuh into .h
- Make it use DeviceBuffers instead of raw pointers. For CUDA build,
they are the same, so no changes to other parts of the code necessary.
Paul Bauer [Tue, 6 Oct 2020 14:32:27 +0000 (16:32 +0200)]
Fix download location for regressiontests
Was still pointing to gerrit instead of the ftp server.
Change-Id: Ia49f06dd1438f6484470ea93ee93f4b26c708fb5
Andrey Alekseenko [Wed, 7 Oct 2020 09:38:35 +0000 (09:38 +0000)]
mdlib/tests/leapfrog: Make GPU tests more platform-agnostic
In preparation for adding SYCL implementation.
Also, clean-up includes a bit.
Paul Bauer [Tue, 6 Oct 2020 17:23:49 +0000 (19:23 +0200)]
Fix SYCL compilation
Would fail because device_management_common.cpp needed to include
gmxsycl.h transiently and fail compilation.
Change-Id: Idd19db8c328b3a9bd07924f72968a640158665d6
Paul Bauer [Wed, 7 Oct 2020 06:55:19 +0000 (08:55 +0200)]
Merge branch 'origin/release-2020' into merge-release-2020-into-master
Resolved Conflicts:
admin/gitlab-ci/archive.gitlab-ci.yml
admin/gitlab-ci/global.gitlab-ci.yml
admin/gitlab-ci/gromacs.gitlab-ci.yml
admin/gitlab-ci/lint.gitlab-ci.yml
admin/gitlab-ci/python-gmxapi.gitlab-ci.yml
admin/gitlab-ci/rules.gitlab-ci.yml
admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml
cmake/gmxVersionInfo.cmake
src/gromacs/fileio/checkpoint.cpp
src/gromacs/hardware/printhardware.cpp
src/gromacs/mdlib/md_support.cpp
src/gromacs/mdlib/trajectory_writing.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/modularsimulator/domdechelper.cpp
src/gromacs/modularsimulator/domdechelper.h
src/gromacs/modularsimulator/freeenergyperturbationelement.cpp
src/gromacs/modularsimulator/freeenergyperturbationelement.h
src/gromacs/modularsimulator/modularsimulator.cpp
src/gromacs/tools/trjcat.cpp
src/gromacs/topology/topology.h
src/gromacs/utility/fatalerror.cpp
src/gromacs/utility/futil.cpp
src/gromacs/utility/init.cpp
src/programs/mdrun/tests/CMakeLists.txt
tests/CMakeLists.txt
Change-Id: Icd5d9c78ff2cfb0598c3cb55b057487ca098a1f0
Artem Zhmurov [Tue, 6 Oct 2020 19:02:21 +0000 (22:02 +0300)]
Remove unused canComputeOnGpu(...) function from device management
This function was used in tests, but not needed anymore
Paul Bauer [Tue, 6 Oct 2020 15:08:18 +0000 (15:08 +0000)]
Set proper deviceVendor with SYCL
Change-Id: I7971f681b8e4348f2488b4d353ee187cfa5dba0b
Artem Zhmurov [Tue, 6 Oct 2020 12:15:54 +0000 (14:15 +0200)]
Simplify GPU usage decision function signatures
Some of GPU device usage decisions are made based on the number
of availabel GPU devices, not on their indices. Hence it is
natural to pass one integer instead of the vector.
Paul Bauer [Fri, 2 Oct 2020 09:32:41 +0000 (11:32 +0200)]
Prepare for GROMACS 2020.5
Reset DOI strings. Added new release note stubs.
Change-Id: I40615b30bc42b8d7e79bcbe6154d002412519abf
Paul Bauer [Tue, 6 Oct 2020 11:23:18 +0000 (11:23 +0000)]
GROMACS version 2020.4
Updated regtest hash and set DOI strings.
Change-Id: I42e99173615898b963c86b0a1db3770c5f071051
Andrey Alekseenko [Mon, 5 Oct 2020 10:03:45 +0000 (12:03 +0200)]
Fix logic in init_ewald_coulomb_force_table
Previously, destroyParamLookupTable was called only if buffer was
nullptr (uninitialized). Which looks like a typo, and leads to nothing,
because all implementation of destroyParamLookupTable would refuse to
work on nullptr. Changed the check to free the buffer only if there is
anything to free.
Artem Zhmurov [Tue, 6 Oct 2020 09:37:49 +0000 (11:37 +0200)]
Use new GPU infrastructure in MDLib tests
This make use of common device testing infrastructure in MDLib tests,
where both GPU and CPU implementations are tested. The GPU runners
will now be executed on all the detected devices, not only on the
default one. Also, this will allow to use the MDLib tests in OpenCL
and SYCL, where proper device context object is needed.
Closes #3317
Closes #2254
Related #2092
Paul Bauer [Mon, 5 Oct 2020 15:33:02 +0000 (15:33 +0000)]
Always set DeviceVendor
Until now, only the OpenCL code would set the device Vendor information.
To prepare for later code that always needs this information, it is not
set also for the CUDA and SYCL code paths with (hopefully) reasonable
default values.
Change-Id: Ifb3180dff2c5b13aedd8e6808c172ea322d5cea8
Paul Bauer [Mon, 5 Oct 2020 14:45:54 +0000 (14:45 +0000)]
Fix debug message location
Also more release note fixes.
Change-Id: Id107ec9102f49dda0ba6c83a591fa14ae9b72c29
Paul Bauer [Mon, 5 Oct 2020 07:48:03 +0000 (09:48 +0200)]
Add muparser and CMake handling
Adds handling both for linking external muparser library and building
from source if it is not found.
Refs #3515
Change-Id: I09f725ea634d21e3a7d217cf99d28adb71d54473
Berk Hess [Mon, 5 Oct 2020 13:26:41 +0000 (15:26 +0200)]
Remove incorrect cycle suppression
Paul Bauer [Mon, 5 Oct 2020 06:35:30 +0000 (08:35 +0200)]
Fix doxygen warnings
Failed in master again for a while.
Change-Id: I8574794c8e2f9be5681e431c109df6fe91abce45
M. Eric Irrgang [Fri, 2 Oct 2020 16:41:01 +0000 (19:41 +0300)]
Don't override user provided CMAKE_OSX_DEPLOYMENT_TARGET.
Remove `FORCE` from the CMake `set()` in case users want to specify
another target, such as 10.15.
Allows users to resolve potential linker warnings by setting
CMAKE_OSX_DEPLOYMENT_TARGET on the CMake command line.
Pascal Merz [Mon, 5 Oct 2020 06:08:10 +0000 (06:08 +0000)]
Fix ForceBuffers compiler warning
When compiling in release mode (using clang-8), warning
src/gromacs/mdtypes/forcebuffers.h:128:10: warning: private field 'useForceMtsCombined_' is not used [-Wunused-private-field]
bool useForceMtsCombined_;
would be thrown because `useForceMtsCombined_` is only used within
`GMX_ASSERT` commands. Added a [[maybe_unused]] to keep compiler happy.
Mark Abraham [Fri, 2 Oct 2020 15:44:59 +0000 (15:44 +0000)]
Cleaned up CUDA compilation
Some .cpp source files used CUDA run-time headers that need
special handling when e.g. clang issues warnings from antiquated
constructs in older NVIDIA runtime headers. This is now handled
centrally in a similar manner to that required for SYCL compilation.
Dependency of the higher-level taskassignment module on GPU
API-specific compilation was removed, instead deploying some new
helper functions.
Paul Bauer [Fri, 2 Oct 2020 14:40:50 +0000 (14:40 +0000)]
Work-around for RDRAND returning -1 on Ryzen
Due to a bug, RDRAND can always return -1 instead of a random number.
This introduces a work-around to the problem by switching to PRNG in
case the RDRAND returns -1 twice in a row.
M. Eric Irrgang [Wed, 30 Sep 2020 20:32:20 +0000 (23:32 +0300)]
Handle gmxapi tmpi parameters better.
Use gmxconfig.json to support some additional testing support.
Configure thread allocation for gmxapi CI jobs more carefully.
Fixes #3710
M. Eric Irrgang [Wed, 30 Sep 2020 20:29:24 +0000 (23:29 +0300)]
Let gmxapi installation record the GROMACS library MPI configuration.
Add a `MPI` property to the Gromacs::gmxapi CMake target.
Add "gmx_mpi_type" to gmxconfig.json
Refs #2961
Paul Bauer [Fri, 2 Oct 2020 07:03:02 +0000 (09:03 +0200)]
Remove anonymous namespace in ARM SVE header
Caused complaints from clang-tidy.
Change-Id: I8c855fa26849a283a456b1315614cdc60041bbf0
Joe Jordan [Fri, 2 Oct 2020 10:23:04 +0000 (10:23 +0000)]
Add tests for setStringEntry
Mark Abraham [Fri, 2 Oct 2020 09:28:19 +0000 (09:28 +0000)]
Update GoogleTest to v1.8.1
Now known to work with recent versions of MSVC
Also, require proper language support when using GoogleTest on all
platforms. Populating the INTERFACE_COMPILE_DEFINITIONS with
GTEST_LANG_CXX11 will force GoogleTest to require the compiler to
provide std components like tuple even when compiling GROMACS
source files that include GoogleTest headers.
Fixes #3682
Christian Blau [Fri, 2 Oct 2020 07:50:52 +0000 (07:50 +0000)]
Fix FEP lambda interpolation for reruns
FEP lambda interpolation fix is now also applied when re-running simulations.
Closes #3585
Alan Gray [Fri, 2 Oct 2020 07:02:31 +0000 (07:02 +0000)]
Use workload data structures for GPU halo exchange triggers
Move GPU halo exchange trigger booleans and related conditionals into
workload data structures, and remove unnecessary assertion on GPU
buffer ops being active (since it is now automatically activated when
GPU halo exchange is active).
Partly addresses #3370
Gilles Gouaillardet [Fri, 2 Oct 2020 01:48:17 +0000 (10:48 +0900)]
arm_sve: fix decr3Hsimd()
Fix a gross typo introduced in gromacs/gromacs@
aabf8460e42c1702f38163d4163b6e59f6712737
Szilárd Páll [Thu, 1 Oct 2020 12:02:25 +0000 (12:02 +0000)]
Update mdrun-performance.rst
Gilles Gouaillardet [Wed, 16 Sep 2020 09:23:28 +0000 (18:23 +0900)]
docs: add ARM+SVE support to the release notes and SIMD support documentation
Gilles Gouaillardet [Wed, 16 Sep 2020 05:32:23 +0000 (14:32 +0900)]
hardware: detect ARM SVE architecture at runtime
- issue a warning if the application was built with NEON simd support
- check the vector length at runtime is the same than at cmake time,
and aborts otherwise
Gilles Gouaillardet [Wed, 16 Sep 2020 05:31:55 +0000 (14:31 +0900)]
cmake: use simd support for ARM+SVE
- detect when cmake is invoked on an ARM+SVE platform
- ARM_SVE simd can be forced with -DGMX_SIMD=ARM_SVE
- the SVE vector length can be forced with -DGMX_SIMD_ARM_SVE_LENGTH=<bits>
(default is 512)
Gilles Gouaillardet [Wed, 16 Sep 2020 05:24:47 +0000 (14:24 +0900)]
simd: add support for aarch64+sve (ARM_SVE)
support SVE vectors whose length is fixed at cmake time
e.g. no Vector Length Agnostic (VLA) support.
This is currently a fit for GCC 10 compilers
(via the -msve-vector-bits=<len> option), and will be supported
by LLVM 12 (based) compilers.
ARM_SVE support for GROMACS is contributed by the Research Organization
for Science Information and Technology (RIST).
Gilles Gouaillardet [Thu, 1 Oct 2020 21:11:39 +0000 (21:11 +0000)]
simd: revamp the (templated) decr3Hsimd() subroutine
decr3Hsimd<stride>(m, a0, a1, a2) replaces three decrHsimd():
- decrHsimd(m, a0);
- decrHsimd(m + stride, a1);
- decrHsimd(m + 2*stride, a2);
providing a given architecture the opportunity to perform additional optimizations.
A simple wrapper is added to each architecture where
GMX_SIMD_HAVE_HSIMD_UTIL_{FLOAT,DOUBLE} is 1.
Refs !567
Andrey Alekseenko [Thu, 1 Oct 2020 20:10:36 +0000 (20:10 +0000)]
Remove ensureReferenceCount from OpenCL's GpuEventSynchronizer
M. Eric Irrgang [Thu, 1 Oct 2020 15:43:15 +0000 (15:43 +0000)]
Use updated images for Python CI jobs.
Also switches tool chains to account for rearrangement in the
CI testing matrix.
Fixes #3714
Artem Zhmurov [Thu, 1 Oct 2020 13:55:00 +0000 (15:55 +0200)]
Add missing include into the tests comparison helper
CLang may complain about not knowing what std::numeric_limits are
if <limits> is not included.
Change-Id: I74118c3f0082e22f634ae11bce542a0de709260b
Paul Bauer [Thu, 1 Oct 2020 11:50:30 +0000 (13:50 +0200)]
Break up MPI tests
Split PME from other mpi tests.
Due to time outs in CI :(
Change-Id: If9c9219ab6667ae98a9475ee03012d9aa81b28d4
Paul Bauer [Thu, 1 Oct 2020 12:12:24 +0000 (14:12 +0200)]
Fix post merge acceptance pipeline for release-2020
The logic didn't want to pick up the pipelines for merged commits.
Change-Id: I876d7ce975611bcc5466e5e984ed40de72a456ca