首页 > 编程语言 >CudaSPONGE与PySAGES初步性能测试

CudaSPONGE与PySAGES初步性能测试

时间:2025-01-20 16:09:38浏览次数:1  
标签:采样 MD MetaDynamics CudaSPONGE 测试 PySAGES

技术背景

在前面的一篇博客中,我们介绍过CudaSPONGE的基础使用方法CudaSPONGE调用Python接口函数以及CudaSPONGE结合增强采样软件PySAGES的使用方法。在这篇文章中,我们将介绍CudaSPONGE和PySAGES相结合的初步性能测试结果。

测试案例

我们沿用这一篇文章中的测试案例,对一个简单的多肽体系的两个二面角参数空间执行MetaDynamics增强采样方法:

我们的预期结果,在普通的NVT下,二面角的采样空间较为集中:

而加上PySAEGES的增强采样之后,理论上采样点可以均匀的遍布在整个采样空间:

这是我们对于这个采样结果的预期,其实图片内容也就是实际结果。但是本文主要侧重于性能测试,而我们的性能测试,就基于这个案例来开展。

调用逻辑

其实对于PySAGES来说,他们有自己的一套函数调用逻辑:把不同的MD软件作为Backend,由PySAGES来进行封装和调用,并且用于控制MD模拟的进行。所以如果按照PySAGES的调用逻辑来说,应该用这么一个框架来结合PySAGES和CudaSPONGE:

但是因为CudaSPONGE主要基于CUDA-C开发,为了发挥更多的性能优势,CudaSPONGE也有自己的一套调用逻辑,结合PySAGES之后是这样的:

其实这个问题的本质就在于,以哪一种软件为核心。如果以PySAGES为核心,就是采用上面的一种交互形式。如果是以MD软件为核心,就是采用下面的这种形式。不过对于CudaSPONGE v1.4版本来说,因为提供的API有限,其实只能使用下面的这种调用形式,也就是以MD软件为核心的调用形式。本文所使用到的测试案例代码,都可以参考参考链接1中的内容。

MetaDynamics说明

关于MetaDynamics的原理,建议还是翻阅一下Parrinello组的原始文章《Escaping free-energy minima》。简单的来说就是,我们在一个定义好的序参量空间,每隔固定的MD步数,就施加一个高斯势,这部分的总和组成一个偏置势:

\[V(s,t)=\int_0^td\tau w G\left[s,s(\tau)\right] \]

如果使用一个well-tempered来加速自由能面的收敛,那这个参数\(\omega\)需要从一个常数变成一个随偏置势增长而逐渐减小的一个可变量:

\[w(t)=\omega e^{-\frac{1}{\gamma -1}\beta V(s,t)} \]

这里PySAGES中的MetaDynamics就是用的这个增强采样方法,也是我们重点测试的方法对象。需要提及的是,虽然每隔固定的步数我们才会施加一个高斯势,但其实历史累积的高斯势的作用力一直都存在。所以,只要在MD过程中添加了MetaDynamics方法,就意味着每一步都需要计算一个序参量的值,及其对应的偏置势产生的偏置作用力。在很多情况下,偏置作用力的计算有可能会成为整个分子模拟过程的瓶颈部分。因此,MetaDynamics方法的性能至关重要。

初步测试数据

经过初步的测试,分别运行了2000、4000、6000、8000、10000个Step的NVT和Meta NVT,运行时长和Meta时长占比如下:

可以看到的是,Meta的运行时长目前可能要达到90%左右。当然,这里面影响的因素有很多,暂时还不确定性能表现与文章中描述不同的原因在哪里。因为这里面的数据传输都是使用的Dlpack进行转换,理论上可以做到Zero-Copy。不过性能后续可以再慢慢优化,就目前来说,使用PySAGES去开发一个增强采样方法,然后使用CudaSPONGE来运行分子动力学模拟的部分,开发成本相对来说是比较低的,并且获得的性能增益也不错。测试平台信息如下: ```txt GPU: RTX 3080Ti Jax: 0.3.25 Jaxlib: 0.3.25+cuda11.cudnn82 nvcc: 11.6.124 ```

总结概要

接前一篇关于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

参考链接

  1. https://www.cnblogs.com/dechinphy/p/18615556/pysages-sponge

