alexxy/gromacs.git
2 years agoRemove MPI comm from GPU PME-PP force transfer initiation
Alan Gray [Sun, 1 Aug 2021 08:24:19 +0000 (08:24 +0000)]
Remove MPI comm from GPU PME-PP force transfer initiation

2 years agoOnly define GMX_SYCL_DPCPP macro in SYLC builds
Szilárd Páll [Fri, 30 Jul 2021 15:38:56 +0000 (17:38 +0200)]
Only define GMX_SYCL_DPCPP macro in SYLC builds

Previously the macro could get defined not only when the build was not a
hipSYCL build, but also when the build was not a SYCL build at all.

2 years agoSimplify short-circuit logic in grompp
Mark Abraham [Mon, 26 Jul 2021 08:47:19 +0000 (10:47 +0200)]
Simplify short-circuit logic in grompp

This is simpler to understand, and also prepares for a future
change that removes bB while improving performance.

2 years agoCheck nvcc accepts flags before using them
Mark Abraham [Thu, 29 Jul 2021 05:57:14 +0000 (05:57 +0000)]
Check nvcc accepts flags before using them

2 years agoOptimize grompp VDW parameter-generation allocations
Mark Abraham [Mon, 26 Jul 2021 02:50:13 +0000 (04:50 +0200)]
Optimize grompp VDW parameter-generation allocations

2 years agoRemove duplicate waiting for coordinates
Andrey Alekseenko [Mon, 26 Jul 2021 11:14:30 +0000 (11:14 +0000)]
Remove duplicate waiting for coordinates

2 years agoFix Doxygen issues introduced in 997d9e02 (MR !1783)
Andrey Alekseenko [Fri, 9 Jul 2021 21:30:19 +0000 (00:30 +0300)]
Fix Doxygen issues introduced in 997d9e02 (MR !1783)

2 years agoFix modular simulator MTTK
Pascal Merz [Mon, 28 Jun 2021 18:00:58 +0000 (14:00 -0400)]
Fix modular simulator MTTK

The modular simulator MTTK pressure coupling was slightly off due to
different reasons:
* The PV term was taken at the time of the update of the extended
  degree of freedom rather than at the time of reporting. This leads to
  slight differences when using nsttcoupling and nstpcoupling > 1.
* The NH chain coupled to the thermostat would alter the extended
  variable and hence the integral before it is reported. This NHC update
  already belongs to the next step, so shouldn't change the reported
  integral.
* The NH chain couple to the thermostat would not update the propagator
  scaling. Again, this leads to very slight differences when using
  nsttcoupling > 1.

These slight inaccuracies went undetected because they are minimal in
normal usage. To emphasize them in testing, the compressibility in the
simulator equivalence tests was strongly increased. This shows the
differences and would make the tests fail without the fixes in the
current change.

To implement these changes, the responsibility to calculate the
integral and set the scaling factor was moved from the elements to the
MTTK data structure which is accessed by all elements changing the
external degree of freedom and the box.

2 years agoAvoid passing a temporary object to emplace_back
Andrey Alekseenko [Fri, 2 Jul 2021 06:45:08 +0000 (06:45 +0000)]
Avoid passing a temporary object to emplace_back

2 years agoUse MDP database for simulator equivalence tests
Pascal Merz [Tue, 29 Jun 2021 22:00:20 +0000 (18:00 -0400)]
Use MDP database for simulator equivalence tests

Changes the simulator equivalence tests to use the additional MDP
database introduced recently. This will allow to test algorithms
requiring additional MDP parameters more cleanly.

This also changes the MDP database behavior to overwrite default
parameters. This does not change any current behavior, as in the
current usage, no parameters are defined in both the default and
the additional parameter sets. Moving forward, it's more likely
that we will want to explicitly overwrite default parameters with
the additional database rather than have parameter redefinitions
silently fail.

