--- title: 在 macOS 上编译安装 GROMACS 2025.2 date: 2026-05-17 tags: [GROMACS, macOS, 分子动力学] collections: [分子模拟] summary: 记录在 macOS 上使用 GCC 12、OpenMPI、FFTW 和 OpenCL 编译安装 GROMACS 2025.2 的过程。 draft: false featured: false --- # 在 macOS 上编译安装 GROMACS 2025.2 本文记录一次在 macOS 上编译 GROMACS 2025.2 的流程:使用 Homebrew 提供 GCC 12,自行编译 CMake、OpenMPI 和 FFTW,然后以 OpenCL + MPI 方式构建 GROMACS。 ## 目录约定 源码压缩包统一放在 `$SOFT_ROOT/compressed` 下,安装结果放回各软件源码目录中的版本子目录。 ```bash export SOFT_ROOT=/path/to/biosoft export CMAKE_VERSION=4.0.2 export OPENMPI_VERSION=5.0.8 export FFTW_VERSION=3.3.10 export GROMACS_VERSION=2025.2 export CMAKE_HOME="$SOFT_ROOT/cmake-$CMAKE_VERSION/v$CMAKE_VERSION" export OPENMPI_HOME="$SOFT_ROOT/openmpi-$OPENMPI_VERSION/v$OPENMPI_VERSION" export FFTW_HOME="$SOFT_ROOT/fftw-$FFTW_VERSION/v$FFTW_VERSION-float" export GROMACS_HOME="$SOFT_ROOT/gromacs-$GROMACS_VERSION/v$GROMACS_VERSION" ``` ## 安装 GCC 12 开始时尝试从源码编译 GCC 12.1.0: ```bash cd "$SOFT_ROOT" tar -zxf compressed/gcc-12.1.0.tar.gz cd gcc-12.1.0 ./contrib/download_prerequisites mkdir -p v12.1.0 build cd build ../configure \ --prefix="$SOFT_ROOT/gcc-12.1.0/v12.1.0" \ --enable-languages=c,c++ \ --disable-multilib ``` 本次 `make -j5` 编译未通过,实际改用 Homebrew 安装 GCC 12: ```bash brew install gcc@12 ``` 后续命令使用 Homebrew 的 GCC 路径: ```bash export CC=/opt/homebrew/bin/gcc-12 export CXX=/opt/homebrew/bin/g++-12 ``` ## 安装 CMake ```bash cd "$SOFT_ROOT" tar -zxf "./compressed/cmake-$CMAKE_VERSION.tar.gz" cd "cmake-$CMAKE_VERSION" mkdir -p "v$CMAKE_VERSION" ./bootstrap --prefix="$CMAKE_HOME" make -j5 make install ``` ## 安装 OpenMPI ```bash cd "$SOFT_ROOT" tar zxf "./compressed/openmpi-$OPENMPI_VERSION.tar.gz" cd "openmpi-$OPENMPI_VERSION" mkdir -p "v$OPENMPI_VERSION" build cd build export CC=/opt/homebrew/bin/gcc-12 export CXX=/opt/homebrew/bin/g++-12 ../configure --prefix="$OPENMPI_HOME" make -j5 make check make install ``` ## 安装 FFTW GROMACS 使用单精度 FFTW,因此这里打开 `--enable-float`,并使用 OpenMPI 提供的 `mpicc` 作为 C 编译器。 ```bash cd "$SOFT_ROOT" tar -zxf "./compressed/fftw-$FFTW_VERSION.tar.gz" cd "fftw-$FFTW_VERSION" mkdir -p "v$FFTW_VERSION" build cd build export CC=/opt/homebrew/bin/gcc-12 export MPICC="$OPENMPI_HOME/bin/mpicc" ../configure \ --prefix="$FFTW_HOME" \ --enable-float \ --enable-threads \ --enable-openmp \ --enable-mpi \ CC="$MPICC" \ CPPFLAGS="-I$OPENMPI_HOME/include" \ LDFLAGS="-L$OPENMPI_HOME/lib" \ LT_SYS_LIBRARY_PATH="$OPENMPI_HOME/lib" make -j5 make check make install ``` ## 安装 GROMACS macOS 上使用 OpenCL 构建 GPU 版本,并打开 MPI 支持。 ```bash cd "$SOFT_ROOT" tar zxf "./compressed/gromacs-$GROMACS_VERSION.tar.gz" cd "gromacs-$GROMACS_VERSION" mkdir -p "v$GROMACS_VERSION" build cd build export PATH="$OPENMPI_HOME/bin:$PATH" export CPPFLAGS="-I$FFTW_HOME/include" export LDFLAGS="-L$FFTW_HOME/lib" "$CMAKE_HOME/bin/cmake" .. \ -DGMX_GPU=OpenCL \ -DCMAKE_INSTALL_PREFIX="$GROMACS_HOME" \ -DGMX_MPI=ON \ -DCMAKE_C_COMPILER=/opt/homebrew/bin/gcc-12 \ -DCMAKE_CXX_COMPILER=/opt/homebrew/bin/g++-12 \ -DGMX_FFT_LIBRARY=fftw3 \ -DGMX_BUILD_OWN_FFTW=OFF \ -DMPI_C_COMPILER="$OPENMPI_HOME/bin/mpicc" make -j5 make check make install ``` 安装完成后可先确认 `gmx_mpi` 是否可执行: ```bash "$GROMACS_HOME/bin/gmx_mpi" ``` ## CUDA 构建参考 如果是在 Linux + CUDA 环境下构建,可以参考下面的参数形态,按实际 CUDA、GCC 和安装目录调整路径: ```bash export LD_LIBRARY_PATH="/path/to/gcc/lib64:$LD_LIBRARY_PATH" cmake .. \ -DREGRESSIONTEST_DOWNLOAD=ON \ -DGMX_GPU=CUDA \ -DCMAKE_INSTALL_PREFIX=/path/to/gromacs/install \ -DGMX_MPI=ON \ -DCMAKE_CUDA_ARCHITECTURES=89 \ -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc \ -DCMAKE_C_COMPILER=/path/to/gcc/bin/gcc \ -DCMAKE_CXX_COMPILER=/path/to/gcc/bin/g++ ``` ## 简单测试 准备好 `ions.mdp`、`mix_two_mol_solv.gro` 和 `topol.top` 后,可以用 `grompp` 生成测试输入文件。 ```bash cd /path/to/gromacs-test "$GROMACS_HOME/bin/gmx_mpi" grompp \ -f ions.mdp \ -c mix_two_mol_solv.gro \ -p topol.top \ -o ion.tpr ```