一、配置准备
1. 配置说明
本次安装采用的方式为编译安装,源码包及其版本分别为gromacs-2025.3,下载地址分别如下:
https://ftp.gromacs.org/gromacs/gromacs-2025.3.tar.gz
本次安装使用到的部分工具为额外包。编译安装存在依赖关系,除手动下载各组件,亦可指定使用已有的组件。部分组件下载链接如下:
https://github.com/Kitware/CMake/releases/download/v3.31.9/cmake-3.31.9-linux-x86_64.tar.gz
https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.0.tar.gz
https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-14.3.0/gcc-14.3.0.tar.gz
https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.gz
https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.2.tar.gz
https://ftp.gnu.org/gnu/mpc/mpc-1.3.0.tar.gz
https://developer.nvidia.com/cuda-12-8-1-download-archive
https://codeload.github.com/ornladios/ADIOS2/tar.gz/refs/tags/v2.10.2
https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz
https://www.fftw.org/fftw-3.3.10.tar.gz
2. 配置准备
a) 对于GROMACS:
本次安装GROMACS使用的编译链为OMPI-GCC-CUDA,其依赖或工具及其版本为:
CMake-3.31.9
OMPI-4.1.0
GCC-14.3.0
CUDA-12.8
b) CMake安装
官方提供了CMake的二进制包,将其下载并解压至<cmake_install_prefix>路径即可。
c) OMPI编译与安装
OMPI的编译安装方式较为标准。
tar -zxf openmpi-4.1.0.tar.gz
cd openmpi-4.1.0
./configure --prefix=<openmpi_install_prefix>
make
make install
d) GCC编译与安装
GCC有多个依赖组件,此处安装的GCC 14.3.0对组件及其版本依赖为:
GMP ≥ 5
MPFR ≥ 4.1.0
MPC ≥ 0.8.0
GCC支持将依赖源码与GCC一起构建的方式进行安装,即将依赖组件源码放入GCC源码中,可实现对库的自动识别核构建,文件树示意如下:
gcc-14.3.0/
├── configure
├── Makefile.in
├── gmp/
├── mpfr/
├── mpc/
└──…./
注意:
之后再通过命令进行编译安装:
../gcc-14.3.0/configure \
--prefix=<gcc_install_prefix> \
--enable-languages=c,c++,fortran \
--disable-multilib \
--disable-bootstrap
make -j$(nproc)
make install
其部分参数解释如下:
--enable-languages=c,c++,fortran # 启用gfortran
--enable-multilib # 禁用32位编译器和库的生成
--disable-bootstrap # 跳过GCC自检机制
e) CUDA安装
NVIDIA官方提供了各版本CUDA的run文件,通过选择对应参数即可进行下载,运行即可以简单的终端图形界面进行交互操作。可使用--help或是官方链接查看各个详细安装选项:
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#meta-packages
此处安装使用的命令如下,不触发交互模式静默安装,仅安装CUDA Toolkit:
bash cuda_12.8.1_570.124.06_linux.run --silent --toolkit --toolkitpath=<cuda_install_prefix> --samplespath=<cuda_install_prefix>/samples --no-man-page
f) HDF5与ADIOS2编译与安装
有关ADIOS2:https://github.com/ornladios/ADIOS2
HDF5的并行是通过使用选项实现的,通过--enable-parallel开启MPI-IO,并使用CC、CXX、FC指定上述安装的编译器:
./configure \
--prefix=<hdf5_install_prefix> \
--enable-parallel \
--enable-shared \
CC=<openmpi_install_prefix>/bin/mpicc \
CXX=<openmpi_install_prefix>/bin/mpicxx \
FC=<openmpi_install_prefix>/bin/mpifort
make -j$(nproc)
make install
同理,ADIOS2的并行也是通过选项实现使用-DADIOS2_USE_HDF5=ON启用支持,在编译前为cmake配置环境变量即可:
export PATH=<cmake_install_prefix>/bin:$PATH
cmake /tmp/ADIOS2-2.10.2 \
-D CMAKE_INSTALL_PREFIX=<adios2_install_prefix> \
-D CMAKE_C_COMPILER=<gcc_install_prefix>/bin/gcc \
-D CMAKE_CXX_COMPILER=<gcc_install_prefix>/bin/g++ \
-D CMAKE_Fortran_COMPILER=<gcc_install_prefix>/bin/gfortran \
-D MPI_C_COMPILER=<openmpi_install_prefix>/bin/mpicc \
-D MPI_CXX_COMPILER=<openmpi_install_prefix>/bin/mpicxx \
-D MPI_Fortran_COMPILER=<openmpi_install_prefix>/bin/mpifort \
-D ADIOS2_USE_HDF5=ON \
-D ADIOS2_USE_MPI=ON \
-D ADIOS2_USE_ZeroMQ=OFF \
-D HDF5_ROOT=<hdf5_install_prefix> \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON
make -j$(nproc)
make install
附:ADIOS2所有选项说明如下:
https://adios2.readthedocs.io/en/v2.10.2/setting_up/setting_up.html
g) FFTW编译与安装
FFTW可以编译单精度或者双精度两种类型库,在编译安装了一种类型后,通过修改选项的方式可以重新将另一精度库补充到安装目录。
./configure \
--prefix=<fftw_install_prefix> \
--enable-shared \
--enable-threads \
--enable-openmp \
CC=<gcc_install_prefix>/bin/gcc
make -j$(nproc)
make install
若需要额外编译单精度版,只需添加选项--enable-float即可。
二、应用安装
注:在应用编译时通常需要使用到cmake,故可以将cmake添加到环境变量中:
export PATH=<cmake_install_prefix>/bin:$PATH
此外,在编译阶段通过直接指定绝对路径的方式选择依赖或工具,通常不再需要额外配置环境变量,但是在运行工具时需要补充相对应的环境变量,例如:
export LD_LIBRARY_PATH=\
<gcc_install_prefix>/lib64:
<openmpi_install_prefix>/lib:
<fftw_install_prefix>/lib:
<adios2_install_prefix>/lib64:
<cuda_install_prefix>/lib64:
$LD_LIBRARY_PATH
亦或者以模块方式加载这些依赖或工具。
1. GROMACS
GROMACS编译时可以显式启用CUDA,在实际使用时能在没有GPU的节点上自动使用CPU,且不会报错,故无需编译两个不同版本。
cmake .. -DGMX_MPI=ON \
-DGMX_BUILD_OWN_FFTW=ON \
-DGMX_GPU=CUDA \
-DCUDA_TOOLKIT_ROOT_DIR=<cuda_install_prefix> \
-DCUDA_INCLUDE_DIRS=<cuda_install_prefix>/include \
-DCUDA_CUDART_LIBRARY=<cuda_install_prefix>/lib64 \
-DCMAKE_INSTALL_PREFIX=<gromacs_install_prefix>
在构建完成后进行编译安装即可:
make -j$(nproc)
make install