2 years agoTest with newer compilers in CI
Mark Abraham [Wed, 30 Jun 2021 11:14:21 +0000 (11:14 +0000)]
Test with newer compilers in CI

Now compiles with clang 12 and gcc 11 without warnings in various
configurations. Did not update santizer configurations as they're
already on clang 11.

Adjusted various CI job intents to be either accurate or placed on
more suitable configurations.

Eliminated one build container, since we target only gcc versions that
are most recent supported, oldest supported, and if needed also those
required for e.g. support of most recent and oldest supported CUDA
versions.

Code changes mostly related to false positives.

Suppresses a false-positive warning in GoogleTest

Avoids warnings about loop variables referring to temporaries. Our
usage was safe, but the warning is potentially valuable elsewhere, so
we should respect it.

Rewrote a test with idiomatic value-parametrization to avoid a warning
about a reference to a temporary

Refs #3912

2 years agoPort basic pull test to gtest framework
Berk Hess [Wed, 30 Jun 2021 10:50:18 +0000 (10:50 +0000)]
Port basic pull test to gtest framework

2 years agoFix GCC warning
Andrey Alekseenko [Wed, 30 Jun 2021 08:33:20 +0000 (11:33 +0300)]
Fix GCC warning

2 years agoMove GPU 3D FFT code to fft module
Mark Abraham [Tue, 29 Jun 2021 06:36:52 +0000 (08:36 +0200)]
Move GPU 3D FFT code to fft module

Then we can have tests of all the 3D FFT implementations together

Refs #3965

2 years agoTest gmxapi and clients through Py 3.9.
M. Eric Irrgang [Tue, 29 Jun 2021 14:36:44 +0000 (14:36 +0000)]
Test gmxapi and clients through Py 3.9.

* Begin moving to the new CI matrix config conventions.
* Clarify test intentions.
* Add testing for sample_restraint in master branch.
* Use the clang-8 build artifacts instead of gcc-10
  for faster gmxapi build.
* Adjust CMake options to get installed headers
  needed by consumers of the build artifact.

2 years agoFix python_packaging Dockerfiles.
M. Eric Irrgang [Fri, 25 Jun 2021 09:50:35 +0000 (12:50 +0300)]
Fix python_packaging Dockerfiles.

* Don't try to copy a directory that was removed in a recent commit.
* Add CMake option to install needed headers.
* Reduce image size.

2 years agoMerge branch release-2021 into master
Paul Bauer [Tue, 29 Jun 2021 07:54:40 +0000 (09:54 +0200)]
Merge branch release-2021 into master

Resolved Conflicts:
api/gmxapi/CMakeLists.txt
cmake/gmxGenerateVersionInfoWithoutGit.cmake
cmake/gmxManageClangCudaConfig.cmake
python_packaging/sample_restraint/src/cpp/CMakeLists.txt
python_packaging/src/CMakeLists.txt
python_packaging/src/gmxapi/export_system.cpp
python_packaging/src/gmxapi/version.py
python_packaging/src/setup.py
src/gromacs/applied_forces/awh/awh.cpp
src/gromacs/ewald/pme_gpu_program_impl.cu
src/gromacs/gmxana/gmx_dipoles.cpp
src/gromacs/tools/convert_tpr.cpp

2 years agoAllow gmxapi.commandline.cli to check GMXBIN.
M. Eric Irrgang [Fri, 27 Nov 2020 17:39:38 +0000 (20:39 +0300)]
Allow gmxapi.commandline.cli to check GMXBIN.

If `shutil.which` initially fails, try again using
the equivalent of `PATH=$GMXBIN`.

Refs #2961

2 years agoRevert "Enable back floating-point exceptions for SYCL build"
Andrey Alekseenko [Mon, 28 Jun 2021 07:28:53 +0000 (10:28 +0300)]
Revert "Enable back floating-point exceptions for SYCL build"

This reverts commit c502562354b1de48aa4e8e102a04d7586ce345e3.

Turns out, the FPEs are still occasionally triggered, at least for DG1.

