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
Andrey Alekseenko [Wed, 6 Oct 2021 10:20:23 +0000 (12:20 +0200)]
Fix misc-misplaced-const and unused-parameter warnings
The problems were introduced in
bbcd5f1 (MR !536).
As MPI_Comm is typedef'd as a pointer to a structure, declaring it const
would be of little use: the pointer itself would be const, not the data
it is pointing to.
Artem Zhmurov [Wed, 6 Oct 2021 16:54:32 +0000 (16:54 +0000)]
Add constraints test with multiple molecules
In the GPU code, there is a complex logic of splitting constraints
over the thread blocks so that no coupled constraints land in
different thread blocks. To test this logic, we need the system with
more atoms than the size of the thread block. This adds such a system
to the unit test. Three atom molecule is taken as a base system since
the number of threads in a block is usually a power of 2, hence not
a multiple of 3.
M. Eric Irrgang [Wed, 6 Oct 2021 16:03:56 +0000 (16:03 +0000)]
Begin moving `script` boiler plate from YAML to shell scripts.
Closes #4194
Andrey Alekseenko [Wed, 6 Oct 2021 14:06:15 +0000 (16:06 +0200)]
Fix SYCL LINCS kernel
Andrey Alekseenko [Wed, 6 Oct 2021 13:28:45 +0000 (13:28 +0000)]
SYCL: Add missing barrier to NBNXM energy reduction
Mark Abraham [Wed, 6 Oct 2021 11:13:18 +0000 (11:13 +0000)]
Don't require g++ for clang to compile
Artem Zhmurov [Tue, 5 Oct 2021 15:24:29 +0000 (18:24 +0300)]
Add missing synchronization calls in CUDA version of LINCS
In CUDA, the same shared memory buffer is used to store different
intermediate values. To avoid overwriting these values prematurely,
extra blocking synchronizations are needed in the GPU kernel.
This bug was not exposed neither by regression tests nor by unit tests
because it was affecting values rarely and the deviation were within
tolerances.
Alan Gray [Wed, 6 Oct 2021 09:26:43 +0000 (09:26 +0000)]
Rework GPU halo and state propagator streams and dependencies to get better overlap
Berk Hess [Tue, 5 Oct 2021 15:34:58 +0000 (15:34 +0000)]
Make AWH bias sharing more flexible
Sebastian Kehl [Fri, 1 Oct 2021 17:45:44 +0000 (19:45 +0200)]
Clang-format.
Sebastian Kehl [Fri, 1 Oct 2021 17:41:55 +0000 (19:41 +0200)]
More sc-gapsys templates plus fix unused warnigs.
Sebastian Kehl [Fri, 1 Oct 2021 13:48:39 +0000 (15:48 +0200)]
Fix typo introduced during rebase.
Sebastian Kehl [Fri, 1 Oct 2021 12:22:21 +0000 (14:22 +0200)]
Template sc-gapsys functions on computeForces.
Sebastian Kehl [Wed, 29 Sep 2021 12:24:53 +0000 (14:24 +0200)]
Uncapitalize sc-gapsys parameters in input.
Sebastian Kehl [Wed, 29 Sep 2021 11:44:33 +0000 (13:44 +0200)]
Update documentation with changed sc-gapsys parameter names.
Sebastian Kehl [Wed, 29 Sep 2021 09:21:25 +0000 (11:21 +0200)]
Rename sc-sigma-LJ-gapsys to sc-gapsys-sigma-LJ.
Sebastian Kehl [Wed, 29 Sep 2021 08:49:41 +0000 (10:49 +0200)]
Rename sc-scale-X-gapsys to sc-gapsys-scale-X.
Sebastian Kehl [Wed, 29 Sep 2021 06:43:00 +0000 (08:43 +0200)]
Guard for epsfac equals zero in sc-gapsys.
Sebastian Kehl [Mon, 27 Sep 2021 14:54:37 +0000 (16:54 +0200)]
Fix webpage.
Sebastian Kehl [Mon, 27 Sep 2021 14:20:06 +0000 (16:20 +0200)]
Add release notes.
Sebastian Kehl [Mon, 27 Sep 2021 13:28:45 +0000 (15:28 +0200)]
Fix random fpe errors by proper initialization.
Sebastian Kehl [Mon, 27 Sep 2021 06:44:10 +0000 (08:44 +0200)]
Clang-format.
Sebastian Kehl [Mon, 27 Sep 2021 06:28:44 +0000 (08:28 +0200)]
Fix some more double literals.
Sebastian Kehl [Fri, 24 Sep 2021 20:54:20 +0000 (22:54 +0200)]
Update user-guide and reference manual.
Sebastian Kehl [Fri, 24 Sep 2021 16:14:14 +0000 (18:14 +0200)]
Fix port of gapsys-LJ to simd.
Sebastian Kehl [Fri, 24 Sep 2021 12:59:32 +0000 (14:59 +0200)]
Fix range checks for new parameters.
Sebastian Kehl [Fri, 24 Sep 2021 09:49:24 +0000 (11:49 +0200)]
Fix sign in 14-interactions with sc-gapsys.
Sebastian Kehl [Thu, 23 Sep 2021 13:31:11 +0000 (15:31 +0200)]
Introduce explicit parameters for gapsys-sc.
Sebastian Kehl [Wed, 22 Sep 2021 13:54:48 +0000 (15:54 +0200)]
Remove SoftcoreType::None.
Sebastian Kehl [Tue, 21 Sep 2021 11:29:36 +0000 (13:29 +0200)]
Swap position of sc-function in readir.
Sebastian Kehl [Mon, 20 Sep 2021 15:00:57 +0000 (17:00 +0200)]
Reverse order of conditions.
Sebastian Kehl [Mon, 20 Sep 2021 14:57:41 +0000 (16:57 +0200)]
Fix use of literals.
Sebastian Kehl [Mon, 20 Sep 2021 11:28:47 +0000 (13:28 +0200)]
Remove changes to the test cases.
Sebastian Kehl [Mon, 16 Nov 2020 09:27:47 +0000 (10:27 +0100)]
Add gapsys softcore function.
Change nonbonded fep-kernel to allow to use both, standard
beutler function as well as new gapsys function. Add new
input name to choose one of these.
Gaurav Garg [Tue, 5 Oct 2021 10:40:53 +0000 (10:40 +0000)]
Fix force reduction dependencies with process-MPI and PP-PME on same rank
Force reduction dependency on PME force computation was not being set in case of process-MPI when PP and PME are on same rank.
Refs: #4189
Dmitry Morozov [Tue, 5 Oct 2021 08:23:00 +0000 (08:23 +0000)]
QMMM description and release notes update
Berk Hess [Mon, 4 Oct 2021 20:29:01 +0000 (20:29 +0000)]
Add transformation pull coord mdp examples
Berk Hess [Mon, 4 Oct 2021 09:58:33 +0000 (11:58 +0200)]
Improve transformation coordinate expression checks
Change exceptions for transformation expression evaluation from
"internal bug" to "user input inconsistency", as these with throw
with incorrect or inconsistent user input.
Added explicit check for quotes, as that might confuse users.