4.4 KiB
4.4 KiB
title, date, tags, collections, summary, draft, featured
| title | date | tags | collections | summary | draft | featured | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| 在 macOS 上编译安装 GROMACS 2025.2 | 2026-05-17 |
|
|
记录在 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.mdp、mix_two_mol_solv.gro 和 topol.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