2 years agoFix leak in copy_t_atoms
Dmitry Morozov [Tue, 29 Jun 2021 06:43:08 +0000 (06:43 +0000)]
Fix leak in copy_t_atoms

2 years agoAdd nblib virials function with test
Joe Jordan [Mon, 28 Jun 2021 09:18:17 +0000 (09:18 +0000)]
Add nblib virials function with test

2 years agoRestore gmxapi._gmxapi.add_mdmodule() Python functionality.
M. Eric Irrgang [Mon, 28 Jun 2021 07:35:36 +0000 (07:35 +0000)]
Restore gmxapi._gmxapi.add_mdmodule() Python functionality.

2 years agoDecouple PME GPU 3DFFT from PME GPU module
Mark Abraham [Sat, 26 Jun 2021 16:48:46 +0000 (16:48 +0000)]
Decouple PME GPU 3DFFT from PME GPU module

2 years agoFix wallcycle counting
Paul Bauer [Fri, 25 Jun 2021 16:09:56 +0000 (16:09 +0000)]
Fix wallcycle counting

2 years agoapply reviewer suggestions
M. Eric Irrgang [Thu, 24 Jun 2021 14:50:08 +0000 (14:50 +0000)]
apply reviewer suggestions

2 years agoDon't run full CI when stages fail.
M. Eric Irrgang [Thu, 24 Jun 2021 13:43:51 +0000 (16:43 +0300)]
Don't run full CI when stages fail.

See https://docs.gitlab.com/ee/ci/yaml/#when

Fixes #3482

2 years agoUpdate hipSYCL CI container
Mark Abraham [Thu, 24 Jun 2021 14:49:45 +0000 (14:49 +0000)]
Update hipSYCL CI container

2 years agoLet gmxapi.commandline access GROMACS installation details.
M. Eric Irrgang [Thu, 24 Jun 2021 14:15:29 +0000 (14:15 +0000)]
Let gmxapi.commandline access GROMACS installation details.

2 years agoRequire Python 3.7 for gmxapi in GROMACS 2022
M. Eric Irrgang [Thu, 24 Jun 2021 11:32:18 +0000 (11:32 +0000)]
Require Python 3.7 for gmxapi in GROMACS 2022

2 years agoIntroduce AngleInteractionType
ejjordan [Mon, 21 Jun 2021 14:34:29 +0000 (16:34 +0200)]
Introduce AngleInteractionType

This adds a template from which subsequent angle types can be generated.

2 years agoSYCL NBNXM: Use hand-crafted energy reduction
Andrey Alekseenko [Thu, 24 Jun 2021 08:43:43 +0000 (08:43 +0000)]
SYCL NBNXM: Use hand-crafted energy reduction

2 years agoEnable back floating-point exceptions for SYCL build
Andrey Alekseenko [Wed, 23 Jun 2021 19:46:05 +0000 (22:46 +0300)]
Enable back floating-point exceptions for SYCL build

Originally, they were disabled in
48fb95de1e456569deed5096924e617d511cf109 because Intel IGC compiler was
triggering them while doing JIT compilation of NBNXM kernels from the
intermediate bytecode.

Now:

- The problem was fixed in IGC 1.0.7683 (compute-runtime 21.24.20098).

- Either NBNXM kernels or the DPC++ compiler changed, and the generated
  SPIR-V code does not trigger FPEs even for earlier IGC versions.

2 years agoActivate the existing 20.04 CI containers
Mark Abraham [Tue, 22 Jun 2021 06:02:59 +0000 (06:02 +0000)]
Activate the existing 20.04 CI containers

2 years agoReworked convert-tpr runtime extension
Eliane Briand [Fri, 28 May 2021 07:11:10 +0000 (07:11 +0000)]
Reworked convert-tpr runtime extension

Fixes extension of run using -until flag.

Fixes #4056

