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