标签:采样,MD,MetaDynamics,CudaSPONGE,测试,PySAGES
From: https://www.cnblogs.com/dechinphy/p/18680969/sponge_ext_01

相关文章

  • Playwright 国内安装加速指南:更换源并测试安装
    原文链接:Playwright国内安装加速指南作者:KTOPlaywright国内安装加速指南:更换源并测试安装引言Playwright是一个强大的自动化测试工具,支持多种浏览器(如Chrome、Firefox、WebKit)的自动化操作。然而,对于国内用户来说,安装Playwright时可能会遇到下载速度慢的问题,尤其......
  • 外中断引脚测试NVIC中断系统功能&USART程序设计
    文章目录一、STM32之NVIC中断系统二、外中断引脚测试NVIC中断系统功能三、STN32外设之USART四、USART程序设计&总结详解一、STM32之NVIC中断系统(一)、中断处理机制:NVIC的定义:NVIC又叫嵌套向量中断控制器,属于CM4内核。它控制着整个芯片中断相关的功能,是内核的一个外设......
  • 负载测试工具的选择与性能分析
    在现代软件开发中,负载测试已成为保证应用系统稳定性与可靠性的重要环节。无论是高并发的互联网平台,还是分布式微服务架构下的系统,负载测试都在确保系统在各种负载条件下能高效运转的过程中扮演着至关重要的角色。然而,面对市面上琳琅满目的负载测试工具,如何选择合适的工具并进......
  • wordpress插件本地测试
    1.本地搭建wordpress,以便测试wordpress网站安装的插件,避免在服务器上的插件不合适,卸载之后,会有冗余数据存在数据库中,影响网站性能。在本地搭建wordpress,使用的是USBWebserver,以下是具体操作流程:建站软件:USBWebserver快速搭建本地PHP环境.md·知月来/wordpress-码云-开源......
  • Invicti v25.1.0 for Windows - Web 应用程序安全测试
    Invictiv25.1.0forWindows-Web应用程序安全测试Invicti(formerlyNetsparker)|WebApplicationandAPISecurityforEnterprise请访问原文链接:https://sysin.org/blog/invicti/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgInvicti是一种自动化但完全......
  • 测试 | 车载智能座舱基础知识
    1.VAD(voiceactivitydetection)语音活动检测也称为静音检测,是用来判断用户是否已经说完话,然后通过结果判断是否进行回答。开始语音识别之前,把首尾端的静音切除,以防对后续步骤进行干扰。如果此时用户还没有说完话,就停止识别了开始回答,会造成理解不当,回答不精准的情况;但是如果......
  • 记一次常规的网络安全渗透测试
    前言上个月根据领导安排,需要到本市一家电视台进行网络安全评估测试。通过对内外网进行渗透测试,网络和安全设备的使用和部署情况,以及网络安全规章流程出具安全评估报告。本文就是记录了这次安全评估测试中渗透测试部分的内容,而且客户这边刚刚做过了一次等保测评,算一下时间这才几周......
  • 帝国CMS8.0测试版开源发布免费提供下载
    2025年1月18日10点28分44秒帝国发布了CMS8.0在帝国软件官网创建22周年之后,我们很高兴地宣布:帝国CMS8.0版发布了!    帝国CMS经历过19个版本更新,8.0是第20个版本。我们一直不断在实践中突破创新,帝国CMS7.5版让系统全面完善,功能更加强大实用,做精品中的精品。而帝国CMS8.0版则在......
  • 如何学习渗透测试?从零基础入门到精通(超详细),看完这一篇就够了
    作为一个新手,我怎么安排自己学习渗透测试?感觉渗透测试好难啊,从哪里学起?渗透测试知识点那么多,我到底应该先学习什么?我是转行从业者(有经验/没有经验),都要从头学起吗?今天,给大家做一个科普,同时,也为大家分享我的渗透学习之路,希望能对你有帮助。渗透测试门槛高不高泛舟网安这片海......
  • 软件测试常用的7种方法,最后一个是升职加薪关键!
    一般而言,软件测试方法分为黑盒测试、白盒测试、灰盒测试、静态测试、动态测试、手动测试、自动化测试和探索性测试等类型。【1】黑盒测试黑盒测试又称功能测试、数据驱动测试或基于需求规格说明书的功能测试。该测试方法验证被测对象使用质量及外部质量表现。采用黑盒测试方法,测......