Add macOS GROMACS install note
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
---
|
||||
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
|
||||
```
|
||||
Reference in New Issue
Block a user