计算化学公社

 找回密码 Forget password
 注册 Register
Views: 2539|回复 Reply: 11
打印 Print 上一主题 Last thread 下一主题 Next thread

[GROMACS] GROMACS-2025.0原生PLUMED和Colvars对比

[复制链接 Copy URL]

86

帖子

3

威望

1749

eV
积分
1895

Level 5 (御坂)

本帖最后由 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的压缩包,上传到指定位置。
  1. # tar -xzv  f fftw-3.3.10.tar.gz
  2. # cd fftw-3.3.10
  3. # module load gcc openmpi
  4. # ./configure --prefix=/opt/tool/fftw-3.3.10 --enable-float --enable-shared --enable-mpi --enable-sse --enable-sse2 --enable-avx --enable-avx2 --enable-avx512
  5. # make -j 20
  6. # make install
  7. # make clean
  8. # ./configure --prefix=/opt/tool/fftw-3.3.10 --enable-shared --enable-mpi --enable-sse2 --enable-avx --enable-avx2 --enable-avx512
  9. # make -j 20
  10. # make install
复制代码
     注:这里还编译了double和MPI版本的fftw库是因为PLUMED需要double版FFTW,MPI版本还可以为其他软件使用,如CP2K、VASP,一次编译,一劳永逸。Modulefile如下:
  1. #%Module

  2. conflict fftw

  3. set FFTW_HOME /opt/tool/fftw-3.3.10
  4. prepend-path PATH $FFTW_HOME/bin
  5. prepend-path LIBRARY_PATH $FFTW_HOME/lib
  6. prepend-path LD_LIBRARY_PATH $FFTW_HOME/lib
  7. prepend-path INCLUDE $FFTW_HOME/include
  8. prepend-path C_INCLUDE_PATH $FFTW_HOME/include
  9. prepend-path CPLUS_INCLUDE_PATH $FFTW_HOME/include
复制代码

1.2 PLUMED安装
      PLUMED压缩包在官方下载网页https://www.plumed.org/download下载,上传到指定位置。
  1. # tar -xzvf plumed-2.9.3.tgz
  2. # cd plumed-2.9.3
  3. # module load gcc openmpi fftw
  4. # ./configure --prefix=/opt/software/plumed-2.9.3 --enable-mpi --enable-modules=all --enable-fftw
  5. # make -j 20
  6. # make install
复制代码
     注:这里编译了MPI支持,可供CP2K等程序使用,或使用plumed driver分析轨迹时也可以并行加速。Modulefile如下:
  1. #%Module

  2. prereq     openmpi/5.0.3
  3. prereq     fftw/3.3.10
  4. conflict   plumed

  5. set            PLUMED_HOME          /opt/software/plumed-2.9.3
  6. prepend-path   PATH                 $PLUMED_HOME/bin
  7. prepend-path   LIBRARY_PATH         $PLUMED_HOME/lib
  8. prepend-path   LD_LIBRARY_PATH      $PLUMED_HOME/lib
  9. prepend-path   INCLUDE              $PLUMED_HOME/include
  10. prepend-path   C_INCLUDE_PATH       $PLUMED_HOME/include
  11. prepend-path   CPLUS_INCLUDE_PATH   $PLUMED_HOME/include
  12. setenv         PLUMED_KERNEL        $PLUMED_HOME/lib/libplumedKernel.so
  13. set-function   _plumed              { eval "$(plumed --no-mpi completion 2> /dev/null)" }
  14. 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如下:
  1. #%Module

  2. conflict   libtorch

  3. set            LIBTORCH_HOME        /opt/tool/libtorch-2.6.0
  4. prepend-path   PATH                 $LIBTORCH_HOME/bin
  5. prepend-path   LD_LIBRARY_PATH      $LIBTORCH_HOME/lib
  6. setenv         Torch_DIR            $LIBTORCH_HOME
复制代码
CUDA版本类似,修改LIBTORCH_HOME的位置即可。

1.4 GROMACS安装
      由于GROMACS-2025.0的PLUMED的CMake代码存在bug,CMake需要进行两次configuration,下一个版本应该会解决,详见GROMACS用户论坛GROMACS GitLab。这里给出我的安装步骤:
  1. CPU版本
  2. # module load cmake gcc libtorch
  3. # 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
  4. # 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
  5. # make -j 20
  6. # make install
复制代码
     GPU版本类似,添加对应编译选项即可。
      注1:若想编译Torch支持,须声明环境变量Torch_DIR:
  1. export Torch_DIR=/opt/tool/libtorch-2.6.0
复制代码
     注2:在编译阶段,不必指明PLUMED的位置,但在运行模拟时,须指明PLUMED的动态库位置,声明环境变量PLUMED_KERNEL:
  1. 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次取平均表现。
  • 无采样:
  1. $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 10000
复制代码
     34.9522 ns/day
  • PLUMED-Well-tempered-metaDynamics:
  1. $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 10000 -plumed *.dat
复制代码
     33.9346 ns/day
  • Colvars-meta-eABF:
  1. $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 10000
复制代码
     33.0652 ns/day

3.3 GPU加速模拟
      GPU加速模拟每次模拟运行200000步,每一组重复8次取平均表现。
  • 无采样:
  1. $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 200000
复制代码
     296.5873 ns/day
  • PLUMED-Well-tempered-metaDynamics:

  1. $ gmx mdrun -v -s *.tpr -ntmpi 1 -nsteps 200000 -plumed *.dat
