alexxy/gromacs.git
2 years agoIntroduce explicit parameters for gapsys-sc.
Sebastian Kehl [Thu, 23 Sep 2021 13:31:11 +0000 (15:31 +0200)]
Introduce explicit parameters for gapsys-sc.

2 years agoRemove SoftcoreType::None.
Sebastian Kehl [Wed, 22 Sep 2021 13:54:48 +0000 (15:54 +0200)]
Remove SoftcoreType::None.

2 years agoSwap position of sc-function in readir.
Sebastian Kehl [Tue, 21 Sep 2021 11:29:36 +0000 (13:29 +0200)]
Swap position of sc-function in readir.

2 years agoReverse order of conditions.
Sebastian Kehl [Mon, 20 Sep 2021 15:00:57 +0000 (17:00 +0200)]
Reverse order of conditions.

2 years agoFix use of literals.
Sebastian Kehl [Mon, 20 Sep 2021 14:57:41 +0000 (16:57 +0200)]
Fix use of literals.

2 years agoRemove changes to the test cases.
Sebastian Kehl [Mon, 20 Sep 2021 11:28:47 +0000 (13:28 +0200)]
Remove changes to the test cases.

2 years agoAdd gapsys softcore function.
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.

2 years agoFix force reduction dependencies with process-MPI and PP-PME on same rank
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

2 years agoQMMM description and release notes update
Dmitry Morozov [Tue, 5 Oct 2021 08:23:00 +0000 (08:23 +0000)]
QMMM description and release notes update

2 years agoAdd transformation pull coord mdp examples
Berk Hess [Mon, 4 Oct 2021 20:29:01 +0000 (20:29 +0000)]
Add transformation pull coord mdp examples

2 years agoImprove transformation coordinate expression checks
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.

2 years agoAvoid overflows in free-energy kernel
Berk Hess [Fri, 1 Oct 2021 21:01:24 +0000 (21:01 +0000)]
Avoid overflows in free-energy kernel

2 years agoSYCL: remove (un)flatten
Roland Schulz [Fri, 1 Oct 2021 20:28:24 +0000 (20:28 +0000)]
SYCL: remove (un)flatten

2 years agoSYCL: 3D FFT using oneMKL
Andrey Alekseenko [Thu, 30 Sep 2021 18:27:37 +0000 (20:27 +0200)]
SYCL: 3D FFT using oneMKL

Requires Intel oneAPI binary installation (the open-source version of
oneMKL does not support FFT yet).

Only in-place transforms are supported, du to a bug in MKL up to, at
least, 2021.4.0.

Also removes errorneous buffer clearing on "in-place" codepath in FFT tests.

Refs #3927.

2 years agoFix clang format and suppres clang lint warning
Andrey Alekseenko [Thu, 30 Sep 2021 16:42:47 +0000 (18:42 +0200)]
Fix clang format and suppres clang lint warning

2 years agoPad RVec force buffer in ThreadForceBuffer
Berk Hess [Thu, 30 Sep 2021 13:40:53 +0000 (13:40 +0000)]
Pad RVec force buffer in ThreadForceBuffer

2 years agoAdd hipSYCL support to GPU 3DFFT
Mark Abraham [Thu, 30 Sep 2021 12:42:30 +0000 (12:42 +0000)]
Add hipSYCL support to GPU 3DFFT

Made the testing of the complex-to-real transform less likely to pass
when there's a problem.

Refs #3965

2 years agoAdd missing includes
Roland Schulz [Wed, 29 Sep 2021 22:10:12 +0000 (15:10 -0700)]
Add missing includes

2 years agoRelax requirement for bonded atom type names
Eliane Briand [Wed, 29 Sep 2021 18:20:22 +0000 (18:20 +0000)]
Relax requirement for bonded atom type names

2 years agoActivate QMMM MDModule
Dmitry Morozov [Wed, 29 Sep 2021 17:49:01 +0000 (17:49 +0000)]
Activate QMMM MDModule

2 years agoAvoid MPI sync for PME force sender GPU scheduling code and thread API calls
Alan Gray [Wed, 29 Sep 2021 14:10:58 +0000 (14:10 +0000)]
Avoid MPI sync for PME force sender GPU scheduling code and thread API calls

