Files
2026-05-17 12:03:00 +08:00

4.4 KiB
Raw Permalink Blame History

title, date, tags, collections, summary, draft, featured
title date tags collections summary draft featured
在 macOS 上编译安装 GROMACS 2025.2 2026-05-17
GROMACS
macOS
分子动力学
分子模拟
记录在 macOS 上使用 GCC 12、OpenMPI、FFTW 和 OpenCL 编译安装 GROMACS 2025.2 的过程。 false false

在 macOS 上编译安装 GROMACS 2025.2

本文记录一次在 macOS 上编译 GROMACS 2025.2 的流程:使用 Homebrew 提供 GCC 12,自行编译 CMake、OpenMPI 和 FFTW,然后以 OpenCL + MPI 方式构建 GROMACS。

目录约定

源码压缩包统一放在 $SOFT_ROOT/compressed 下,安装结果放回各软件源码目录中的版本子目录。

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:

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

brew install gcc@12

后续命令使用 Homebrew 的 GCC 路径:

export CC=/opt/homebrew/bin/gcc-12
export CXX=/opt/homebrew/bin/g++-12

安装 CMake

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

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 编译器。

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 支持。

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 是否可执行:

"$GROMACS_HOME/bin/gmx_mpi"

CUDA 构建参考

如果是在 Linux + CUDA 环境下构建,可以参考下面的参数形态,按实际 CUDA、GCC 和安装目录调整路径:

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.mdpmix_two_mol_solv.grotopol.top 后,可以用 grompp 生成测试输入文件。

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