2 years agoContinue fixing warnings with clang as host compiler
Mark Abraham [Mon, 21 Jun 2021 07:57:13 +0000 (07:57 +0000)]
Continue fixing warnings with clang as host compiler

2 years agoMinor docs fixes
Andrey Alekseenko [Fri, 18 Jun 2021 21:12:59 +0000 (00:12 +0300)]
Minor docs fixes

- Imbalanced quoting in a math formula causing incorrect rendering.
- Unnecessary escaping of an underscore in a code block.

2 years agoSpeed up grompp LJ parameter generation
Berk Hess [Fri, 18 Jun 2021 13:12:44 +0000 (13:12 +0000)]
Speed up grompp LJ parameter generation

2 years agoSuppressed -Wold-style-cast for clang as nvcc host compiler
Mark Abraham [Fri, 18 Jun 2021 04:56:39 +0000 (06:56 +0200)]
Suppressed -Wold-style-cast for clang as nvcc host compiler

Also updated some cache variable names to fit the style used for other
warning suppressions, in case we get to re-use the configure-time
result in future.

2 years agoUpdate device detection code for hipSYCL
Andrey Alekseenko [Fri, 18 Jun 2021 09:16:12 +0000 (09:16 +0000)]
Update device detection code for hipSYCL

2 years agoAllow to build and install nblib and gmxapi without GMX TESTS enabled
Alexey Shvetsov [Fri, 18 Jun 2021 09:06:58 +0000 (09:06 +0000)]
Allow to build and install nblib and gmxapi  without GMX TESTS enabled

2 years agoIntroduce ReferenceTemperatureManager
Pascal Merz [Fri, 18 Jun 2021 08:33:18 +0000 (08:33 +0000)]
Introduce ReferenceTemperatureManager

2 years agoFixed docs build
Mark Abraham [Thu, 17 Jun 2021 20:51:23 +0000 (20:51 +0000)]
Fixed docs build

2 years agoFix warnings when clang is the CUDA host compiler
Mark Abraham [Thu, 17 Jun 2021 20:19:13 +0000 (20:19 +0000)]
Fix warnings when clang is the CUDA host compiler

2 years agoFix clang-format in src/gromacs/fft/fft_mkl.cpp
Andrey Alekseenko [Thu, 17 Jun 2021 12:19:23 +0000 (15:19 +0300)]
Fix clang-format in src/gromacs/fft/fft_mkl.cpp

2 years agoSYCL: Reduce the number of atomic ops in NBNXM fShift calculation
Andrey Alekseenko [Thu, 17 Jun 2021 13:34:35 +0000 (13:34 +0000)]
SYCL: Reduce the number of atomic ops in NBNXM fShift calculation

2 years agoImprove hipSYCL GpuEventSynchronizer implementation
Andrey Alekseenko [Thu, 3 Jun 2021 13:08:47 +0000 (16:08 +0300)]
Improve hipSYCL GpuEventSynchronizer implementation

Previously, an inefficient stub was added. Here, we do proper event
tracking using the HIPSYCL_EXT_QUEUE_WAIT_LIST extension.

Since now we can have to wait on multiple events, replaced the
std::optional with std::vector.

Closes #4064

2 years agoRework -Weverything
Mark Abraham [Thu, 17 Jun 2021 07:34:08 +0000 (07:34 +0000)]
Rework -Weverything

2 years agoMake doxygen assertion more helpful
Mark Abraham [Fri, 11 Jun 2021 12:25:41 +0000 (14:25 +0200)]
Make doxygen assertion more helpful

Knowing the name of the clashing symbol helps understand where the
problem lies.

2 years agoUse doxygen properly
Mark Abraham [Wed, 16 Jun 2021 09:00:19 +0000 (11:00 +0200)]
Use doxygen properly

2 years agoRemove workaround for old clang
Paul Bauer [Fri, 11 Jun 2021 09:37:38 +0000 (11:37 +0200)]
Remove workaround for old clang

No longer needed as we require a more recent clang than version 6.