Replaces synchronous PME-PP MPI comms of event at every step with
exchange of event address and associated flag only on search
steps. The PP rank now ensures that event has been recorded before
enqueueing by spinning on flag written by PME rank in shared CPU
memory. This allows not only async progress by PME rank, but also
OpenMP parallelization of cudaMemcpy launches to the multiple PP
ranks, such that the CUDA API overheads will overlap.

Partly addresses #4047

2 years agoUse reference data in constraints tests
Artem Zhmurov [Wed, 29 Sep 2021 13:05:58 +0000 (13:05 +0000)]
Use reference data in constraints tests

2 years agoUpdate links to googletests and remove some refs to Jenkins and Gerrit from the docs
Artem Zhmurov [Tue, 28 Sep 2021 11:47:02 +0000 (14:47 +0300)]
Update links to googletests and remove some refs to Jenkins and Gerrit from the docs

- Update links to googletests framework
- Remove some more mentioning of Jenkins and Gerrit
- Remove migrating from Gerrit section

2 years agoClang-format of nb-fep-kernel
Sebastian Kehl [Wed, 29 Sep 2021 10:26:07 +0000 (12:26 +0200)]
Clang-format of nb-fep-kernel

2 years agoSIMD support for nonbonded free-energy kernels
Magnus Lundborg [Wed, 29 Sep 2021 09:16:19 +0000 (09:16 +0000)]
SIMD support for nonbonded free-energy kernels

2 years agoAllow disabling cj prefetch in the CUDA nbnxm kernels
Szilárd Páll [Wed, 29 Sep 2021 07:41:05 +0000 (07:41 +0000)]
Allow disabling cj prefetch in the CUDA nbnxm kernels

2 years agoBuild internal muparser more simply
Mark Abraham [Tue, 28 Sep 2021 15:19:07 +0000 (15:19 +0000)]
Build internal muparser more simply

2 years agoAdd HeFFTe based FFT backend
Gaurav Garg [Tue, 28 Sep 2021 10:26:36 +0000 (10:26 +0000)]
Add HeFFTe based FFT backend

2 years agoImplementation of QMMM, QMMMSimulationParameterSetup and QMMMOutputProvider classes
Dmitry Morozov [Tue, 28 Sep 2021 08:11:51 +0000 (08:11 +0000)]
Implementation of QMMM, QMMMSimulationParameterSetup and QMMMOutputProvider classes

2 years agoFix stepWork.useGpuXHalo on search steps
Szilárd Páll [Mon, 27 Sep 2021 16:23:05 +0000 (18:23 +0200)]
Fix stepWork.useGpuXHalo on search steps

The value of stepWork.useGpuXHalo was not correct on search steps when
mdrun always falls back to comunicating over the CPU.

2 years ago[RFC] Change nonbonded-fep-test reference data to analytical Ewald
Magnus Lundborg [Fri, 17 Sep 2021 07:20:43 +0000 (09:20 +0200)]
[RFC] Change nonbonded-fep-test reference data to analytical Ewald

The nonbonded-fep-test reference data for Ewald type interactions
was generated using tabulated interactions. There have a max error
of 0.1*ewald_trol=1e-6. In preparation for the switch to analytical
corrections, the reference data is now generated with analytical
corrections. The required a tolerance in double precision of 1e-6.

2 years agoUse ObservablesReducer for LINCS RMSD computation
Mark Abraham [Mon, 27 Sep 2021 09:21:47 +0000 (09:21 +0000)]
Use ObservablesReducer for LINCS RMSD computation

2 years agoUse term "collective variable" in manual
Berk Hess [Mon, 27 Sep 2021 08:39:02 +0000 (08:39 +0000)]
Use term "collective variable" in manual

2 years agoReplace DOMAINDECOMP macro by a renamed function
Berk Hess [Sat, 25 Sep 2021 13:13:11 +0000 (13:13 +0000)]
Replace DOMAINDECOMP macro by a renamed function

2 years agoSYCL PME Gather kernel
Andrey Alekseenko [Sat, 25 Sep 2021 09:55:00 +0000 (09:55 +0000)]
SYCL PME Gather kernel

