Known issues affecting users of GROMACS¶
Here is a non-exhaustive list of issues that are we are aware of that are affecting regular users of GROMACS.
“Cannot find a working standard library” error with ROCm Clang¶
Some Clang installations don’t contain a compatible C++ standard library.
In such cases, you might have to install g++
and help CMake find it
by setting -DGMX_GPLUSGPLUS_PATH=/path/to/bin/g++
.
On Ubuntu 22.04, installing GCC 12 standard library (with
sudo apt install libstdc++-12-dev
) usually works well even without
setting -DGMX_GPLUSGPLUS_PATH
.
Expanded ensemble does not checkpoint correctly¶
In the legacy simulator, because of shortcomings in the implementation, successful expanded-ensemble MC steps that occurred on checkpoint steps were not recorded in the checkpoint. If that checkpoint was used for a restart, then it would not necessarily behave correctly and reproducibly afterwards. So checkpointing of expanded-ensemble simulations is disabled for the legacy simulator.
Checkpointing of expanded ensemble in the modular simulator works correctly.
To work around the issue, either avoid -update gpu
(so that it
uses the modular simulator path which does not have
the bug), or use an older version of GROMACS
(which does do the buggy checkpointing), or refrain from
restarting from checkpoints in the affected case.
Compiling with GCC 12 on POWER9 architectures¶
There are multiple failing unit tests after compilation with GCC 12.2 and 12.3 on POWER9 architectures. It is possible that other GCC 12 and newer versions are affected.
Launching multiple instances of GROMACS on the same machine with AMD GPUs¶
When GROMACS is built with AdaptiveCpp 23.10 or earlier for AMD GPUs, launching more than 4 instances of GROMACS (even on different GPUs) can lead to reduced performance.
The issue is completely avoided when each process is limited to a single
GPU using ROCR_VISIBLE_DEVICES
environment variable. This is already
the recommended setting on some of the relevant supercomputers.
Building with AdaptiveCpp 24.02 also prevents the problem from arising.
NbnxmTest crash with oneAPI 2024.1¶
When building with oneAPI 2024.1, the NbnxmTest
test can segfault in
some cases. Using oneAPI 2024.2 or newer should resolve the issue.
Separate PME ranks with thread-MPI and CUDA do not work with small systems¶
Running GROMACS 2024.x and 2025.0 with thread-MPI and CUDA and a separate PME rank gives incorrect energies after step zero and fails after some steps with fatal error.
With 2024, the issue is only triggered with direct GPU communication is explicitly enabled
(GMX_ENABLE_DIRECT_GPU_COMM
).
In 2025, the direct GPU communication has been disabled for thread-MPI builds of GROMACS
to avoid this issue. Once it has been fixed, direct GPU communication will be made default
for both MPI and thread-MPI builds.
As a workaround, build GROMACS with library (“real”) MPI.
You can also continue using thread-MPI, but disable direct GPU communication for the
GROMACS 2024 series by not setting GMX_ENABLE_DIRECT_GPU_COMM
.