摘要:一条 conda 命令装好 OpenMM 并验证四平台。本章按官方安装路径复刻加本机实测踩坑------镜像超时、PYTHONPATH 污染、CUDA 版本与驱动匹配、环境 CUDA 漂移,并给出装完后验证 GPU 真被用上的方法。
关键字 :OpenMM安装、conda、Linux、CUDA、GPU驱动、testInstallation、PYTHONPATH、环境配置
【官方来源】docs.openmm.org User Guide §2.2 Installing OpenMM【Linux 实测】Ubuntu 22.04 / conda-forge OpenMM 8.5.2 / 消费级 GPU(12 GB 显存) / 驱动 580.178.04(支持到 CUDA 13.0)
注:本章安装验证时环境 conda 解析的 CUDA 运行时为 12.9(≤ 驱动支持版,正常);环境 CUDA 版本以安装时 conda 实际解析为准,全文各章实测均以当时环境如实记录
1. 官方安装路径(两条)
【官方来源】原文要点:
OpenMM 用 pip 或 conda 安装。最简单的 conda 来自 Miniconda。源码编译也行,但很少人需要。
前提(官方原文逐条):
- 装 64 位 Python 3.x 的 Miniconda
- 想跑 GPU 的话先装厂商最新驱动:
- NVIDIA :https://www.nvidia.com/Download/index.aspx 下载最新驱动。CUDA 本体不用手装------安装 openmm 时自动带上
- AMD(Linux/Windows):装最新驱动 + HIP/ROCm(https://rocm.docs.amd.com)
- macOS:OpenCL 系统自带(10.10.3+)
路径 A:conda(本机用的)
【官方来源】
bash
conda install -c conda-forge openmm
新版 conda(≥4.8.4)会自动装"驱动支持的最新 CUDA 版本"的编译版。也可以钉死 CUDA 版本:
bash
conda install -c conda-forge openmm cuda-version=12
(12 换成你要的 CUDA 版本,官方为 CUDA 12 及以上出包。不同 CUDA 版本互不二进制兼容。)
路径 B:pip
【官方来源】
bash
pip install openmm
默认只含 OpenCL + CPU + Reference 三平台。要 CUDA 平台(有 NVIDIA 卡推荐装):
bash
pip install openmm[cuda12]
cuda13 也有。AMD 用户用 hip6 / hip7:
bash
pip install openmm[hip6]
2. 官方验证命令
【官方来源】
bash
python -m openmm.testInstallation
官方说明:确认 OpenMM 已装好、检查 GPU 加速是否可用(CUDA/OpenCL/HIP 平台)、验证所有平台给出一致结果。
【Linux 实测】Ubuntu 22.04 + 消费级 GPU 上运行结果(节选):
OpenMM Version: 8.5.2
Git Revision: ...
There are 4 Platforms available:
1 Reference - Successfully computed forces
2 CPU - Successfully computed forces
3 CUDA - Successfully computed forces
4 OpenCL - Successfully computed forces
Median difference in forces between platforms:
Reference vs. CPU: 6.3214e-06
Reference vs. CUDA: 6.7468e-05
Reference vs. OpenCL: 6.7875e-05
All differences are within tolerance. Platform tests have passed.
四个平台全部通过、力差异在容差内 = 安装成功。
3. 【Linux 实测】完整安装记录(含踩坑)
实际执行的命令
bash
# 1. 建环境(本机为避免镜像干扰加了 --override-channels)
conda create -n openmm python=3.11 -y --override-channels -c conda-forge
# 2. 安装 OpenMM
conda install -n openmm --override-channels -c conda-forge openmm -y
# 3. 验证
~/anaconda3/envs/openmm/bin/python -m openmm.testInstallation
【踩坑 1】清华镜像 HTTP 超时
.condarc 配了国内镜像时,conda create 可能连不上。两种解法:
bash
# 解法 A:单次绕过(推荐,不动全局配置)
conda create -n openmm python=3.11 --override-channels -c conda-forge -y
# 解法 B:临时禁用代理(如果你挂着代理)
【踩坑 2】Hermes/IDE 的 PYTHONPATH 污染
在 agent 沙箱或某些 IDE 里跑 conda env 的 python,PYTHONPATH 会被注入别的 Python 版本的 site-packages,造成 .so 二进制不匹配(典型报错 cannot import name '_imaging' from 'PIL' 或 numpy ABI 冲突)。解法:
bash
env -u PYTHONPATH ~/anaconda3/envs/openmm/bin/python your_script.py
普通终端不受影响。
【踩坑 3】CUDA 版本与驱动匹配
conda-forge 的 openmm 包自带 CUDA 运行时,不用单独装 cudatoolkit。但注意:
bash
nvidia-smi # 右上角 CUDA Version 显示驱动最高支持的 CUDA 版本(本机 580.178.04 → 13.0)
openmm 编译的 CUDA 版本 ≤ 驱动支持版本即可(本机装的是 12.9 编译版,13.0 驱动下正常跑)。若装了不兼容版本,testInstallation 里 CUDA 平台会失败或干脆不出现------此时按官方写法钉版本重装:conda install -c conda-forge openmm cuda-version=12。
【实测新坑·环境 CUDA 漂移】 (本系列写作后期真实发生)往环境里装其他 CUDA 生态包(如 openmm-torch)时,conda 可能连带把 cuda-version 升到比驱动新的版本 ------本机环境曾从 12.9 漂到 13.3(> 驱动 13.0),症状是 testInstallation 通过但跑 kernel 时报 CUDA_ERROR_UNSUPPORTED_PTX_VERSION 。修法:conda install -c conda-forge cuda-version=13.0 钉回(或钉回你原来在用的版本)。纪律:装完任何 CUDA 相关包都重验 kernel 真跑(第 04 章三步验证法)。
常用生态包安装(本系列实测配置)
第 15 章五插件 + 分析库的本机安装版本(全部 conda-forge 一条命令路线):
bash
conda install -n openmm -c conda-forge openmmtools openmm-plumed openmmforcefields \
openmm-torch openmm-ml matplotlib -y
【Linux 实测终态】openmm 8.5.2 + openmmtools 0.26.0 + openmm-plumed 2.1 +
openmmforcefields 0.15.1 + openmm-torch 1.5.1(cpu build)+ openmm-ml 1.5 + pytorch 2.10(CPU);
环境 CUDA 运行时经上面漂移事故后钉为 13.0(装插件前是 12.9,两者 kernel 均正常)。
openmm-torch 的 CUDA 变体 (cuda130py311 build)在 conda-forge 与 py311 pin 反复解算失败
(详见第 15 章实测记录)------CPU 版 TorchForce/MLPotential 功能完整,仅 ML 势无 GPU 加速;
ML 重度用户可开独立环境专门装 CUDA 栈。
4. 安装后检查 GPU 是否真被用上
【Linux 实测】三种确认方式:
python
# 方式 1:列出平台
import openmm as mm
for i in range(mm.Platform.getNumPlatforms()):
p = mm.Platform.getPlatform(i)
print(p.getName(), p.getSpeed())
# 有 CUDA 字样 = CUDA 平台在
# 方式 2:跑模拟时看 nvidia-smi
# 另开终端: watch -n1 nvidia-smi
# python 进程出现在进程列表 + 显存占用 = 真在用 GPU
# 方式 3:指定平台名(写错会报错,能过 = 平台存在)
platform = mm.Platform.getPlatform('CUDA')
5. 环境管理速查
bash
conda activate openmm # 激活
conda deactivate # 退出
conda remove -n openmm --all # 删环境
conda list -n openmm openmm # 看装的版本
下一篇:03 · 安装
系列导航 :本专栏 分子动力学模拟-OpenMM(35 章大百科:官方 User Guide / Tutorials / Cookbook / examples 全覆盖)
我的专栏
| 蛋白 / 抗体 / 多肽 / 核酸 | 分子模拟 / 动力学 / 对接 | 药物 / 设计 / 案例 | AI / Agent / 大模型 |
|---|---|---|---|
| 开源蛋白结构预测 | 分子模拟基础 | 小分子药物设计案例 | AI Agent系列 |
| 开源蛋白生成方法实践 | 分子动力学模拟-Amber | 蛋白药物设计案例 | 化学大模型 |
| 开源多肽设计模型 | 分子动力学模拟-Gromacs | 多肽药物设计案例 | 《AI Agent原理与实战》 |
| 开源多肽性质预测 | 分子动力学模拟-OpenMM | 开源小分子生成设计 | CADD中的机器学习模型 |
| DNA/RNA药物设计 | 結合自由能 | 开源药代动力学软件 | 高效计算配置 |
| siRNA药物设计模型 | UCSF DOCK系列 | 我胡师兄说药 | |
| ASO药物设计模型 | rDock系列 LeDock系列 gnina系列 |