2 years agoImprove ObservablesReducer and its handling
Mark Abraham [Sat, 25 Sep 2021 07:01:42 +0000 (07:01 +0000)]
Improve ObservablesReducer and its handling

2 years agoFix compilation issues with master branch when OpenMPI is built with --enable-cxx...
Gaurav Garg [Fri, 24 Sep 2021 19:45:17 +0000 (19:45 +0000)]
Fix compilation issues with master branch when OpenMPI is built with --enable-cxx-exceptions option

2 years agoAlso use DD partitioning in serial
Berk Hess [Fri, 24 Sep 2021 19:24:23 +0000 (19:24 +0000)]
Also use DD partitioning in serial

2 years agoAdd manual subsection for transformation pull coord
Berk Hess [Fri, 24 Sep 2021 14:52:47 +0000 (14:52 +0000)]
Add manual subsection for transformation pull coord

2 years agoAdded QMMMOptions class for managing mdp and KVT I/O
Dmitry Morozov [Fri, 24 Sep 2021 13:09:39 +0000 (13:09 +0000)]
Added QMMMOptions class for managing mdp and KVT I/O

2 years agoRemove unused declaration of function
Mark Abraham [Fri, 24 Sep 2021 11:56:23 +0000 (13:56 +0200)]
Remove unused declaration of function

This was left over from an early stage of development. MSVC complains
that it can't find a definition when instantiating the template class.

2 years agoFix clang-tidy warnings in pme and sim_utils
Artem Zhmurov [Fri, 24 Sep 2021 09:22:09 +0000 (12:22 +0300)]
Fix clang-tidy warnings in pme and sim_utils

1. The global non-const variable was temporary introduced to able to
   test the PME SYCL spread kernel independently of the rest of the PME
   (f190fa59b4a72390b2aea2e74b4960941098ce4d). NOLINT should be
   temporary fix as this variable will go away once the rest of PME
   is implemented in SYCL.
2. The conditionals in sim_utils wrap the same copy operation after
   4d38a0d65839f951bf275e465f8fb65a35b60b8d. So these conditional can
   now be combined.

2 years agoFix incorrect event dependency of GPU update
Szilárd Páll [Sat, 28 Aug 2021 21:32:26 +0000 (23:32 +0200)]
Fix incorrect event dependency of GPU update

With separate PME ranks, staged communication and GPU update, the final
forces are produced on the CPU and re-uploaded to the GPU prior to
update. This upload was done on a "All" locality leading to an incorrect
dependency on an event corresponding to the GPU reduction.
This leads ot a logic error and incorrect synchronization, but not
incorrect results as the "All" locality copy is done on the update
stream, hence implicit dependency applies.

This change moves this special case copy to the same locality used in
other force host to device copies to eliminate the bug.

Fixes #4130

2 years agoInitialize t_inputrec properly
Mark Abraham [Thu, 23 Sep 2021 13:56:48 +0000 (13:56 +0000)]
Initialize t_inputrec properly

Refs #4169

2 years agoUse ObservablesReducer for check of DD bonded interaction count.
Mark Abraham [Thu, 23 Sep 2021 09:57:16 +0000 (09:57 +0000)]
Use ObservablesReducer for check of DD bonded interaction count.

The lifetime of the local and global state has been shifted, so that
the LocalTopologyChecker can now be initialized with the handles it
might need to use to report an error, even though one of those handles
will not contain valid data until after the first DD partition.

This simplifies ComputeGlobalsElement from the modular simulator.

The changes to StatePropagatorData motivated by this change reduce the
number of copies of x and v vectors that were being done every
partitioning step. Those are needed only when the state backup is
taken so that trajectory output can be handled correctly.

The check is now implemented for minimizers, where previously it
was not.

Refs #3887 #3421

2 years agoMake CpuPpLongRangeNonbondeds class
ejjordan [Tue, 14 Sep 2021 14:25:21 +0000 (16:25 +0200)]
Make CpuPpLongRangeNonbondeds class

The CpuPpLongRangeNonbondeds class replaces the calculateLongRangeNonbondeds
function. Now simulation constant data is passed to a constructor,
domain constant data is passed to an updateAfterPartition function,
and per step data is passed to a calculate function.

