GROMACS 2024.2 release notes#
This version was released on May 10th, 2024. These release notes document the changes that have taken place in GROMACS since the previous 2024.1 version, to fix known issues. It also incorporates all fixes made in version 2023.5 and earlier, which you can find described in the Release notes.
Fixes where mdrun could behave incorrectly#
Prevent crashes with AdaptiveCpp/hipSYCL#
In some cases, GROMACS could randomly crash on neighbor-search steps with
hip_queue: hipMemsetAsync() failed (error code = HIP:1)
error.
This was caused by a GPU buffer re-allocation while an operation on the buffer
was pending. We add an explicit synchronization to avoid it.
Only AdaptiveCpp/hipSYCL builds are affected.
This should not have caused any incorrect physics, only the mdrun
crash.
Fixes for gmx
tools#
Improve errors and warnings to avoid poor results with gmx msd#
Fail properly if -trestart
is not divisible by -dt
or if -dt
> -trestart
. A warning is generated if the two values are equal.
Improve error messages from editconf and trjconv#
Fail properly if a tpr file is not supplied when using the -conect option. Also avoid a “File input/output error:” when no tpr file is supplied when it is required for -pbc options.
Avoid floating point exception with corrupted xtc files#
Reading a corrupted xtc file could cause a floating point exception. Now the gmx binary will exit with an error message.
Make Colvars file backup scheme consistent with GROMACS#
Colvars output files in GROMACS versions 2024.0 and 2024.1 were backed up
only once, regardless of the value of GMX_MAXBACKUP
. This is corrected
in 2024.2 and later releases, by letting Colvars back up existing output
files consistently with other files produced by GROMACS itself.
Fixes that affect portability#
Enable usage of Intel compiler with AVX-512 SIMD on AMD Zen 4#
The fix is to use newer style compiler flags for Intel oneAPI DPC++/C++
Compiler and AVX-512. Older style flag -xCORE-AVX512
supports only
Intel CPUs, while newer style -march=skylake-avx512
additionally
supports AMD CPUs. This fixes building with Intel compiler on AMD CPUs
with Zen 4 cores.
Warn about unsupported compilers sooner#
Now CMake reports that a user’s compiler is broken or unsupported before running into other fatal issues that would have obscured a critical problem.
Enable specification of custom install rpath during build configuration#
CMake build and installation steps will now append to the
CMAKE_INSTALL_RPATH
value provided by the user at the configuration
time (if any) instead of overwriting it.
Permit dpcpp
to appear in the path to the compiler#
The compiler named dpcpp
is no longer supported, so CMake
prohibits its use. However previously we inadvertently also prohibited
any compiler whose full path also contained the string “dpcpp,” which
was not intended.
Miscellaneous#
NBLIB always used geometric Lennard-Jones combination rules#
Now NBLIB detects the Lennard-Jones combination rules (or none) from the Lennard-Jones parameters set by the user.
Fix cuFFTMp compilation issue#
The cuFFTMp build is now more likely to compile because the compiler now sees the correct path.
Fix performance regression for some cases on latest NVIDIA GPUs#
In version 2024.0 we included optimizations to non-bonded force calculations on NVIDIA GPUs which improved performance for a range of cases, through loop unrolling tuning. Here, we tweak the optimization to fix a regression in a specific case, which was discovered to be caused by this tuning.
Address performance regression on ARM with clang and SVE#
The non-bonded CPU SIMD kernels contained loops which were not unrolled, in particular with the LLVM backend of clang on ARM SVE. Other combinations of compilers and architectures might also have been affected. Note that there are still other performance regressions in certain versions of these kernels on multiple platforms.
Fix crash in NbnxmSetupTest.CanCreateNbnxmGPU#
NbnxmSetupTest.CanCreateNbnxmGPU
could crash in GPU builds
with an error in freeDeviceBuffer
function during pairlist
deinitialization.
Fix incorrect mdp keyword for mass repartitioning in documentation#
The mdp keyword for mass repartitioning was incorrect in the list of mdp options in the documentation.
Report AdaptiveCpp/hipSYCL compiler path in gmx -version
#
In 2024.0 and 2024.1 it was empty.