2 years agoUse 20.04 for docs build
Mark Abraham [Tue, 15 Jun 2021 14:46:41 +0000 (16:46 +0200)]
Use 20.04 for docs build

Updated image with new tex font package needed for 20.04

2 years agoImprove robustness of StopSignalClient test.
M. Eric Irrgang [Fri, 11 Jun 2021 12:30:01 +0000 (15:30 +0300)]
Improve robustness of StopSignalClient test.

A previous commit inadvertently rendered this test ineffective.

This change clarifies the test and restores its utility.
Rearranged commentary and additional assertions should help to prevent
another regression in the future.

Additionally, the two simulations run in the test have been
further decoupled.

Fixes #4076

2 years agoPrepare free energy element for external FEP state setting
Pascal Merz [Wed, 16 Jun 2021 10:14:11 +0000 (10:14 +0000)]
Prepare free energy element for external FEP state setting

2 years agoUse unique_ptr<ListedForcesGpu> in forcerec
Joe Jordan [Wed, 16 Jun 2021 09:42:22 +0000 (09:42 +0000)]
Use unique_ptr<ListedForcesGpu> in forcerec

2 years agoFix reporting of quadrupole moment
Mark Abraham [Wed, 16 Jun 2021 06:47:26 +0000 (06:47 +0000)]
Fix reporting of quadrupole moment

2 years agoUpdate interface of gmx_stats_t
Mark Abraham [Tue, 15 Jun 2021 13:10:48 +0000 (15:10 +0200)]
Update interface of gmx_stats_t

The only error code returned was one that checked that there was data
points to work with. Given our style, that makes sense to implement
with an internal assertion at the point where it is necessary, and to
throw when the user input is observed to be inconsistent (ie.
requesting statistical work without providing a valid dataset).

At least one routines always returned the error code for success,
creating complexity which is now eliminated.

Used a template to permit one routine to be implemented in two
slightly different ways.

This change helps with warning-free compilation with gcc 12 by
eliminating the assertion that was only used in debug mode. It is now
always a throw, since it makes no sense to continue to report garbage
statistics in the case being checked. Now the enum class is also no
longer useful and is eliminated.

Uncovered bug #4080 which is fixed here, and backported to
release-2021 separately.

2 years agoSupport testing CUDA-aware MPI in CI
Mark Abraham [Tue, 15 Jun 2021 12:30:38 +0000 (12:30 +0000)]
Support testing CUDA-aware MPI in CI

2 years agoRemove some NOLINT now that clang-tidy-11 is required
Mark Abraham [Tue, 15 Jun 2021 04:32:20 +0000 (06:32 +0200)]
Remove some NOLINT now that clang-tidy-11 is required

Not all NOLINT can be removed yet, as not all bugs are fixed.

2 years agoSYCL: Shorten mangled kernel name types
Andrey Alekseenko [Fri, 11 Jun 2021 22:10:54 +0000 (01:10 +0300)]
SYCL: Shorten mangled kernel name types

Because they are used, for example, in the profiler output, and long
names make it hard to read.

Before:
- _ZTSZZL18isDeviceFunctionalRKN2cl4sycl6deviceEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENK3
- _ZTSN3gmx18LeapFrogKernelNameILNS_18NumTempScaleValuesE0ELNS_19VelocityScalingTypeE0EEE
- _ZTSN5Nbnxm15NbnxmKernelNameILb0ELb1ELNS_8ElecTypeE0ELNS_7VdwTypeE1EEE
- _ZTSN5Nbnxm24NbnxmKernelPruneOnlyNameILb1EEE

After:
- _ZTS11DummyKernel
- _ZTS14LeapFrogKernelILN3gmx18NumTempScaleValuesE2ELNS0_19VelocityScalingTypeE1EE
- _ZTS11NbnxmKernelILb0ELb1ELN5Nbnxm8ElecTypeE0ELNS0_7VdwTypeE1EE
- _ZTS20NbnxmKernelPruneOnlyILb1EE