2 years agoAdded QMMMForceProvider class for QMMM MdModule
Dmitry Morozov [Thu, 23 Sep 2021 08:03:08 +0000 (08:03 +0000)]
Added QMMMForceProvider class for QMMM MdModule

2 years agoRemove useless top level nblib force calculator
ejjordan [Wed, 22 Sep 2021 16:52:37 +0000 (18:52 +0200)]
Remove useless top level nblib force calculator

The top level nblib force calculator was a place holder in
anticipation of a unification of CPU and GPU force calculator
backends, which did not occur. As such it is removed since it only
adds maintenance burden and not utility.

Also removed is a useless class holding the non-bonded force
calculator setup director, which is now a free function.

2 years agoUpdate MPI dependence for `gmxapi` target.
M. Eric Irrgang [Tue, 21 Sep 2021 13:01:22 +0000 (16:01 +0300)]
Update MPI dependence for `gmxapi` target.

Use the `MPI::MPI_CXX` target instead of deprecated FindMPI output variables.

Ref #3672.

2 years agoFix compilation with GMX_USE_MUPARSER=None
Roland Schulz [Wed, 22 Sep 2021 07:13:16 +0000 (00:13 -0700)]
Fix compilation with GMX_USE_MUPARSER=None

Without muparser enabled, it is in invalid to catch its exception.

Related #4165

2 years agoFix out of bound vector access in vsites
Roland Schulz [Wed, 22 Sep 2021 04:49:39 +0000 (21:49 -0700)]
Fix out of bound vector access in vsites

operator[] is invalid for one past the last element. Using
the pointer to it as end-pointer is fine.

Found by Microsoft STL debug iterator.

2 years agoVarious minor nblib updates
ejjordan [Tue, 21 Sep 2021 13:49:30 +0000 (15:49 +0200)]
Various minor nblib updates

A small selection of miscellaneous changes that don't fit in as part
of any larger MR.

2 years agoAdd heffte package in gcc-7-cuda-11.0 container
Gaurav Garg [Mon, 20 Sep 2021 14:03:36 +0000 (19:33 +0530)]
Add heffte package in gcc-7-cuda-11.0 container

2 years agoRemove ResidueTypeMap dependency from gmx chi
Mark Abraham [Tue, 7 Sep 2021 05:21:36 +0000 (07:21 +0200)]
Remove ResidueTypeMap dependency from gmx chi

This dependency had the sole effect of making the tool harder to use
when residue names unknown to GROMACS were used. The dihedrals are
found from the atom names, and the residue name is used only for
reporting results, so there is no reason to require the user to add
the name to an arbitrary list.

2 years agoIntroduce expanded ensemble in modular simulator
Pascal Merz [Wed, 22 Sep 2021 07:53:11 +0000 (07:53 +0000)]
Introduce expanded ensemble in modular simulator

2 years agoSYCL PME Spread kernel
Andrey Alekseenko [Tue, 21 Sep 2021 18:54:59 +0000 (18:54 +0000)]
SYCL PME Spread kernel

2 years agoFix compilation with oneAPI 2021.2 and earlier
Andrey Alekseenko [Sat, 18 Sep 2021 21:30:45 +0000 (00:30 +0300)]
Fix compilation with oneAPI 2021.2 and earlier

We were using some PP defines introduced only in 2021.3. And, since they
are not standard, now we play it safe and don't use them if they are not
defined.

Bug introduced in MR !1888 (2861057f).

2 years agoFix rare UB / assertion failure in MdlibUnitTest
Andrey Alekseenko [Tue, 21 Sep 2021 12:21:15 +0000 (15:21 +0300)]
Fix rare UB / assertion failure in MdlibUnitTest

In LeapFrogHostTestRunner::integrate, we were checking whether
testData->mdAtoms_.ptype is null, but we were not initializing this
field.

This was leading to occasional assertion failure in
ArrayRef constructor from this pointer when begin+size was overflowing,
which caused end < begin.

Only unit tests were affected.

2 years agoFind MPI quietly on second pass
Mark Abraham [Tue, 21 Sep 2021 10:50:29 +0000 (12:50 +0200)]
Find MPI quietly on second pass

