macOS 安装 OpenMM 完整指南(Apple Silicon / Intel Mac)

20次阅读
没有评论

OpenMM 是一款高性能分子动力学模拟开源库,广泛用于生物分子模拟、自由能计算。macOS 下优先推荐 Conda 安装,源码编译适合有定制需求的用户。本文覆盖 M1/M2/M3 Apple Silicon 与 Intel Mac,包含环境搭建、验证、常见坑。

一、前置说明

  • Apple Silicon(M 系列):conda-forge 已经提供 osx-arm64 原生包,不再强制需要 Rosetta,优先使用原生 arm64 环境,速度更好Anaconda。
  • Intel Mac:osx-64 包,直接正常安装即可。
  • OpenMM 在 macOS 上没有 CUDA,只能使用 CPU / OpenCL 平台;Apple Silicon 可使用 OpenCL 调用 GPU 加速。
  • 建议:不要装在系统全局 Python,全部放在独立 conda 虚拟环境,避免污染系统依赖。

二、准备工作:安装 Miniconda / Miniforge

Miniforge 更适合 Apple Silicon,原生 arm64,推荐优先用 Miniforge。

1. 安装 Miniforge(M 系列推荐)

# 下载 arm64 版本 Miniforge
curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh
# 执行安装
bash Miniforge3-MacOSX-arm64.sh

一路回车,最后同意 conda init,关闭终端重新打开,让 conda 生效。

Intel Mac 替换安装包为:Miniforge3-MacOSX-x86_64.sh

2. 安装 Xcode Command Line Tools(必备)

xcode-select --install

弹出窗口点安装,提供 clang 编译器,后续不管 conda 还是源码编译都需要OpenMM。

三、方式一:Conda 安装(推荐,绝大多数用户)

1. 创建独立虚拟环境

# 创建环境,指定 Python 版本,3.10/3.11 兼容性最好
conda create -n openmm python=3.11
conda activate openmm

2. 从 conda-forge 安装 OpenMM

conda install -c conda-forge openmm

如果你需要配套工具,可一并安装:

conda install -c conda-forge openmmtools openmm-setup

3. 验证安装是否成功

python -m openmm.testInstallation

✅ 正常输出示例:

OpenMM Version: 8.5
Git Revision: xxx

There are 2 Platforms available:
1 Reference - Successfully computed forces
2 OpenCL - Successfully computed forces

All platforms passed!

只要至少有一个平台通过,就代表安装成功。

常见:M 系列会看到 Reference (CPU) + OpenCL,没有 CUDA,属于正常现象。

简单测试代码(新建 test_openmm.py)

from openmm import *
from openmm.app import *
from openmm.unit import *

# 最简单的水体系测试
pdb = PDBFile('water.pdb') # 可自行准备简单pdb,或者直接跑力场测试
forcefield = ForceField('amber14-all.xml', 'amber14/tip3p.xml')
system = forcefield.createSystem(pdb.topology, nonbondedMethod=PME, nonbondedCutoff=1*nanometer, constraints=HBonds)
integrator = LangevinMiddleIntegrator(300*kelvin, 1/picosecond, 0.004*picoseconds)
simulation = Simulation(pdb.topology, system, integrator)
simulation.context.setPositions(pdb.positions)
print("OpenMM 环境就绪")

四、方式二:源码编译(进阶,适合自定义编译 / 最新开发版)

适合需要开启特殊编译选项、拉取开发分支的用户,步骤更多,依赖 CMake。

1. 安装依赖(Homebrew)

brew install cmake swig doxygen

2. 拉取源码

git clone https://github.com/openmm/openmm.git
cd openmm
mkdir build && cd build

3. CMake 配置 + 编译安装

# cmake 配置,指定安装路径、Python 版本
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/openmm -DPYTHON_EXECUTABLE=$(which python)
make -j$(sysctl -n hw.ncpu)
make install

4. 配置 Python 绑定

# 把编译出来的 python API 加入环境变量
export PYTHONPATH=/usr/local/openmm/lib/python3.11/site-packages:$PYTHONPATH

把上面 export 写入 ~/.zshrc 永久生效,然后同样用 python -m openmm.testInstallation 验证。

五、Apple Silicon (M 系列) 常见踩坑

  1. 安装出来是 osx-64 包,跑在 Rosetta 下 检查终端架构: arch 如果输出 i386,说明终端是 Rosetta 模式。 解决:右键终端 → 显示简介 → 取消勾选 “使用 Rosetta 打开”,重启终端,再新建 conda 环境。
  2. OpenCL 平台报错 / 无法识别 GPU
    • 更新 macOS 系统版本;
    • 少数老 macOS 版本 OpenCL 驱动不稳定,可直接只用 Reference CPU 平台,牺牲速度换稳定性。
  3. conda 解析依赖很慢 conda config --add channels conda-forge conda config --set channel_priority strict 提前设置 channel 优先级,减少依赖求解耗时。
  4. Python 版本不匹配 OpenMM 对新版 Python 支持会滞后,优先选 3.10/3.11,尽量避开 3.12、3.13 最新版,容易出现依赖冲突。

六、性能小结

  • Apple Silicon:OpenCL 可以调用片上 GPU,相比纯 CPU Reference 有明显加速;没有 CUDA。
  • Intel Mac:只能 CPU 或 OpenCL,老 Intel Mac 性能一般。
  • 生产大规模模拟:macOS 更适合建模、调试、小规模测试;长时大规模 MD 建议 Linux 服务器。

七、卸载

conda deactivate
conda remove -n openmm --all

总结

macOS 上做分子动力学,Conda + conda-forge 是首选,一行命令即可完成 OpenMM 安装,开箱即用。M 系列芯片现在原生 arm64 包已经成熟,不再需要 Rosetta 迂回安装,只需要注意终端架构和 Python 版本选择。源码编译仅推荐开发、定制化场景。

官方文档参考:https://docs.openmm.org/latest/userguide/application.html

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码