复制代码
     276.8458 ns/day
  • Colvars-meat-eABF:
  1. $ 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步采一次样,得到的自由能图如下:
         
      注意到到利用这两种方法得到的图像不同,再观察一下模拟轨迹:
         
      可以观察到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配置文件见附件。若需要其他文件可以通过私信或邮件向我要。
pmf-test.tar.gz (692 Bytes, 下载次数 Times of downloads: 62)

评分 Rate

参与人数
Participants 6
威望 +1 eV +23 收起 理由
Reason
tink + 5
fhh2626 + 5 233333
JCenter + 3 谢谢分享
Lecly + 5 赞!
含光君 + 5 谢谢分享
sobereva + 1

查看全部评分 View all ratings

1657

帖子

5

威望

4558

eV
积分
6315

Level 6 (一方通行)

喵星人

2#
发表于 Post on 2025-2-16 13:35:11 | 只看该作者 Only view this author
这个PLUMD可以用OPES么

86

帖子

3

威望

1749

eV
积分
1895

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2025-2-16 13:59:50 | 只看该作者 Only view this author
喵星大佬 发表于 2025-2-16 13:35
这个PLUMD可以用OPES么

应该是可以的,见GROMACS关于PLUMED的说明,只要你编译的PLUMED支持,GROMACS就能用

21

帖子

0

威望

728

eV
积分
749

Level 4 (黑子)

4#
发表于 Post on 2025-2-17 09:29:03 | 只看该作者 Only view this author
为什么WT-metaD和metaD的区别如此夸张,我原来以为WT-metaD是更好的版本,几乎任何时候都可以用WT-metaD。但是根据您的结果,是否应该酌情考虑用还是不用WT

86

帖子

3

威望

1749

eV
积分
1895

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2025-2-17 10:10:08 | 只看该作者 Only view this author
本帖最后由 Dempey 于 2025-2-17 10:14 编辑
CrysW555 发表于 2025-2-17 09:29
为什么WT-metaD和metaD的区别如此夸张,我原来以为WT-metaD是更好的版本,几乎任何时候都可以用WT-metaD。 ...

我并没有比较metaD和WT-metaD,从原理上WT-metaD的收敛性要好于metaD,因为原始的metaD会访问我们不关心的高能区,WT-metaD每次沉积的高斯峰高可变,可以避免访问不关心的高能区,但有时我们就是为了获得高能区的信息,所以我觉得有时WT要慎重考虑。
而Colvars里更推荐的meta-eABF就能很好地都考虑进来,meta部分可以填谷,ABF部分可以削峰,总体加快采样速度,所以我现在也使用meta-eABF或WTM-eABF。

Fu et al. Acc. Chem. Res. 2019, 52 (11), 3254–3264

37

帖子

0

威望

633

eV
积分
670

Level 4 (黑子)

6#
发表于 Post on 2025-3-7 11:31:21 | 只看该作者 Only view this author
使用带有PLUMED功能的GROMACS,还需要下载PLUMED的吗?博主为啥在1.2还需要安装PLUMED?

86

帖子

3

威望

1749

eV
积分
1895

Level 5 (御坂)

7#
 楼主 Author| 发表于 Post on 2025-3-7 11:45:36 | 只看该作者 Only view this author
zhitengcheer 发表于 2025-3-7 11:31
使用带有PLUMED功能的GROMACS,还需要下载PLUMED的吗?博主为啥在1.2还需要安装PLUMED?

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.

50

帖子

0

威望

862

eV
积分
912

Level 4 (黑子)

8#
发表于 Post on 2025-3-31 20:31:23 | 只看该作者 Only view this author
GROMACS的原生PLUMED接口是在2025才有的吗,支持update-gpu吗

86

帖子

3

威望

1749

eV
积分
1895

Level 5 (御坂)

9#
 楼主 Author| 发表于 Post on 2025-3-31 21:36:13 | 只看该作者 Only view this author
16aDream 发表于 2025-3-31 20:31
GROMACS的原生PLUMED接口是在2025才有的吗,支持update-gpu吗

原生PLUMED接口是2025以上版本才有的,之前需要plumed patch,因为PLUMED的部分是在CPU上进行的,应该是不支持update gpu的

37

帖子

0

威望

633

eV
积分
670

Level 4 (黑子)

10#
发表于 Post on 2025-4-21 15:26:15 | 只看该作者 Only view this author
Dempey 发表于 2025-3-7 11:45
GROMACS的代码不包含PLUMED的部分,只是写了一些接口,实际用GROMACS跑PLUMED的时候需要PLUMED的kernel的 ...

谢谢博主的解答,另外我想请教,colvar已经集成到gromacs里所以不用其余额外的编译操作了对吗?

86

帖子

3

威望

1749

eV
积分
1895

Level 5 (御坂)

11#
 楼主 Author| 发表于 Post on 2025-4-21 15:57:32 | 只看该作者 Only view this author
zhitengcheer 发表于 2025-4-21 15:26
谢谢博主的解答,另外我想请教,colvar已经集成到gromacs里所以不用其余额外的编译操作了对吗?

是的,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

69

帖子

0

威望

873

eV
积分
942

Level 4 (黑子)

12#
发表于 Post on 2025-6-3 13:41:26 | 只看该作者 Only view this author
请问可以给出colvar对于测试2的配置文件吗?

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-14 01:56 , Processed in 0.805558 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list