GROMACS expects package detection to be quiet upon repeat calls
to cmake, unless something has actually changed. It's fine to report
details thoroughly the first time through, however.

The previous code seemed to conflate verbosity with enforcing
requirements, which is now clearer.

2 years agoExpanded the GetIrTest behavior to enable efficient testing
Berk Hess [Tue, 21 Sep 2021 10:39:28 +0000 (10:39 +0000)]
Expanded the GetIrTest behavior to enable efficient testing

2 years agoPrepare ThreadedForceBuffer for FE kernel use
Berk Hess [Tue, 21 Sep 2021 07:52:15 +0000 (09:52 +0200)]
Prepare ThreadedForceBuffer for FE kernel use

Made the energy terms optional.
Skip reductions and allow nullptr/empty input for buffers that are
not used according to the stepwork flags.
Instantiate RVec versions of the templated types.

2 years agoAdd Ewald coefficients to nonbonded fep test
Berk Hess [Thu, 16 Sep 2021 20:37:54 +0000 (22:37 +0200)]
Add Ewald coefficients to nonbonded fep test

Refs #4151

2 years agoChange hpccm scripts to add heffte package
Gaurav Garg [Mon, 20 Sep 2021 09:12:26 +0000 (14:42 +0530)]
Change hpccm scripts to add heffte package

2 years agoSYCL: prepareGpuKernelArgument/launchGpuKernel
Andrey Alekseenko [Thu, 16 Sep 2021 16:36:00 +0000 (19:36 +0300)]
SYCL: prepareGpuKernelArgument/launchGpuKernel

Implement the functions for abstracting the kernel launch.

The abstraction is not idiomatic in SYCL, but it is conformant with what
is used in CUDA and OpenCL for PME kernel launches.

Refs #3927.

2 years agoFix Clang warnings for built-in XDR libraries
Andrey Alekseenko [Fri, 17 Sep 2021 07:14:19 +0000 (07:14 +0000)]
Fix Clang warnings for built-in XDR libraries

2 years agoMinor fixes to comments and Doxygen
Andrey Alekseenko [Tue, 14 Sep 2021 17:50:47 +0000 (20:50 +0300)]
Minor fixes to comments and Doxygen

- Fix issue number in cmake/gmxManageNvccConfig.cmake.
- Fix use of \tparam in CUDA code.

2 years agoMiscellaneous doxygen fixes
Artem Zhmurov [Thu, 16 Sep 2021 09:43:12 +0000 (12:43 +0300)]
Miscellaneous doxygen fixes

2 years agoUse a pointer to kernel parameters instead of a reference
Artem Zhmurov [Thu, 16 Sep 2021 09:18:34 +0000 (12:18 +0300)]
Use a pointer to kernel parameters instead of a reference

clang-tidy complains that the reference is not const.

Introduces in 98b7831420261dba9746da962551eb4376c77e3a

2 years agoEliminate GMX_MIMIC symbol from source code
Mark Abraham [Thu, 16 Sep 2021 10:45:17 +0000 (10:45 +0000)]
Eliminate GMX_MIMIC symbol from source code

2 years agoAdd SYCL compiler and MKL versions
Andrey Alekseenko [Thu, 16 Sep 2021 10:08:04 +0000 (10:08 +0000)]
Add SYCL compiler and MKL versions

2 years agoAdd SYCL implementation of LINCS
Artem Zhmurov [Wed, 15 Sep 2021 15:20:44 +0000 (15:20 +0000)]
Add SYCL implementation of LINCS

2 years agoFix clang warnings
Andrey Alekseenko [Wed, 15 Sep 2021 09:19:56 +0000 (09:19 +0000)]
Fix clang warnings

2 years agoMerge remote-tracking branch 'origin/release-2021' into master
Andrey Alekseenko [Tue, 14 Sep 2021 17:16:06 +0000 (20:16 +0300)]
Merge remote-tracking branch 'origin/release-2021' into master

