Gromacs 2024.2

Webpage

http://www.gromacs.org/

Version

2024.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}

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 check
make 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 check
make 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 also possible.
    • A QM/MM sample calculation from the egfp tutorial(https://github.com/bioexcel/gromacs-2022-cp2k-tutorial) is available in samples/cp2k. (Some of steps in this tutorial may need to be modified when performed with Gromacs 2024.)
    • You may need to set "qmmm-cp2k-qmfilenames" in the input file. There seems to be some changes from the 2022 version. On the default setting, the calculation might fail due to the irrelevant temporary file name. (In the 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 be active.)
    • (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.