Can be shortened further by casting enums to integers in template
arguments, but not sure it will improve readability much.

2 years agoAdd createNbnxmCPU, usage, and test
Joe Jordan [Fri, 11 Jun 2021 15:01:24 +0000 (15:01 +0000)]
Add createNbnxmCPU, usage, and test

2 years agoUpdate parts of the CPU CMAP kernel
Paul Bauer [Thu, 10 Jun 2021 15:36:02 +0000 (15:36 +0000)]
Update parts of the CPU CMAP kernel

2 years agoRefactor temperature annealing
Pascal Merz [Mon, 23 Nov 2020 03:30:00 +0000 (20:30 -0700)]
Refactor temperature annealing

This refactors temperature annealing by dividing it into two subfunctions,
one which returns a new temperature, keeping the inputrec constant and
being independent of the Update object, and one which updates the inputrec
and the Update object.

This separation allows most of the code to be reused by modular simulator,
and it is also a first step towards a design which does not need to modify
the input record (#3854)

Refs #3417, #3854

2 years agoAllow elements to schedule pre-step and post-step functions
Pascal Merz [Thu, 3 Dec 2020 07:05:54 +0000 (00:05 -0700)]
Allow elements to schedule pre-step and post-step functions

Pre-step and post-step functions allow elements to perform operations
which need to happen before any of the integration step functions run,
or after all integration step functions have run. Unlike the main
integration step scheduling, whose order is defined by the order of the
elements in the integration algorithm, the functions are not guaranteed
to run in a specific order, only before / after the integration step.

One example this is useful for is the pull code, which needs to print
some output once all external pull providers (currently only AWH) have
run. Having a post-step function allows for an easy way for the pull
element to run during the integration run, but defer printout until
after the step.

Refs #3417, #3435, #3436

2 years agoRemove some unused-but-set variables
Andrey Alekseenko [Wed, 9 Jun 2021 19:40:38 +0000 (22:40 +0300)]
Remove some unused-but-set variables

Detected by the -Wunused-but-set-variable option in the
open-source IntelLLVM (and, in theory, upstream Clang trunk).

There are also false-positive warnings there, so the
compilation log is noisy.
I'm not doing any silencing here, since it will, hopefully, change by
the time of Clang 13 release.
But the variables removed here appear to be genuinely unused.

2 years agoBump hipSYCL version in the CI container
Andrey Alekseenko [Wed, 9 Jun 2021 16:05:57 +0000 (16:05 +0000)]
Bump hipSYCL version in the CI container

2 years agoUse [..] instead of at(..) in LINCS GPU data management code
Artem Zhmurov [Wed, 9 Jun 2021 13:26:45 +0000 (16:26 +0300)]
Use [..] instead of at(..) in LINCS GPU data management code

The .at(..) was used to make sure that the indices are within bonds
while the code is not thoroughly tested. Now it can be replaced with
direct access [..] for performance reasons.

2 years agoMove nbnxm setup responsibility to its own files and add tests
Joe Jordan [Wed, 9 Jun 2021 14:04:20 +0000 (14:04 +0000)]
Move nbnxm setup responsibility to its own files and add tests

2 years agoCompute reference indices in GPU LINCS upon data preparation
Artem Zhmurov [Tue, 8 Jun 2021 11:48:22 +0000 (14:48 +0300)]
Compute reference indices in GPU LINCS upon data preparation

The reference indices are used to map into shared memory location.
The start of the block is then subtracted from the index in map
to get the location in shared memory that should be used. This can
be done when the structure is populated to reduce the amount of
computations in the GPU kernel.

Refs #3350

2 years agoExpose and test getVdwKernelType
Joe Jordan [Wed, 9 Jun 2021 11:19:25 +0000 (11:19 +0000)]
Expose and test getVdwKernelType

2 years agoAdd .clang-tidy file for nbnxn tests
Paul Bauer [Wed, 9 Jun 2021 08:22:49 +0000 (08:22 +0000)]
Add .clang-tidy file for nbnxn tests

2 years agoExtend nblib listed pbc holder and template kernels
Joe Jordan [Wed, 9 Jun 2021 07:56:18 +0000 (07:56 +0000)]
Extend nblib listed pbc holder and template kernels

2 years agoPrepare simulated annealing refactoring
Pascal Merz [Tue, 8 Jun 2021 16:59:02 +0000 (10:59 -0600)]
Prepare simulated annealing refactoring

Prepare simulated annealing refactoring by moving variable declarations
to where they are first used, rename a non-descriptive integer `i`, use
a const reference to the inputrec where possible, replace a gmx_fatal
by an assert, and replace a switch / case construct by an if / else.

This is pure refactoring, no change in functionality, but will make
follow-up changes significantly easier to review.

2 years agoCoulombKernelType enum, lookup function, and tests
Joe Jordan [Tue, 8 Jun 2021 17:36:18 +0000 (17:36 +0000)]
CoulombKernelType enum, lookup function, and tests

2 years agoUnify FEP period setting
Pascal Merz [Tue, 8 Jun 2021 15:31:59 +0000 (15:31 +0000)]
Unify FEP period setting

2 years agoWork around hipSYCL buffer reinterpret error
Szilárd Páll [Tue, 8 Jun 2021 14:40:14 +0000 (14:40 +0000)]
Work around hipSYCL buffer reinterpret error

2 years agoRemove gmxapi roadmap.rst and acceptance tests.
M. Eric Irrgang [Tue, 8 Jun 2021 11:29:02 +0000 (14:29 +0300)]
Remove gmxapi roadmap.rst and acceptance tests.

This document and the supporting tests are out-of-date and unused for
project planning, as far as I can tell.

Resolves #3706

2 years agoFix clang-tidy complaints
Andrey Alekseenko [Tue, 8 Jun 2021 12:19:05 +0000 (15:19 +0300)]
Fix clang-tidy complaints

Introduced in 6cd214d6 (MR !1591)

2 years agoAllow selection of rocm version to install
Paul Bauer [Tue, 8 Jun 2021 09:38:34 +0000 (09:38 +0000)]
Allow selection of rocm version to install

2 years agoUnite the post-DD-partition update of the local topology
Mark Abraham [Mon, 7 Jun 2021 13:35:19 +0000 (15:35 +0200)]
Unite the post-DD-partition update of the local topology

Also simplify and clarify the implementation of doSorting

Removed ilsortFE_UNSORTED now that it is unused

Refs #4004

2 years agoAdd hasPerturbedChargeIn14Interaction to atomInfo bits
Mark Abraham [Mon, 7 Jun 2021 23:37:24 +0000 (23:37 +0000)]
Add hasPerturbedChargeIn14Interaction to atomInfo bits

2 years agoIntroduce Trotter decomposition / MTTK for modular simulator
Pascal Merz [Mon, 7 Jun 2021 21:07:27 +0000 (21:07 +0000)]
Introduce Trotter decomposition / MTTK for modular simulator

2 years agoUse enum class for checkpoint version
Paul Bauer [Mon, 7 Jun 2021 19:06:42 +0000 (19:06 +0000)]
Use enum class for checkpoint version

2 years agoMake LocalTopologyChecker class and hide implementation details
Mark Abraham [Tue, 1 Jun 2021 09:51:58 +0000 (11:51 +0200)]
Make LocalTopologyChecker class and hide implementation details

This allows capturing useful state that is only used when writing the
error output, without leaking dependencies for implementation details
to high-level code.

Some minor improvements to const correctness of the error output. Also
moved it into gmx namespace.

Minor improvement to include order

Removed unused forward declaration in domdec.h

Refs #3887

2 years agoRename some paramters in nblib listed forces
ejjordan [Mon, 7 Jun 2021 10:39:41 +0000 (12:39 +0200)]
Rename some paramters in nblib listed forces

This is pure refactoring.
HarmonicAngleType -> HarmonicAngle
EquilDistance -> EquilConstant

2 years agoAdd unit tests for topology sorting
Mark Abraham [Mon, 7 Jun 2021 12:43:00 +0000 (12:43 +0000)]
Add unit tests for topology sorting

2 years agoRemove duplicating pointers to device buffers in GPU listed forces
Artem Zhmurov [Mon, 7 Jun 2021 10:53:30 +0000 (13:53 +0300)]
Remove duplicating pointers to device buffers in GPU listed forces

XYZQ, forces and shift forces are saved in both ListedForces class and
in BondedCudaKernelParameters class. This removes the later and
make it so the buffers are passed directly to the kernel.

2 years agoPush GPU PME-PP force from PME task instead of pull from PP task
Alan Gray [Mon, 7 Jun 2021 11:54:56 +0000 (11:54 +0000)]
Push GPU PME-PP force from PME task instead of pull from PP task

2 years agoAdd SYCL-related information to the mdrun version header
Andrey Alekseenko [Mon, 7 Jun 2021 11:22:11 +0000 (11:22 +0000)]
Add SYCL-related information to the mdrun version header

2 years agoAdded EnergyOutputRequestChecker notification for MDModules
Dmitry Morozov [Mon, 7 Jun 2021 11:00:13 +0000 (11:00 +0000)]
Added EnergyOutputRequestChecker notification for MDModules

2 years agoMiscellaneous updates from nblib
Joe Jordan [Mon, 7 Jun 2021 09:16:35 +0000 (09:16 +0000)]
Miscellaneous updates from nblib

2 years agoUpdate to Ubuntu 20.04 in CI
Mark Abraham [Mon, 7 Jun 2021 08:57:19 +0000 (08:57 +0000)]
Update to Ubuntu 20.04 in CI

2 years agoFix clang-format
Artem Zhmurov [Mon, 7 Jun 2021 06:51:12 +0000 (09:51 +0300)]
Fix clang-format

Introduced in 100125464e111f9925b8aa9e4e12098fc4510f24

2 years agoUpdates to nblib test infra and tests
Joe Jordan [Sun, 6 Jun 2021 20:50:28 +0000 (20:50 +0000)]
Updates to nblib test infra and tests

2 years agoAWH data structures modular checkpointing
Pascal Merz [Fri, 4 Jun 2021 16:57:54 +0000 (16:57 +0000)]
AWH data structures modular checkpointing

2 years agoPull and AWH exact continuation tests
Pascal Merz [Fri, 4 Jun 2021 15:47:20 +0000 (15:47 +0000)]
Pull and AWH exact continuation tests

2 years agoConvert atomInfo to int64_t
Mark Abraham [Thu, 3 Jun 2021 08:26:22 +0000 (10:26 +0200)]
Convert atomInfo to int64_t

This ensures we can use bits from a 64-bit range if we ever need
that. Or easily switch to 32-bit range if that's advantageous.

Refs #4004

2 years agoRequire CUDA 11.0
Szilárd Páll [Fri, 4 Jun 2021 10:15:32 +0000 (10:15 +0000)]
Require CUDA 11.0

Also remove some cmake code that aided support for version <11.0.

Refs #3708

2 years agoMove useMts flag from forcerec to simulationWorkload
Szilárd Páll [Fri, 4 Jun 2021 06:46:49 +0000 (06:46 +0000)]
Move useMts flag from forcerec to simulationWorkload

2 years agoMake constraints and SETTLE tests backend-agnostic
Artem Zhmurov [Thu, 3 Jun 2021 20:23:35 +0000 (20:23 +0000)]
Make constraints and SETTLE tests backend-agnostic

2 years agoRemove useless charge-group work during repartitioning
Mark Abraham [Thu, 3 Jun 2021 17:35:14 +0000 (17:35 +0000)]
Remove useless charge-group work during repartitioning