Conflicts:
cmake/gmxVersionInfo.cmake
src/gromacs/ewald/pme_gather.cu
src/gromacs/ewald/pme_gpu_calculate_splines.cuh
src/gromacs/ewald/pme_gpu_internal.cpp
src/gromacs/ewald/tests/pmetestcommon.cpp
src/gromacs/gmxana/gmx_cluster.cpp
src/gromacs/gmxpreprocess/gen_vsite.cpp
src/gromacs/simd/support.cpp
src/gromacs/tools/trjconv.cpp

2 years agoAdd advanced event consumption accounting to GpuEventSynchronizer
Andrey Alekseenko [Tue, 14 Sep 2021 13:40:18 +0000 (13:40 +0000)]
Add advanced event consumption accounting to GpuEventSynchronizer

2 years agoReenable GPUs in CI
Paul Bauer [Tue, 14 Sep 2021 08:27:29 +0000 (08:27 +0000)]
Reenable GPUs in CI

2 years agoRevert "Temporarily lift requirement to detect GPUs in CI"
Paul Bauer [Mon, 7 Jun 2021 13:20:54 +0000 (15:20 +0200)]
Revert "Temporarily lift requirement to detect GPUs in CI"

This reverts commit b5f89c1771eda9912d94672bae31e611da9b4107.

Not needed after CI fix.

2 years agoAdded class for making QMMM-related topology modifications
Dmitry Morozov [Tue, 14 Sep 2021 07:57:27 +0000 (07:57 +0000)]
Added class for making QMMM-related topology modifications

2 years agoClang-format
Mark Abraham [Mon, 13 Sep 2021 16:19:37 +0000 (18:19 +0200)]
Clang-format

2 years agoSimplify MPI implementation checks.
M. Eric Irrgang [Mon, 13 Sep 2021 19:54:08 +0000 (19:54 +0000)]
Simplify MPI implementation checks.

2 years agoCalculate FEP (GPU) splines for all atoms.
Magnus Lundborg [Mon, 13 Sep 2021 18:08:15 +0000 (18:08 +0000)]
Calculate FEP (GPU) splines for all atoms.

Since charges can be 0 in one state, but not in the other, the splines
still need to be calculated. This was already ensured by c_skipNeutralAtoms
being false, but this commit makes that more clear.

Refs: #4139

2 years agoAdd release notes for transformation pull coordinate
Berk Hess [Tue, 7 Sep 2021 07:15:34 +0000 (09:15 +0200)]
Add release notes for transformation pull coordinate

2 years agoFix issues from downstream patches and suppressions
Mark Abraham [Fri, 10 Sep 2021 13:02:38 +0000 (15:02 +0200)]
Fix issues from downstream patches and suppressions

2 years agoAdded CP2K related options to CMake files
Dmitry Morozov [Mon, 13 Sep 2021 12:03:27 +0000 (12:03 +0000)]
Added CP2K related options to CMake files

2 years agoAllow flexible requirements for gmxManageMPI.cmake
M. Eric Irrgang [Mon, 13 Sep 2021 09:30:52 +0000 (09:30 +0000)]
Allow flexible requirements for gmxManageMPI.cmake

2 years agoRemove MPI_LINKER_FLAGS.
M. Eric Irrgang [Sun, 12 Sep 2021 12:34:18 +0000 (15:34 +0300)]
Remove MPI_LINKER_FLAGS.

GROMACS used MPI_LINKER_FLAGS before MPI_LINK_FLAGS
was standard, presumably. MPI_LINK_FLAGS has been superseded
by MPI_CXX_LINK_FLAGS.

Ref #3672

2 years agoAlways call `find_package(MPI)`.
M. Eric Irrgang [Sun, 12 Sep 2021 12:20:31 +0000 (15:20 +0300)]
Always call `find_package(MPI)`.

It is getting increasingly hard to coordinate MPI requirements across
the toolkit that a GROMACS or its CMake infrastructure may be involved
in.

This change allows is to call `find_package(MPI)` exactly once in the
GROMACS CMake configuration and begins to normalize infrastructure on
the modern CMake FindMPI.cmake module, which has been substantially
updated since the last major revisions to gmxManageMPI.cmake.

Also, try to decouple and compartmentalize GMX_MPI, GMX_LIB_MPI, and
the presence of MPI in the build system.

