计算化学公社
标题: GROMACS-2025.0原生PLUMED和Colvars对比 [打印本页]
作者Author: Dempey 时间: 2025-2-15 14:17
标题: GROMACS-2025.0原生PLUMED和Colvars对比
本帖最后由 Dempey 于 2025-3-17 08:46 编辑
GROMACS-2025.0原生PLUMED和Colvars对比
注:GROMACS-2025.1已发布,修复了PLUMED的CMake代码bug,编译PLUMED接口只需一次cmake命令即可。
前言
GROMACS在2月11日发布了2025.0版本,此版本更新了原生PLUMED支持(部分功能)、Pytorch产生的神经网络势模拟、残基类型定义CMAP、gmx hbond指定氢键供受体等功能,详细信息查看相应网站。GROMACS在2024版本支持了Colvars,目前Colvars和PLUMED是自由能采样的软件,本文从软件安装开始,测试GROMACS进行metaDynamics(PLUMED)和meta-eABF(Colvars)任务的性能,并对比不同方法对采样结果的影响。
提前声明:本文中计算参数可能设置不合理,欢迎大家一起讨论。
1. 软件安装
1.0 前置软件
我管理的集群使用environment-modules管理软件,已经安装了openMPI、GCC、CUDA、CMake等基础软件。
1.1 FFTW库安装
GROMACS和PLUMED都可以链接FFTW库来提升计算性能,在FFTW官网https://fftw.org/下载3.3.10的压缩包,上传到指定位置。
- # tar -xzv f fftw-3.3.10.tar.gz
- # cd fftw-3.3.10
- # module load gcc openmpi
- # ./configure --prefix=/opt/tool/fftw-3.3.10 --enable-float --enable-shared --enable-mpi --enable-sse --enable-sse2 --enable-avx --enable-avx2 --enable-avx512
- # make -j 20
- # make install
- # make clean
- # ./configure --prefix=/opt/tool/fftw-3.3.10 --enable-shared --enable-mpi --enable-sse2 --enable-avx --enable-avx2 --enable-avx512
- # make -j 20
- # make install
复制代码 注:这里还编译了double和MPI版本的fftw库是因为PLUMED需要double版FFTW,MPI版本还可以为其他软件使用,如CP2K、VASP,一次编译,一劳永逸。Modulefile如下:
- #%Module
- conflict fftw
- set FFTW_HOME /opt/tool/fftw-3.3.10
- prepend-path PATH $FFTW_HOME/bin
- prepend-path LIBRARY_PATH $FFTW_HOME/lib
- prepend-path LD_LIBRARY_PATH $FFTW_HOME/lib
- prepend-path INCLUDE $FFTW_HOME/include
- prepend-path C_INCLUDE_PATH $FFTW_HOME/include
- prepend-path CPLUS_INCLUDE_PATH $FFTW_HOME/include
复制代码
1.2 PLUMED安装
PLUMED压缩包在官方下载网页https://www.plumed.org/download下载,上传到指定位置。
- # tar -xzvf plumed-2.9.3.tgz
- # cd plumed-2.9.3
- # module load gcc openmpi fftw
- # ./configure --prefix=/opt/software/plumed-2.9.3 --enable-mpi --enable-modules=all --enable-fftw
- # make -j 20
- # make install
复制代码 注:这里编译了MPI支持,可供CP2K等程序使用,或使用plumed driver分析轨迹时也可以并行加速。Modulefile如下:
- #%Module
- prereq openmpi/5.0.3
- prereq fftw/3.3.10
- conflict plumed
- set PLUMED_HOME /opt/software/plumed-2.9.3
- prepend-path PATH $PLUMED_HOME/bin
- prepend-path LIBRARY_PATH $PLUMED_HOME/lib
- prepend-path LD_LIBRARY_PATH $PLUMED_HOME/lib
- prepend-path INCLUDE $PLUMED_HOME/include
- prepend-path C_INCLUDE_PATH $PLUMED_HOME/include
- prepend-path CPLUS_INCLUDE_PATH $PLUMED_HOME/include
- setenv PLUMED_KERNEL $PLUMED_HOME/lib/libplumedKernel.so
- set-function _plumed { eval "$(plumed --no-mpi completion 2> /dev/null)" }
- complete bash plumed { -o default -F _plumed }
复制代码
1.3 LibTorch安装
LibTorch是PyTorch的C++前端,在Torch官网https://pytorch.org/get-started/locally/下载压缩包,注意选择Linux-LibTorch-C++/Java-CPU或Linux-LibTorch-C++/Java-CUDA,注意下载cxx11 ABI版本。
解压后移动到相应位置即可。Modulefile如下:
- #%Module
- conflict libtorch
- set LIBTORCH_HOME /opt/tool/libtorch-2.6.0
- prepend-path PATH $LIBTORCH_HOME/bin
- prepend-path LD_LIBRARY_PATH $LIBTORCH_HOME/lib
- setenv Torch_DIR $LIBTORCH_HOME
复制代码 CUDA版本类似,修改LIBTORCH_HOME的位置即可。
1.4 GROMACS安装
由于GROMACS-2025.0的PLUMED的CMake代码存在bug,CMake需要进行两次configuration,下一个版本应该会解决,详见GROMACS用户论坛和GROMACS GitLab。这里给出我的安装步骤:
- CPU版本
- # module load cmake gcc libtorch
- # cmake .. -DCMAKE_INSTALL_PREFIX=/opt/software/gromacs-2025.0 -DCMAKE_PREFIX_PATH=/opt/tool/fftw-3.3.10 -DGMX_USE_PLUMED=ON -DGMX_NNPOT=TORCH
- # cmake .. -DCMAKE_INSTALL_PREFIX=/opt/software/gromacs-2025.0 -DCMAKE_PREFIX_PATH=/opt/tool/fftw-3.3.10 -DGMX_USE_PLUMED=ON -DGMX_NNPOT=TORCH
- # make -j 20
- # make install
复制代码 GPU版本类似,添加对应编译选项即可。
注1:若想编译Torch支持,须声明环境变量Torch_DIR:
- export Torch_DIR=/opt/tool/libtorch-2.6.0
复制代码 注2:在编译阶段,不必指明PLUMED的位置,但在运行模拟时,须指明PLUMED的动态库位置,声明环境变量PLUMED_KERNEL:- export PLUMED_KERNEL=/opt/software/plumed-2.9.3/lib/libplumedKernel.so
复制代码
2. 测试平台
系统:Alma Linux 9.4
CPU:Intel(R) Xeon(R) Silver 4210
GPU:NVIDIA GeForce RTX 4060 Ti (16G显存)
3. 测试1——NANMA
3.1 测试体系
丙氨酸二肽NANMA的构象变化,两个二面角作为CV,COLVARS部分参照NAMD自由能计算教程—1、用eABF和meta-eABF进行多维自由能计算,PLUMED部分根据官网教程例子微调。
力场选用AMBER19SB,水模型是OPC,使用amber的tleap生成力场并用parmed转换成GROMACS格式,总原子数24k。
3.2 纯CPU模拟
因CPU模拟速度较慢,这里每次模拟仅运行10000步,每一组重复5次取平均表现。
- $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 10000
复制代码 34.9522 ns/day
- PLUMED-Well-tempered-metaDynamics:
- $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 10000 -plumed *.dat
复制代码 33.9346 ns/day
- $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 10000
复制代码 33.0652 ns/day
3.3 GPU加速模拟
GPU加速模拟每次模拟运行200000步,每一组重复8次取平均表现。
- $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 200000
复制代码 296.5873 ns/day
- PLUMED-Well-tempered-metaDynamics:
- $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 200000 -plumed *.dat
复制代码 276.8458 ns/day
- $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 200000
复制代码 296.7909 ns/day
3.4 性能测试分析
在无GPU加速时,自由能采样对性能的影响不明显,PLUMED性能下降了2.9%,Colvars性能下降了5.4%;在有GPU加速时,PLUMED性能下降了6.6%,Colvars性能几乎没有下降,甚至略微升高。
无采样时,GPU的利用率在72-74%,PLUMED采样的利用率为67-73%,Colvars的利用率在72-74%,由此可见,在进行自由能采样时Colvars的表现比PLUMED更好。这里对比不明显是因为体系略小,发挥不出GROMACS的优势,GPU没有跑满。
但值得一提的就是使用GROMACS的PLUMED原生接口比PLUMED程序给GROMACS源码打补丁的方式快了不少,但是原生接口还没有实现PLUMED的REMD等功能,可以期待一下,所以:对于常规使用GROMACS+PLUMED进行自由能采样的任务,应该使用新版GROMACS的原生接口。当然,喜欢接受新事物的可以转战Colvars,性能很可观。
3.5 采样结果
meta-eABF(Colvars)和WT-metaD(PLUMED)采样均模拟100 ns,模拟每500步采一次样,得到的自由能图如下:
(, 下载次数 Times of downloads: 73)
(, 下载次数 Times of downloads: 78)
注意到到利用这两种方法得到的图像不同,再观察一下模拟轨迹:
(, 下载次数 Times of downloads: 76)
(, 下载次数 Times of downloads: 75)
可以观察到WT-metaD方法对高能区的采样极其不充分,而meta-eABF对整个采样空间的采样都很充分。这表明对于同样的体系,参数设置合理的情况下,meta-eABF比WT-metaD更好收敛,花销更少。或许PLUMED除了WT-metaD外还有更好的采样方法,这里没有过多尝试,因为本文提到的两种增强采样方法是本人最常用的方法。
4. 测试2——新冠病毒受体结合域(RBD)与血管紧张素转化酶2(ACE2)
4.1 测试体系
新冠病毒RBD与ACE2蛋白的结合自由能,选取RBD和ACE2的几何中心距离为CV,使用Colvars进行meta-eABF采样,PLUMED进行Wt-metaD采样。
RCSB数据库6M0J,力场选用AMBER99SB-ILDN,水模型为TIP3P,使用gmx pdb2gmx生成力场,总原子数197k。
4.2 GPU加速模拟
因体系较大,每次模拟100000步,重复8次。
- 无采样:71.8059 ns/day
- PLUMED-Well-tempered-metaDynamics:67.6434 ns/day
- Colvars-meta-eABF:72.9930 ns/day
4.3 性能测试分析
在对稍大体系进行模拟时,无采样时GROMACS的GPU利用率可以达到97-99%,使用PLUMED增强采样时利用率在89-98%间浮动,而使用Colvars增强采样时利用率基本不变。使用PLUMED增强采性能下降5.7%,但使用Colvars基本无影响。
5. 总结
- GROMACS-2025.0版本CMake代码存在bug,若想编译PLUMED接口,需要进行两次cmake configuration。
- 对于指定集合变量的自由能采样方法meta-eABF(Colvars)和WT-metaD(PLUMED),meta-eABF表现更好(我个人也赞同fhh2626的私货:我个人认为在任何情况下都可以使用meta-eABF代替eABF和metadynamics。(NAMD自由能计算教程—1、用eABF和meta-eABF进行多维自由能计算)),且GROMACS使用Colvars几乎没有性能损失。
- 除了需要用PLUMED做REMD,其他情况都可以使用GROMACS的原生PLUMED接口与PLUMED联用,性能损失最小。
6. 相关文件
本测试所用Colvars和PLUMED配置文件见附件。若需要其他文件可以通过私信或邮件向我要。
(, 下载次数 Times of downloads: 64)
作者Author: 喵星大佬 时间: 2025-2-16 13:35
这个PLUMD可以用OPES么
作者Author: Dempey 时间: 2025-2-16 13:59
应该是可以的,见GROMACS关于PLUMED的说明,只要你编译的PLUMED支持,GROMACS就能用
作者Author: CrysW555 时间: 2025-2-17 09:29
为什么WT-metaD和metaD的区别如此夸张,我原来以为WT-metaD是更好的版本,几乎任何时候都可以用WT-metaD。但是根据您的结果,是否应该酌情考虑用还是不用WT
作者Author: Dempey 时间: 2025-2-17 10:10
本帖最后由 Dempey 于 2025-2-17 10:14 编辑
我并没有比较metaD和WT-metaD,从原理上WT-metaD的收敛性要好于metaD,因为原始的metaD会访问我们不关心的高能区,WT-metaD每次沉积的高斯峰高可变,可以避免访问不关心的高能区,但有时我们就是为了获得高能区的信息,所以我觉得有时WT要慎重考虑。
而Colvars里更推荐的meta-eABF就能很好地都考虑进来,meta部分可以填谷,ABF部分可以削峰,总体加快采样速度,所以我现在也使用meta-eABF或WTM-eABF。
(, 下载次数 Times of downloads: 67)
Fu et al. Acc. Chem. Res. 2019, 52 (11), 3254–3264
作者Author: zhitengcheer 时间: 2025-3-7 11:31
使用带有PLUMED功能的GROMACS,还需要下载PLUMED的吗?博主为啥在1.2还需要安装PLUMED?
作者Author: Dempey 时间: 2025-3-7 11:45
GROMACS的代码不包含PLUMED的部分,只是写了一些接口,实际用GROMACS跑PLUMED的时候需要PLUMED的kernel的库,所以要编译。The interface will look for an environment variable PLUMED_KERNEL that should contain the path and the name of a shared object that contains the PLUMED kernel, and usually is called libPlumedKernel.so.
作者Author: 16aDream 时间: 2025-3-31 20:31
GROMACS的原生PLUMED接口是在2025才有的吗,支持update-gpu吗
作者Author: Dempey 时间: 2025-3-31 21:36
原生PLUMED接口是2025以上版本才有的,之前需要plumed patch,因为PLUMED的部分是在CPU上进行的,应该是不支持update gpu的
作者Author: zhitengcheer 时间: 2025-4-21 15:26
谢谢博主的解答,另外我想请教,colvar已经集成到gromacs里所以不用其余额外的编译操作了对吗?
作者Author: Dempey 时间: 2025-4-21 15:57
是的,cmake时默认开启
GROMACS bundles the Colvars library in its source distribution. The library and its interface with GROMACS are enabled by default when building GROMACS. This behavior may also be enabled explicitly with -DGMX_USE_COLVARS=internal. Alternatively, Colvars support may be disabled with -DGMX_USE_COLVARS=none. How to use Colvars in a GROMACS simulation is described in the User Guide, as well as in the Colvars documentation.
GROMACS Installation guide
作者Author: 吹梦到西洲 时间: 2025-6-3 13:41
请问可以给出colvar对于测试2的配置文件吗?
欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |