“大自然并不友善”---在纪录世界各地瘟疫爆发过程的《逼近的瘟疫》一书中曾这样提过。埃博拉、HIV、沙拉……这些病毒我们曾谈之色变,地球在孕育生命的同时,危险也在悄悄潜伏,人类需要在病毒面前尽快找出可以攻克的药物。分子动力学模拟被广泛的应用在现代药物开发设计中,常被称为人类战胜病毒的“武器”。
想要了解生命活动过程并进行针对性的药物设计,仅仅知道病毒的基因序列是不够的,折叠成三维立体构像的活性蛋白质及相关复合物才是关键,通过研究和分析相关蛋白质,找到可以和药物分子有特异性相互作用的靶点,才能最终成功开发出可以治疗这项疾病的药物。
分子动力学模拟可以通过计算原子之间的相互作用,求解牛顿方程,来模拟体系中原子和分子的运动,它所产生的丰富构像是解释生命活动现象、设计药物分子所不可或缺的重要手段。
图一:药物设计开发过程(图片来源于Nature)
分子动力学模拟对高性能计算的需求
在分子动力学模拟中,一般需要模拟微秒级或毫秒级的病毒或肿瘤蛋白折叠过程才能积累到足够的样本量,因此必须要用到高性能计算来进行分子动力学模拟。从下图我们可以看出分子动力学模拟对高性能计算的需求,美国俄亥俄州超算中心奥克利超级计算机的数据显示Gromacs和NAMD两大分子动力学模拟应用已经占到了其运行机时的25%。
图二:奥克利超级计算机机时占用情况
从理论入手进行分子动力学模拟优化
但是,计算过程中各节点的间的通讯、负责均衡等问题都会对高性能计算在分子动力学模拟中的应用产生影响。那么,分子动力学模拟程序应该如何优化和加速呢?我们可以先看一下它的理论基础。
在分子动力学模拟中,体系原子的一系列位移是通过对牛顿运动方程积分得到的,其结果是一条运动轨迹,它表明了系统内原子的位置与速度如何随时间而发生变化。通过解牛顿第二定律的微分方程,可以获得原子的运动轨迹,为了得到原子的运动轨迹,可以采用有限差分法来求解运动方程。有限差分法的基本思想就是将积分分成很多小步,每一小步的时间固定为 δt。用有限差分解运动方程有许多方法, 比较常见的有Leap-frog 算法和Velocity-Verlet 算法等。
实际案例:5步详解分子动力学模拟优化
下面,我们以一个25万原子数的体系为例子,借助浪潮自主研发的“天眼”高性能应用特征分析系统(简称浪潮天眼),来分析Gromacs(5.0版本)和NAMD(2.6版本)两个典型的分子动力学应用在运行同一算例时的运行特征。
该测试集群采用了浪潮NF5440M4刀片节点,单节点处理性能近1万亿次,支持AVX2.0指令集,单节点内存容量64GB DDR4,且充分发挥了“四通道内存”及“DDR4频率优势”,网络方面采用了国内领先的InfiniBand技术,网络带宽高达 56Gb/s。本次测试共计采用96计算核心。
管理节点 |
型号 |
Inspur 5280M4 |
CPU |
Intel(R) Xeon(R) CPU E5-2660v3 *2 |
|
内存 |
8GB*16, Samsung DDR4 2133MHz |
|
存储 |
2TB*8 SAS RAID 0 |
|
计算节点 |
型号 |
Inspur NX5440M4;20个 |
CPU |
Intel(R) Xeon(R) CPU E5-2680v3 *2 |
|
内存 |
8GB*8, Samsung DDR4 2133MHz |
|
磁盘 |
250G SSD |
|
网络 |
Infiniband FDR |
|
高性能计算服务平台 |
Cluster Engine |
|
高性能计算调优工具 |
浪潮“天眼”(TEYE)高性能应用特征分析系统 |
|
操作系统: |
RedHat Enterprise Linux 7.0 x86_64 |
测试集群配置
- CPU资源使用情况
下面两个图分别是Gromacs运行该算例时对某一个计算节点的CPU使用情况,和对应的CPI值,由于Gromacs运行过程中特征一致,因此我们截取了约25mins时间段内的数据进行分析。由于NAMD的特征和下图基本一致,在此处略去。
图三:浪潮天眼监测的Gromacs CPU资源使用情况
图四:浪潮天眼监测的CPI数据情况
从图三种可以看出CPU的使用率一直维持在100%,表明Gromacs和NAMD是计算密集型,而在图四上,可以看出其CPI数据维持在0.5左右,远低于1,因此进一步推断出Gromacs和NAMD应用具体属于浮点计算密集型。
对于浮点计算密集型的程序,主流优化的思路就是借助于CPU的单指令多任务(SIMD)指令集,特别是AVX和AVX2指令集。下图给出了几个常见的分子动力学模拟软件在E5-2600V3平台上使用AVX指令集和不使用AVX指令集时候的性能对比。
图五:使用AVX指令集和不使用AVX指令集性能对比图
从图五可以看出,使用AVX2指令集进行加速之后,NAMD、Gromacs和Lammps三个软件的性能均有所上升,其中以Gromacs的提升最大,提升了1.6倍左右。
- 内存使用情况
下图是浪潮天眼测试的Gromacs运行过程中的内存使用情况,其单一节点的内存使用在2GB左右,而运行同一算例的NAMD的单节点内存使用在4GB左右。
图六:浪潮天眼测试的Gromacs内存使用情况
考虑到大部分的分子动力学研究的计算规模都是10万-100万原子数规模,因此可以看出分子动力学模拟应用对内存容量的需求并不是很大。这也就是说,运行这一类应用时,一般的双路高性能服务器就可以满足其对内存的需求,并不需要使用胖节点。
- 内存带宽情况
下图是浪潮天眼依次给出的Gromacs和NAMD两个软件在运行时某一节点的内存带宽情况。可以看到,经过前几分钟的调整之后,总内存读写带宽(红线)均维持在一个较为稳定的值;其中Gromacs的值在13GB/s,NAMD的值在25GB/s左右。
图七:浪潮天眼监测的Gromacs内存带宽情况
图八:浪潮天眼监测的NAMD内存带宽情况
可以看出,在本测试算例中,两程序运行时对内存带宽的需求并不是特别大。但是,需要提到的是,内存带宽的大小是和算例规模有关系的,随着算例规模的增大,原子数的增多,程序对内存带宽的需求会变大。
- 网络通信情况
下面两个图依次是浪潮天眼测试的Gromacs和NAMD运行时的网络带宽情况,其中重合的红线和绿线分别对应IB网络的数据发送和数据接收。可以看出Gromacs运行时的网络通信带宽在300MB/s左右,而NAMD运行时的网络通信带宽则高达1000MB/s。
图九:浪潮天眼测试的Gromacs网络通信情况
图十:浪潮天眼测试的NAMD网络通信情况
除了网络带宽之外,从这两个图中我们也可以看出网络通信是一个持续的数据流,这也就意味着网络延迟(latency)也会对程序性能有较大影响,即低延迟的网络会对程序的性能有较好的提升作用。这也就意味着,在网络的选择方面,高带宽、低延迟的InfiniBand网络,是一个较好的选择。
- 磁盘读写
分子动力学程序在运行时只会输出对应的轨迹文件,而该文件的输出也是程序每运行几百时间步时追加写入一次,因此其在运行时对磁盘读写并没有什么特殊的需求。
分子动力学模拟计算集群配置方案建议
通过以上比较我们可以发现,即使是对于同样大小的体系,Gromacs和NAMD对计算资源的需求也是不一样的,NAMD需要相对更多的内存、内存带宽以及网络带宽,而不同的体系大小,也会体现出对计算资源需求的差异。
根据这些分子动力学模拟软件的普遍特点,我们也给出了如下的集群配置建议:(1)选择核心数更多,AVX频率更高的CPU,充分利用CPU的向量化浮点运算能力;(2)合理的搭配内存的数量和容量,虽然这些应用对内存容量的需求不高,但是有不小的内存带宽需求,因此建议单节点搭配不少于8条内存来充分满足应用的内存带宽需求;(3)选择高带宽、低延迟的网络,当前市面上主流的Infiniband和OPA网络均是不错的选择。
浪潮在分子动力学模拟应用的调优优化方面有丰富的经验,通过浪潮天眼可以更全面、更精细的分析软件的运行特征,提供软硬一体化的全方位优化方案,目前浪潮在该领域的应用方案已经广泛的应用在了各高校和科研院所的相应领域的科学研究中。
原文发布时间为:2016-07-25
本文作者:李祥敬
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。
原文发布时间为:2016-07-22
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。