Gromacs 2025.2
Webpage
Version
2025.2
Build Environment
- GCC 13.3.1 (gcc-toolset-13)
- Open MPI 4.1.8
- CP2K 2024.3 (only for MPI double precision version)
- cmake 3.31.6
- python 3.12.9 (from conda env. prepared on Mar 10, 2025)
- openblas 0.3.29-lp64
Files Required
- gromacs-2025.2.tar.gz
- regressiontests-2025.2.tar.gz
- installed CP2K 2024.3 (only for MPI double precision version)
- (Some of files will be downloaded during the installation.)
Build Procedure
LibTorch 2.7.0 (briefly)
(Official binary version of libtorch 2.7.0 does not work in our system due to the required glibc version...)
[user@ccfep ~]$ module purge
[user@ccfep ~]$ . /apl/conda/20250310/conda_init.sh
(base) [user@ccfep ~]$ module load openblas/0.3.29-lp64
(base) [user@ccfep ~]$ module load gcc-toolset/13
(base) [user@ccfep ~]$ git clone https://github.com/pytorch/pytorch -b v2.7.0
(base) [user@ccfep 2.7.0]$ cd pytorch/
(base) [user@ccfep pytorch]$ mkdir build
(base) [user@ccfep pytorch]$ cd build/
(base) [user@ccfep build]$ cmake .. \
-GNinja \
-DBLAS=OpenBLAS \
-DBUILD_FUNCTORCH=OFF \
-DBUILD_PYTHON=False \
-DBUILD_TEST=True \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/apl/libtorch/2.7.0/cpu \
-DCMAKE_PREFIX_PATH="/lustre/rccs/apl/ap/conda/20250310/lib/python3.12/site-packages;/apl/openblas/0.3.29/lp64" \
-DPython_EXECUTABLE=/lustre/rccs/apl/ap/conda/20250310/bin/python \
-DTORCH_BUILD_VERSION=2.7.0a0+git1341794 \
-DUSE_CUDA=0 \
-DUSE_NUMPY=True \
-DINSTALL_TEST=False
(base) [user@ccfep build]$ ninja -j32
(base) [user@ccfep build]$ ninja -j32 test
(base) [user@ccfep build]$ ninja -j32 install
- cmake options above were based on those from setup.py.
- Following tests have failed.
- 48 - vec_test_all_types_AVX512 (ILLEGAL) => most probably due to the hardware specifications
- 49 - vec_test_all_types_AVX2 (Failed) => ?
Gromacs 2025.2
#!/bin/sh
VERSION=2025.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}TORCH_DIR=/apl/libtorch/2.7.0/cpu
PARALLEL=12
export LANG=C#---------------------------------------------------------------------
umask 0022
module -s purge
module -s load gcc-toolset/13
module -s load openmpi/4.1.8/gcc13
module -s load cmake/3.31.6cd ${WORKDIR}
if [ -d gromacs-${VERSION} ]; then
mv gromacs-${VERSION} gromacs_erase
rm -rf gromacs_erase &
fiif [ -d regressiontests-${VERSION} ]; then
mv regressiontests-${VERSION} regressiontests_erase
rm -rf regressiontests_erase &
fitar xzf ${GROMACS_TARBALL}
tar xzf ${REGRESSION_TARBALL}
cd gromacs-${VERSION}
# single precision, no MPI
mkdir rccs-s
cd rccs-s
cmake .. \
-DCMAKE_PREFIX_PATH="${TORCH_DIR}" \
-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 \
-DGMX_NNPOT=TORCH \
-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_PREFIX_PATH="${TORCH_DIR}" \
-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 \
-DGMX_NNPOT=TORCH \
-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_PREFIX_PATH="${TORCH_DIR}" \
-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 \
-DGMX_USE_PLUMED=ON \
-DGMX_NNPOT=TORCH \
-DREGRESSIONTEST_DOWNLOAD=OFF \
-DREGRESSIONTEST_PATH=${REGRESSION_PATH}
make -j${PARALLEL} && make check && make install
cd ..
# double precision, with MPI
mkdir rccs-mpi-d
cd rccs-mpi-d
cmake .. \
-DCMAKE_PREFIX_PATH="${TORCH_DIR}" \
-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_BUILD_OWN_FFTW=ON \
-DGMX_USE_PLUMED=ON \
-DGMX_NNPOT=TORCH \
-DREGRESSIONTEST_DOWNLOAD=OFF \
-DREGRESSIONTEST_PATH=${REGRESSION_PATH}
make -j${PARALLEL} && make check && make install
cd ..
# double precision, with MPI + CP2K
CP2KROOT=/apl/cp2k/2024.3
CP2KROOT_TC=${CP2KROOT}/tools/toolchain
mkdir rccs-mpi-d-cp2k
cd rccs-mpi-d-cp2k
cmake .. \
-DCMAKE_PREFIX_PATH="${CP2KROOT_TC}/install/fftw-3.3.10" \
-DGMX_DEFAULT_SUFFIX=OFF \
-DGMX_BINARY_SUFFIX=_mpi_d_cp2k \
-DGMX_LIBS_SUFFIX=_mpi_d_cp2k \
-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 \
-DGMX_EXTERNAL_BLAS=ON \
-DGMX_BLAS_USER=${CP2KROOT_TC}/install/openblas-0.3.27/lib/libopenblas.so \
-DGMX_EXTERNAL_LAPACK=ON \
-DGMX_LAPACK_USER=${CP2KROOT_TC}/install/openblas-0.3.27/lib/libopenblas.so \
-DGMX_USE_PLUMED=ON \
-DGMX_NNPOT=OFF \
-DREGRESSIONTEST_DOWNLOAD=OFF \
-DREGRESSIONTEST_PATH=${REGRESSION_PATH}
make -j${PARALLEL} && make check
make install
cd ..
Tests (Gromacs)
All the tests have passed successfully.
Notes
- Neural Network Potential is available thanks to libtorch 2.7.0.
- The model should be trained/created with pytorch 2.7.0 according to the official document. If you want to use different version of pytorch, you may need to prepare it by yourselves. The above procedure may be helpful.
- For GPU-enabled version, please see this page.
- External plumed is also available.
- PLUMED_KERNEL environment variable is set to libplumedKernel.so of plumed 2.9.3 in gromacs/2025.2 module on RCCS system.
- We prepared two MPI double precision versions, since we couldn't enable CP2K and Neural Network Potential simultaneously.
- (LibTorch 1.x of cp2k 2024.3 toolchain is not available for gromacs 2025.)
- CP2K enabled version involves "cp2k" in its name (e.g. gmx_mpi_d_cp2k).