Andrey Alekseenko [Tue, 2 Nov 2021 12:20:21 +0000 (13:20 +0100)]
SYCL: Use acc.bind(cgh) instead of cgh.require(acc)
A few other minor changes to SYCL version of DeviceBuffer.
This is a prerequisite for adding support for USM.
Refs #3847, #3965.
Mark Abraham [Tue, 2 Nov 2021 12:05:00 +0000 (13:05 +0100)]
Echo the path to and version of CMake for CI builds
This will help devs understand and reproduce problems, as well as
confirm that the intentions of the test configurations are honored.
Replaced one use of "cmake" with "$CMAKE" to standardize
Berk Hess [Tue, 2 Nov 2021 08:26:31 +0000 (08:26 +0000)]
Add second LINCS atom update task
Mark Abraham [Mon, 1 Nov 2021 07:58:18 +0000 (08:58 +0100)]
Add missing MPI_Barrier to MpiTest
Fixes #4261
Eliane Briand [Mon, 1 Nov 2021 13:42:21 +0000 (13:42 +0000)]
Add DSSP v4 support to do_dssp
Szilárd Páll [Mon, 1 Nov 2021 13:23:44 +0000 (13:23 +0000)]
Fix hipSYCL build with CUDA target
Andrey Alekseenko [Fri, 29 Oct 2021 14:10:14 +0000 (16:10 +0200)]
Silence clang-tidy warnings
Andrey Alekseenko [Wed, 27 Oct 2021 13:28:55 +0000 (15:28 +0200)]
Set up event consumption counter in DomDecMpiTests
Also:
- Add a comment about the barrier introduced in
5d43901b (MR !2109).
- Use DeviceStream::synchronize instead of marking an event and
immediately waiting for it.
Refs #3988, #4156.
Magnus Lundborg [Fri, 29 Oct 2021 18:36:42 +0000 (18:36 +0000)]
Allow TNG to TNG file conversion without time per frame info
Alan Gray [Fri, 29 Oct 2021 18:06:10 +0000 (18:06 +0000)]
Simplify GPU force reduction conditionals
Berk Hess [Fri, 29 Oct 2021 14:50:28 +0000 (14:50 +0000)]
Reimplement constant acceleration groups
Mark Abraham [Fri, 29 Oct 2021 11:44:45 +0000 (11:44 +0000)]
Generalize constraints on MPI rank counts for tests
When the number of ranks is unsuitable the test is skipped.
In some cases minor changes are made so that useful tests run on wider ranges of rank counts.
Closes #3785
Berk Hess [Thu, 28 Oct 2021 13:50:39 +0000 (13:50 +0000)]
Document and clean up do_numbering()
Berk Hess [Wed, 27 Oct 2021 14:48:55 +0000 (16:48 +0200)]
Update copyright year for tests/grompp.cpp
Andrey Alekseenko [Wed, 27 Oct 2021 14:16:47 +0000 (16:16 +0200)]
Disable GPU buffer ops when using MTS
Workaround for #4254
Berk Hess [Wed, 27 Oct 2021 14:42:33 +0000 (16:42 +0200)]
Add Oliver Fleetwood as a contributor
Szilárd Páll [Tue, 26 Oct 2021 21:52:34 +0000 (23:52 +0200)]
Unify coordinate copy handling across GPU platforms
Instead of handling the OpenCL host to device copy as a special case
where this operation is issued in the PME stream, as the "Update" stream
is anyway created unconditionally it makes sense to simplify codepaths
at the negligible cost of an extra GPU-side synchronization.
This allows unifying the coordinate handling in stateGpu as well as in
PME spread (with combined PP+PME) which removes some complexity and makes
it easier to reason about event consumption, reducing the need for balancing
workarounds.
The change also introduces a data member in StatePropagatorDataGpu to
indicate whether it is use on a separate PME rank, case in which marking
of the coordinate H2D event can be skipped as no event dependency is
required.
Refs #3988
Oliver Fleetwood [Wed, 27 Oct 2021 14:37:29 +0000 (14:37 +0000)]
Add preprocessing and integration test for transformation coordinate
We have general checks for preprocessing in readir.cpp. This ensures that all relevant mdp options are validated properly.
The mathematical expression, however, is evaluated in the grompp integration test.
Then we have the mdrun integration test, which is based on the existing pull test for
a 3D umbrealla potential. Basically, we use the exact same setup and expect the same output, but apply the force on a transformation coordinate instead of a regular coordinate, only with a slightly lower numerical accuracy.
M. Eric Irrgang [Mon, 25 Oct 2021 15:39:58 +0000 (18:39 +0300)]
Use CMake project versioning convention.
* Set CMP0048 policy to NEW behavior.
* Set MAJOR and MINOR version in the main project() command. Update
`cmake/gmxVersionInfo.cmake` to set from PROJECT_VERSION_MAJOR and
PROJECT_VERSION_MINOR.
Fixes #3725
M. Eric Irrgang [Fri, 22 Oct 2021 10:35:40 +0000 (13:35 +0300)]
Mark gmxapi 0.3b1.
Joe Jordan [Wed, 27 Oct 2021 10:15:13 +0000 (10:15 +0000)]
Fix norm calculation in gmx_spatial
Casting early to a double should avoid underflow in later multiplication.
An assert that the norm is non-negative is added.
Fixes #4184
Paul Bauer [Tue, 26 Oct 2021 18:45:42 +0000 (20:45 +0200)]
Fix link for dssp download
The old link was outdated (got a mail complaining about it).
Joe Jordan [Wed, 27 Oct 2021 08:44:31 +0000 (08:44 +0000)]
Throw on failure in gmx_file_rename
Kevin Boyd [Tue, 26 Oct 2021 18:13:12 +0000 (18:13 +0000)]
Add -maxtau option to gmx msd
ejjordan [Tue, 26 Oct 2021 14:38:47 +0000 (16:38 +0200)]
Document clang11 in developer docs
Instead of the no longer used clang7.
Fixes #4173
Mark Abraham [Tue, 26 Oct 2021 15:00:26 +0000 (15:00 +0000)]
Remove short-circuit logic for OpenMP setup
This is only called once during mdrun setup, and it is not a problem
to call it multiple times. (Thread safety is assured separately.)
It's necessary to call it multiple times, e.g. from test binaries or
API-driven simulations.
Having removed the short-circuit logic, there was no use for the
member variable that recorded whether initialization had taken place,
so it is removed.
Closes #4152
Joe Jordan [Tue, 26 Oct 2021 14:35:09 +0000 (14:35 +0000)]
Use correct c0 parameter in Me2PO4 in OPLSAA
Fixes #4075
ejjordan [Tue, 26 Oct 2021 13:42:20 +0000 (15:42 +0200)]
Add parser tests dependency to tests
This is necessary for make check to work properly.
Fixes #4233
Alan Gray [Wed, 22 Sep 2021 14:51:07 +0000 (07:51 -0700)]
Insert barrier after each GPU halo test
Artem Zhmurov [Tue, 26 Oct 2021 07:31:14 +0000 (10:31 +0300)]
Fix the cobined bending-torsion potential entry in reference manual
1. The k_phi was referenced with wrong key
2. Only k_phi has units, so they should not be at the end of the line
Introduced in
b08db8bb4c46e76e067ce09a2e8d43390e445575
Mark Abraham [Tue, 26 Oct 2021 03:01:07 +0000 (05:01 +0200)]
Minor improvements to gmx wham output
Mark Abraham [Tue, 26 Oct 2021 08:51:59 +0000 (08:51 +0000)]
Remove/replace many mentions of Jenkins
Joe Jordan [Tue, 26 Oct 2021 07:08:57 +0000 (07:08 +0000)]
Add missing parameter to dihedral docs
Andrey Alekseenko [Sat, 23 Oct 2021 11:20:34 +0000 (13:20 +0200)]
Silence Clang's constant-logical-operand warning
Roland Schulz [Sun, 24 Oct 2021 23:40:00 +0000 (16:40 -0700)]
Fix #3300
Kevin Boyd [Sun, 24 Oct 2021 23:40:40 +0000 (16:40 -0700)]
Update release notes for gmx msd and clear some TODOs
Fixes #3869
Andrey Alekseenko [Thu, 21 Oct 2021 14:20:38 +0000 (16:20 +0200)]
Get rid of sycl::buffer::reinterpret
It is not fully supported with hipSYCL, and, while it does work in
practice, we better avoid it.
Refs #4063
Mark Abraham [Fri, 22 Oct 2021 09:26:18 +0000 (11:26 +0200)]
Add utility dependency to libmdrun_test_infrastructure
This provides the correct MPI dependency, otherwise MPI_Barrier is not
necessarily found when linking targets that depend on this one.
Fixes #4232
Mark Abraham [Fri, 22 Oct 2021 08:24:26 +0000 (10:24 +0200)]
Make linker errors fail the CI builds
Andrey Alekseenko [Thu, 7 Oct 2021 10:30:22 +0000 (12:30 +0200)]
Activate GPU update support in SYCL build
Set proper flags and conditionals when deciding GPU workload.
Refs #3929, #3930, #3932.
Mark Abraham [Fri, 22 Oct 2021 05:37:14 +0000 (07:37 +0200)]
Fix cuda clang-tidy issues
ejjordan [Thu, 21 Oct 2021 21:21:41 +0000 (23:21 +0200)]
Improve doxygen in some nblib listed forces files
This adds doxygen to some functions and makes the
documentation more consistent in some cases.
Also some functions are changed from being marked
[[maybe_unused]] to not having parameter values in
cases where that is possible.
Magnus Lundborg [Thu, 21 Oct 2021 20:14:50 +0000 (22:14 +0200)]
Avoid comparing Simd types to real 0 when making masks in NB FEP kernel.
Refs #4230
ejjordan [Fri, 22 Oct 2021 04:13:06 +0000 (06:13 +0200)]
Fix nblib pairlist update function
Previously the function put_atoms_in_box was called only by the
nblib integrator, or when constructing a system via a SimulationState
object. In the case of the integrator, this is a needless performance
degradation. When using an nb force calculator without
first putting atoms in the box, this could lead to a cryptic
error from nbnxm grid search failure. Both of these issues are
rectified with this change, which also adds a member to the
non-bonded force calculator to hold the requested number of OMP
threads to use in a call to put_atoms_in_box_omp, which is faster
than the non OMP version.
Sebastian Kehl [Thu, 21 Oct 2021 15:24:49 +0000 (17:24 +0200)]
Fix use of simd-masks in gapsys softcore.
Don't rely on bools to be implicitly cast to the correct BoolType
mask but enforce this more explicitly.
Dmitry Morozov [Thu, 21 Oct 2021 18:55:47 +0000 (18:55 +0000)]
Added pkg-config detection of libcp2k #3172
Andrey Alekseenko [Tue, 19 Oct 2021 16:34:43 +0000 (18:34 +0200)]
Balance event consumption for GPU update code path
- Explicit consumption of events when needed.
- In some cases, reset the event in case the conditionals
for the consumption are too complex.
- Added helper functions to StatePropagatorDataGpu.
- A special handling for force reduction when it has no atoms.
Refs #3988, #4106, #4227.
Mark Abraham [Thu, 21 Oct 2021 17:09:33 +0000 (17:09 +0000)]
Support clang 13 in CI
Magnus Lundborg [Thu, 21 Oct 2021 09:02:41 +0000 (11:02 +0200)]
Minor code clean-up in the NB FEP kernel.
Joe Jordan [Thu, 21 Oct 2021 14:19:32 +0000 (14:19 +0000)]
Expand signatures for nblib listed forces calculator
Magnus Lundborg [Thu, 21 Oct 2021 08:49:50 +0000 (10:49 +0200)]
Improve variable naming in NB FEP kernel for loop.
Fixes one task in #2875.
Berk Hess [Thu, 21 Oct 2021 11:50:37 +0000 (11:50 +0000)]
Add lambda state to dhdl.xvg with AWH fep
Andrey Alekseenko [Thu, 21 Oct 2021 10:46:05 +0000 (10:46 +0000)]
Unify a bit decideWhetherToUseGpusForPme* functions
M. Eric Irrgang [Mon, 18 Oct 2021 12:33:06 +0000 (15:33 +0300)]
Rearrange docker build script.
Disambiguate build layer dependencies, now that Docker build
automatically parallelizes multi-stage builds when possible. This change
clarifies which layers are reused and which are unique. This minimizes
overall CPU time for fresh builds, but more importantly ensures that
components from separates stages are not subject to race conditions in
the resolution of dependencies that are satisfied through package
managers. It should also improve maintainability by reducing duplicated
logic.
Joe Jordan [Thu, 21 Oct 2021 10:06:09 +0000 (10:06 +0000)]
Add helper functions for setting up Nbnxm gpu object in nblib
M. Eric Irrgang [Thu, 21 Oct 2021 09:32:44 +0000 (09:32 +0000)]
Improve detection of sphinx-build.
Prioritize the sphinx-build associated with the current Python
interpreter, or as indicated by the user through the SPHINX_DIR
environment variable.
Mitigates problems with multiple Python installations and `autodoc`, or
where the Python installation is hinted to CMake but is not on the PATH.
Fixes #4224
Mark Abraham [Thu, 21 Oct 2021 09:11:40 +0000 (09:11 +0000)]
Refactor PME tests for better usability
Now there is a human-understandable name for the tests, and (where
possible) the input for each test is declarative rather than
procedural.
Berk Hess [Thu, 21 Oct 2021 08:51:00 +0000 (08:51 +0000)]
Improve AWH bias sharing documentation
M. Eric Irrgang [Thu, 21 Oct 2021 08:19:21 +0000 (08:19 +0000)]
Clean up some gmxapi sources and tests.
Andrey Alekseenko [Wed, 20 Oct 2021 20:27:11 +0000 (20:27 +0000)]
Update CI containers to oneAPI 2021.4.0
Andrey Alekseenko [Wed, 20 Oct 2021 13:06:53 +0000 (15:06 +0200)]
Fix compiler warnings with OpenCL + oneAPI 2021.4
M. Eric Irrgang [Wed, 20 Oct 2021 09:28:18 +0000 (09:28 +0000)]
Minor clean-up to docker build script.
* Apply PEP-8 formatting.
* Update some docstrings and type hints.
* Improve robustness w.r.t. `_distro`.
* Note that every call to `baseimage` updates the global
config (hpccm 21.9.0 at the time of this change).
Roland Schulz [Tue, 19 Oct 2021 22:38:22 +0000 (22:38 +0000)]
Fix warnings with Intel 2021.4
M. Eric Irrgang [Tue, 19 Oct 2021 15:25:43 +0000 (15:25 +0000)]
Pre-install Python dependencies in CI Docker images.
Add `pybind11` and `wheel` to the (scripted) Docker image builds so that
the admin/ci-scripts/build-and-test-py-gmxapi-0.3.sh script can use
`--no-deps --no-index` with pip.
Remove `pip install pybind11` where it is no longer needed in CI jobs.
Follow-up to #4092.
Andrey Alekseenko [Mon, 18 Oct 2021 16:06:49 +0000 (18:06 +0200)]
Fix SYCL PME Solve kernel
- Avoid infinite recursion in sycl_2020::isfinite.
- Make one of the accessors optional.
Unknown [Tue, 19 Oct 2021 11:26:03 +0000 (13:26 +0200)]
Resolve UBSAN error in NBLIB test
Mark Abraham [Tue, 19 Oct 2021 06:25:24 +0000 (08:25 +0200)]
Another clang-tidy fix for new GPU code
Andrey Alekseenko [Tue, 19 Oct 2021 09:40:50 +0000 (11:40 +0200)]
Fix harmless Sphinx warning
Andrey Alekseenko [Mon, 18 Oct 2021 14:31:36 +0000 (16:31 +0200)]
Merge release-2021 into master
Brings the following fixes from the release branch into master:
- #4148 (!1941)
- #4167 (!1966)
- #4190 (!2050)
- !2039
Andrey Alekseenko [Mon, 18 Oct 2021 10:27:43 +0000 (12:27 +0200)]
Enable kernel compiler cache for SYCL DPC++
Refs #4218
Andrey Alekseenko [Mon, 18 Oct 2021 13:16:49 +0000 (13:16 +0000)]
Fix UB when generating local indices for constraints
Mark Abraham [Fri, 15 Oct 2021 07:48:56 +0000 (09:48 +0200)]
Fix clang-tidy error in new GPU code
Andrey Alekseenko [Fri, 15 Oct 2021 14:26:04 +0000 (16:26 +0200)]
Disable PME Mixed mode with FEP
Refs #4190
M. Eric Irrgang [Fri, 15 Oct 2021 14:26:35 +0000 (14:26 +0000)]
Require pybind 2.6 from environment for gmxapi Python package extension module.
Andrey Alekseenko [Fri, 15 Oct 2021 09:49:07 +0000 (09:49 +0000)]
Resolve "SYCL + DPCPP cmake config fails in gmxManageFFTLibraries.cmake"
Mark Abraham [Fri, 15 Oct 2021 07:40:10 +0000 (09:40 +0200)]
Make failure to find CUDA-aware MPI work correctly.
Previously, a wrong error about non-matching quote was issued, even
though the overall behavior was correct
Alan Gray [Thu, 14 Oct 2021 13:29:40 +0000 (13:29 +0000)]
Pipeline GPU PME Spline/Spread with PP Comms
Andrey Alekseenko [Wed, 13 Oct 2021 17:30:13 +0000 (19:30 +0200)]
Improve stability of ContinuationIsExact tests
The default nstlist value in tests is set to 8. This is appropriate for
NormalIntegrators/MdrunNoAppendContinuationIsExact tests, which do the
restart after 8 steps, so the "full" trajectory and the "restarted"
trajectory update their lists at the same time. However, pairlist tuning
often increases the nstlist value, which might affect the "full" run.
Here, we force the nstlist to be half the nsteps for the "full" run by
setting it via CLI option.
Berk Hess [Wed, 13 Oct 2021 19:43:53 +0000 (19:43 +0000)]
Made gromacs work again without MPI
Made the communication functions in network.h that do nothing with a
single rank also work without MPI and thread-MPI. One conditional
in mdrunner() needed to be fixed.
Andrey Alekseenko [Mon, 11 Oct 2021 15:32:54 +0000 (17:32 +0200)]
Fix fft/CMakeLists when compiling with hipSYCL
GMX_GPU_HIPSYCL is never defined, and thus evaluates to false.
The code was compiling just fine, but the tests were failing in
runtime with "symbol lookup error".
Mark Abraham [Wed, 13 Oct 2021 16:06:54 +0000 (16:06 +0000)]
Implement PME solve in SYCL
Refs #3965
M. Eric Irrgang [Wed, 13 Oct 2021 14:42:03 +0000 (17:42 +0300)]
Fix typos regarding FindPython3 CMake module hint.
`_ROOT` is a standard suffix for hints to `find_package()`,
but the `FindPython3` cmake module specifically uses `_ROOT_DIR` for
an analogous hint.
Andrey Alekseenko [Mon, 11 Oct 2021 14:41:28 +0000 (16:41 +0200)]
Fix clang-tidy complaints
- False-positives after "if constexpr".
- "empty()" instead of "size() > 0".
- "auto *" instead of "auto".
Andrey Alekseenko [Tue, 12 Oct 2021 12:55:37 +0000 (14:55 +0200)]
Stop timers in GpuForceReduction with no atoms
The early return, as implemented earlier, was happening after starting
the timers. Now we properly stop them.
The large "if" was used here instead of just moving the "return" up in
order to accomodate future manual event handling (see Issue #3988 and MR
!2015).
Thanks to Artem Zhmurov for noticing the problem.
M. Eric Irrgang [Mon, 11 Oct 2021 11:44:03 +0000 (14:44 +0300)]
Fix typo in code comment.
M. Eric Irrgang [Mon, 11 Oct 2021 10:18:22 +0000 (13:18 +0300)]
Remove broken CMake option from python_packaging Dockerfile.
Mitigate #4208 by removing `-DGMX_REQUIRE_VALID_TOOLCHAIN=TRUE`.
Refs #4208
Alan Gray [Mon, 11 Oct 2021 12:42:49 +0000 (12:42 +0000)]
Bug fix for irregular replex steps with GPU update
Berk Hess [Thu, 7 Oct 2021 20:46:29 +0000 (22:46 +0200)]
Fix issues in AWH BiasSharing test
Recent commit
bbcd5f1 introduced two issues in the new test
for the BiasSharing class which sometimes led to failures,
in particular with the TSAN build.
Andrey Alekseenko [Sat, 9 Oct 2021 19:07:24 +0000 (21:07 +0200)]
Reduce noise in CI logs from the "for" loop
Bash "-x" option reports every iteration of the loop. While we can unset
it temporarily, we can get rid of the loop altogether and user find's
built-in capabilities. It will also be more robust w.r.t. "bad"
filenames.
Follow-up of MR !2008.
M. Eric Irrgang [Mon, 11 Oct 2021 09:31:02 +0000 (09:31 +0000)]
Normalize API tests.
Make the gmxapi tests look more like the other tests.
* Consistently use the test fixture based on the MDRun test fixture.
* Move gmxapi tests to the `api/` directory now that the infrastructure allows for the move. Establishes consistency with the nblib file locations.
M. Eric Irrgang [Mon, 11 Oct 2021 09:01:10 +0000 (09:01 +0000)]
More robust preparation for MPI tests.
M. Eric Irrgang [Sun, 10 Oct 2021 00:01:49 +0000 (00:01 +0000)]
Satisfy nblib dependencies with updated library targets.
Fixes #2027
Andrey Alekseenko [Thu, 7 Oct 2021 14:02:38 +0000 (16:02 +0200)]
SYCL: Reduce local memory usage of LINCS kernel
Similar to the CUDA code, we can reuse the local memory buffer.
Closes #4202.
M. Eric Irrgang [Fri, 8 Oct 2021 11:38:37 +0000 (14:38 +0300)]
Normalize testutils use in `api/` directory.
Move the testutils boiler plate up one level from
`api/nblib/CMakeLists.txt` to `api/CMakeLists.txt` so that the whole
directory tree can use the same configuration without duplication.
Sebastian Kehl [Fri, 8 Oct 2021 15:26:07 +0000 (15:26 +0000)]
Adapt testcases for gapsys softcore
Joe Jordan [Fri, 8 Oct 2021 14:22:08 +0000 (14:22 +0000)]
Add nblib tpr reading
Mark Abraham [Fri, 8 Oct 2021 12:26:34 +0000 (12:26 +0000)]
First 2022 beta release
M. Eric Irrgang [Fri, 8 Oct 2021 10:05:22 +0000 (13:05 +0300)]
Add missing `#include`.
Joe Jordan [Thu, 7 Oct 2021 07:35:17 +0000 (07:35 +0000)]
Introduce nblib nonbonded force calculator impl class
Pascal Merz [Wed, 6 Oct 2021 21:37:46 +0000 (21:37 +0000)]
Implement pull for modular simulator