Follow-up changes can continue to refine the dependent use cases and
allow more coordination of the different MPI requirements in different
build configurations.

Refs #3672
Also refs #3776

2 years agoNormalize indentation.
M. Eric Irrgang [Sun, 12 Sep 2021 12:11:08 +0000 (15:11 +0300)]
Normalize indentation.

Make followup changes more readable and focused.

2 years agoFix GMX_VERSION_STRING_OF_FORK with REGRESSIONTEST_DOWNLOAD
Mark Abraham [Fri, 10 Sep 2021 13:26:25 +0000 (15:26 +0200)]
Fix GMX_VERSION_STRING_OF_FORK with REGRESSIONTEST_DOWNLOAD

Previously, the name of the fork was used to try to download
the normal regressiontests, which can't be found.

2 years agoCompute correct dV/dl when nstcalcenergy % nstdhdl != 0
Berk Hess [Fri, 10 Sep 2021 07:52:41 +0000 (07:52 +0000)]
Compute correct dV/dl when nstcalcenergy % nstdhdl != 0

2 years agoWord SIMD report better
Mark Abraham [Fri, 10 Sep 2021 07:30:46 +0000 (07:30 +0000)]
Word SIMD report better

Fixes #4135

2 years agoFix misc-misplaced-const clang-tidy warning
Andrey Alekseenko [Thu, 9 Sep 2021 14:46:43 +0000 (17:46 +0300)]
Fix misc-misplaced-const clang-tidy warning

The problem was introduced in 4a4ade89 (MR !1903).

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.

2 years agoMinor improvements to SYCL utils and related clean-up
Andrey Alekseenko [Thu, 9 Sep 2021 20:43:06 +0000 (23:43 +0300)]
Minor improvements to SYCL utils and related clean-up

- ewald/pme_gpu_types_host.h: Remove unused forward declaration.
- gpu_utils/devicebuffer_sycl.h: Allow casting our "blackhole" class to
  nullptr.
- gpu_utils/sycl_kernel_utils.h: Make subGroupBarrier usable with any
  group dimension.

In preparation for #3927.

2 years agoFix typo in selectSpreadKernelPtr causing wrong kernel to be selected
Andrey Alekseenko [Thu, 9 Sep 2021 16:07:20 +0000 (16:07 +0000)]
Fix typo in selectSpreadKernelPtr causing wrong kernel to be selected

Fixes #4138

2 years agoExtract ThreadForceBuffer from listed forces
Berk Hess [Thu, 9 Sep 2021 15:08:44 +0000 (15:08 +0000)]
Extract ThreadForceBuffer from listed forces

2 years agoEnable GPU PME unit tests
Andrey Alekseenko [Thu, 9 Sep 2021 13:06:39 +0000 (13:06 +0000)]
Enable GPU PME unit tests

2 years agoRedesign GPU FFT abstraction
Gaurav Garg [Wed, 8 Sep 2021 18:40:06 +0000 (18:40 +0000)]
Redesign GPU FFT abstraction
- Modify interface to allow distributed FFT implementation in future
- Provide support for choosing FFT backend at runtime. E.g. CUFFT backend can be instantiated for single-GPU FFT but HeFFTe can be instantiated in case PME decomposition is used.

This is a pre-requisite for GPU PME-decomposition implementation.

Refs #3884

2 years agoIntroduce plumbing for ObservablesReducer
Mark Abraham [Tue, 7 Sep 2021 17:38:29 +0000 (17:38 +0000)]
Introduce plumbing for ObservablesReducer

2 years agoReplace ResidueTypeMap with std::unordered_map
Mark Abraham [Tue, 7 Sep 2021 05:22:49 +0000 (05:22 +0000)]
Replace ResidueTypeMap with std::unordered_map

2 years agoDescribe procedure and labeling for MR closure.
M. Eric Irrgang [Mon, 6 Sep 2021 11:26:15 +0000 (11:26 +0000)]
Describe procedure and labeling for MR closure.

2 years agoUse latest cmake for ASAN configuration
Mark Abraham [Mon, 6 Sep 2021 09:24:00 +0000 (09:24 +0000)]
Use latest cmake for ASAN configuration