CudaSPONGE与PySAGES初步性能测试
技术背景
在前面的一篇博客中,我们介绍过CudaSPONGE的基础使用方法、CudaSPONGE调用Python接口函数以及CudaSPONGE结合增强采样软件PySAGES的使用方法。在这篇文章中,我们将介绍CudaSPONGE和PySAGES相结合的初步性能测试结果。
![](https://img2024.cnblogs.com/blog/2277440/202501/2277440-20250120154603670-881094536.png)
测试案例
我们沿用这一篇文章中的测试案例,对一个简单的多肽体系的两个二面角参数空间执行MetaDynamics增强采样方法:
![](https://img2024.cnblogs.com/blog/2277440/202501/2277440-20250120110904747-252270899.png)
我们的预期结果,在普通的NVT下,二面角的采样空间较为集中:
![](https://img2024.cnblogs.com/blog/2277440/202501/2277440-20250120111123859-361557245.png)
而加上PySAEGES的增强采样之后,理论上采样点可以均匀的遍布在整个采样空间:
![](https://img2024.cnblogs.com/blog/2277440/202501/2277440-20250120111448246-54983946.png)
这是我们对于这个采样结果的预期,其实图片内容也就是实际结果。但是本文主要侧重于性能测试,而我们的性能测试,就基于这个案例来开展。
调用逻辑
其实对于PySAGES来说,他们有自己的一套函数调用逻辑:把不同的MD软件作为Backend,由PySAGES来进行封装和调用,并且用于控制MD模拟的进行。所以如果按照PySAGES的调用逻辑来说,应该用这么一个框架来结合PySAGES和CudaSPONGE:
![](https://img2024.cnblogs.com/blog/2277440/202501/2277440-20250120111908752-1373851574.png)
但是因为CudaSPONGE主要基于CUDA-C开发,为了发挥更多的性能优势,CudaSPONGE也有自己的一套调用逻辑,结合PySAGES之后是这样的:
![](https://img2024.cnblogs.com/blog/2277440/202501/2277440-20250120112051733-799269886.png)
其实这个问题的本质就在于,以哪一种软件为核心。如果以PySAGES为核心,就是采用上面的一种交互形式。如果是以MD软件为核心,就是采用下面的这种形式。不过对于CudaSPONGE v1.4版本来说,因为提供的API有限,其实只能使用下面的这种调用形式,也就是以MD软件为核心的调用形式。本文所使用到的测试案例代码,都可以参考参考链接1中的内容。
MetaDynamics说明
关于MetaDynamics的原理,建议还是翻阅一下Parrinello组的原始文章《Escaping free-energy minima》。简单的来说就是,我们在一个定义好的序参量空间,每隔固定的MD步数,就施加一个高斯势,这部分的总和组成一个偏置势:
如果使用一个well-tempered来加速自由能面的收敛,那这个参数需要从一个常数变成一个随偏置势增长而逐渐减小的一个可变量:
这里PySAGES中的MetaDynamics就是用的这个增强采样方法,也是我们重点测试的方法对象。需要提及的是,虽然每隔固定的步数我们才会施加一个高斯势,但其实历史累积的高斯势的作用力一直都存在。所以,只要在MD过程中添加了MetaDynamics方法,就意味着每一步都需要计算一个序参量的值,及其对应的偏置势产生的偏置作用力。在很多情况下,偏置作用力的计算有可能会成为整个分子模拟过程的瓶颈部分。因此,MetaDynamics方法的性能至关重要。
初步测试数据
经过初步的测试,分别运行了2000、4000、6000、8000、10000个Step的NVT和Meta NVT,运行时长和Meta时长占比如下:
![](https://img2024.cnblogs.com/blog/2277440/202501/2277440-20250120152816877-374743689.png)
总结概要
接前一篇关于PySAGES结合CudaSPONGE使用方法的文章,本文主要还是使用了一样的测试案例。仅通过不同的测试步长,来定性的分析PySAGES的MetaDynamics实现方案结合MD软件之后的性能数据。
版权声明
本文首发链接为:https://www.cnblogs.com/dechinphy/p/sponge_ext_01.html
作者ID:DechinPhy
更多原著文章:https://www.cnblogs.com/dechinphy/
请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html
参考链接
本文作者:Dechin的博客
本文链接:https://www.cnblogs.com/dechinphy/p/18680969/sponge_ext_01
版权声明:本作品采用CC BY-NC-SA 4.0许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2021-01-20 使用line_profiler对python代码性能进行评估优化