Gromacs 2024.2
Webpage
http://www.gromacs.org/

Version2024.2

Build Environment
GCC 13.1.1 (gcc-toolset-13)
Open MPI 4.1.6
CP2K 2023.1 (only for double precision MPI version)

Files Required
gromacs-2024.2.tar.gz
regressiontests-2024.2.tar.gz
installed CP2K 2023.1 (only for double precision MPI version)

Build Procedure#!/bin/sh
VERSION=2024.2
INSTALL_PREFIX=/apl/gromacs/${VERSION}#INSTALL_PREFIX=/home/users/qf7/Software/Gromacs/2024.2/gcc13-ompi416
BASEDIR=/home/users/${USER}/Software/Gromacs/${VERSION}/GROMACS_TARBALL=${BASEDIR}/gromacs-${VERSION}.tar.gz
REGRESSION_TARBALL=${BASEDIR}/regressiontests-${VERSION}.tar.gz
WORKDIR=/gwork/users/${USER}
REGRESSION_PATH=${WORKDIR}/regressiontests-${VERSION}
PARALLEL=12
export LANG=C#--------------------------------------------------------------------umask 0022
module -s purge
module -s load gcc-toolset/13
module -s load openmpi/4.1.6/gcc13#module -s load cmake/3.28.3
cd ${WORKDIR}
if [ -d gromacs-${VERSION} ]; then
mv gromacs-${VERSION} gromacs_erase
rm -rf gromacs_erase &fi
if [ -d regressiontests-${VERSION} ]; then
mv regressiontests-${VERSION} regressiontests_erase
rm -rf regressiontests_erase &fi
tar xzf ${GROMACS_TARBALL}
tar xzf ${REGRESSION_TARBALL}
cd gromacs-${VERSION}# single precision, no MPI
mkdir rccs-s
cd rccs-s

cmake .. \-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \-DCMAKE_VERBOSE_MAKEFILE=ON \-DCMAKE_C_COMPILER=gcc \-DCMAKE_CXX_COMPILER=g++ \-DGMX_MPI=OFF \-DGMX_GPU=OFF \-DGMX_DOUBLE=OFF \-DGMX_THREAD_MPI=ON \-DGMX_BUILD_OWN_FFTW=ON \-DREGRESSIONTEST_DOWNLOAD=OFF \-DREGRESSIONTEST_PATH=${REGRESSION_PATH}
make -j${PARALLEL} && make check && make install
cd ..
# double precision, no MPI
mkdir rccs-d
cd rccs-d
cmake .. \-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \-DCMAKE_VERBOSE_MAKEFILE=ON \-DCMAKE_C_COMPILER=gcc \-DCMAKE_CXX_COMPILER=g++ \-DGMX_MPI=OFF \-DGMX_GPU=OFF \-DGMX_DOUBLE=ON \-DGMX_THREAD_MPI=ON \-DGMX_BUILD_OWN_FFTW=ON \-DREGRESSIONTEST_DOWNLOAD=OFF \-DREGRESSIONTEST_PATH=${REGRESSION_PATH}
make -j${PARALLEL} && make checkmake install
cd ..
# single precision, with MPI
mkdir rccs-mpi-s
cd rccs-mpi-s
cmake .. \-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \-DCMAKE_VERBOSE_MAKEFILE=ON \-DCMAKE_C_COMPILER=mpicc \-DCMAKE_CXX_COMPILER=mpicxx \-DGMX_MPI=ON \-DGMX_GPU=OFF \-DGMX_DOUBLE=OFF \-DGMX_THREAD_MPI=OFF \-DGMX_BUILD_OWN_FFTW=ON \-DREGRESSIONTEST_DOWNLOAD=OFF \-DREGRESSIONTEST_PATH=${REGRESSION_PATH}
make -j${PARALLEL} && make check && make install
cd ..
CP2KROOT=/apl/cp2k/2023.1
CP2KROOT_TC=${CP2KROOT}/tools/toolchain# double precision, with MPI
mkdir rccs-mpi-d
cd rccs-mpi-d
cmake .. \-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \-DCMAKE_VERBOSE_MAKEFILE=ON \-DCMAKE_C_COMPILER=mpicc \-DCMAKE_CXX_COMPILER=mpicxx \-DGMX_MPI=ON \-DGMX_GPU=OFF \-DGMX_DOUBLE=ON \-DGMX_THREAD_MPI=OFF \-DGMX_CP2K=ON \-DBUILD_SHARED_LIBS=OFF \-DGMXAPI=OFF \-DGMX_INSTALL_NBLIB_API=OFF \-DCP2K_DIR=${CP2KROOT}/lib/rccs/psmp \-DGMX_FFT_LIBRARY=fftw3 \-DCMAKE_PREFIX_PATH=${CP2KROOT_TC}/install/fftw-3.3.10 \-DGMX_EXTERNAL_BLAS=ON \-DGMX_BLAS_USER=${CP2KROOT_TC}/install/openblas-0.3.21/lib/libopenblas.so \-DGMX_EXTERNAL_LAPACK=ON \-DGMX_LAPACK_USER=${CP2KROOT_TC}/install/openblas-0.3.21/lib/libopenblas.so \-DREGRESSIONTEST_DOWNLOAD=OFF \-DREGRESSIONTEST_PATH=${REGRESSION_PATH}
make -j${PARALLEL} && make checkmake install
cd ..

Tests
All the tests have passed successfully.

Notes
Gcc11 build shows a bad performance as in Gromacs 2023. Gcc 9 or 13 show better performance than gcc 11.
(Only gcc9, 11, and 13 are tested. There might be performance issue for gcc 10 and 12 builds.)
Colvars is enabled without optional flags.
AOCC 4.2 and Intel 2023, 2024 versions are slightly slower than GCC version.
For Intel oneAPI, 2023 one shows a slightly better performance than 2024.
QM/MM calculation with CP2K 2023.1 is enabled for double precision MPI version. MPI parallel calculation is alsopossible.
A QM/MM sample calculation from the egfp tutorial(https://github.com/bioexcel/gromacs-2022-cp2k-tutorial) isavailable in samples/cp2k. (Some of steps in this tutorial may need to be modified when performed withGromacs 2024.)
You may need to set "qmmm-cp2k-qmfilenames" in the input file. There seems to be some changes from the2022 version. On the default setting, the calculation might fail due to the irrelevant temporary file name. (Inthe sample, we explicitly specify "qmmm-cp2k-qmfilenames = cp2k_internal" in the input file.)
CMAKE_PREFIX_PATH=${CP2KROOT_TC}/install/fftw-3.3.10 is necessary when we want to use fftw in CP2K
toolchain.
(This fftw lacks --enable-sse and --enable-sse2 according to the Gromacs cmake result. "--enable-avx" may beactive.)(There seems to be no problem with the minor version difference of OpenMPI (4.1.6 (gromacs) vs 4.1.4(CP2K).)
gmxapi is not enabled, since the system python version is not enough.