“大自然并不友善”---在紀錄世界各地瘟疫爆發(fā)過程的《逼近的瘟疫》一書中曾這樣提過。埃博拉、HIV、沙拉……這些病毒我們曾談之色變,地球在孕育生命的同時,危險也在悄悄潛伏,人類需要在病毒面前盡快找出可以攻克的藥物。分子動力學模擬被廣泛的應用在現(xiàn)代藥物開發(fā)設(shè)計中,常被稱為人類戰(zhàn)勝病毒的“武器”。
想要了解生命活動過程并進行針對性的藥物設(shè)計,僅僅知道病毒的基因序列是不夠的,折疊成三維立體構(gòu)像的活性蛋白質(zhì)及相關(guān)復合物才是關(guān)鍵,通過研究和分析相關(guān)蛋白質(zhì),找到可以和藥物分子有特異性相互作用的靶點,才能最終成功開發(fā)出可以治療這項疾病的藥物。
分子動力學模擬可以通過計算原子之間的相互作用,求解牛頓方程,來模擬體系中原子和分子的運動,它所產(chǎn)生的豐富構(gòu)像是解釋生命活動現(xiàn)象、設(shè)計藥物分子所不可或缺的重要手段。
圖一:藥物設(shè)計開發(fā)過程(圖片來源于Nature)
分子動力學模擬對高性能計算的需求
在分子動力學模擬中,一般需要模擬微秒級或毫秒級的病毒或腫瘤蛋白折疊過程才能積累到足夠的樣本量,因此必須要用到高性能計算來進行分子動力學模擬。從下圖我們可以看出分子動力學模擬對高性能計算的需求,美國俄亥俄州超算中心奧克利超級計算機的數(shù)據(jù)顯示Gromacs和NAMD兩大分子動力學模擬應用已經(jīng)占到了其運行機時的25%。
圖二:奧克利超級計算機機時占用情況
從理論入手進行分子動力學模擬優(yōu)化
但是,計算過程中各節(jié)點的間的通訊、負責均衡等問題都會對高性能計算在分子動力學模擬中的應用產(chǎn)生影響。那么,分子動力學模擬程序應該如何優(yōu)化和加速呢?我們可以先看一下它的理論基礎(chǔ)。
在分子動力學模擬中,體系原子的一系列位移是通過對牛頓運動方程積分得到的,其結(jié)果是一條運動軌跡,它表明了系統(tǒng)內(nèi)原子的位置與速度如何隨時間而發(fā)生變化。通過解牛頓第二定律的微分方程,可以獲得原子的運動軌跡,為了得到原子的運動軌跡,可以采用有限差分法來求解運動方程。有限差分法的基本思想就是將積分分成很多小步,每一小步的時間固定為 δt。用有限差分解運動方程有許多方法, 比較常見的有Leap-frog 算法和Velocity-Verlet 算法等。
實際案例:5步詳解分子動力學模擬優(yōu)化
下面,我們以一個25萬原子數(shù)的體系為例子,借助浪潮自主研發(fā)的“天眼”高性能應用特征分析系統(tǒng)(簡稱浪潮天眼),來分析Gromacs(5.0版本)和NAMD(2.6版本)兩個典型的分子動力學應用在運行同一算例時的運行特征。
該測試集群采用了浪潮NF5440M4刀片節(jié)點,單節(jié)點處理性能近1萬億次,支持AVX2.0指令集,單節(jié)點內(nèi)存容量64GB DDR4,且充分發(fā)揮了“四通道內(nèi)存”及“DDR4頻率優(yōu)勢”,網(wǎng)絡方面采用了國內(nèi)領(lǐng)先的InfiniBand技術(shù),網(wǎng)絡帶寬高達 56Gb/s。本次測試共計采用96計算核心。
CPU資源使用情況
下面兩個圖分別是Gromacs運行該算例時對某一個計算節(jié)點的CPU使用情況,和對應的CPI值,由于Gromacs運行過程中特征一致,因此我們截取了約25mins時間段內(nèi)的數(shù)據(jù)進行分析。由于NAMD的特征和下圖基本一致,在此處略去。
圖三:浪潮天眼監(jiān)測的Gromacs CPU資源使用情況
圖四:浪潮天眼監(jiān)測的CPI數(shù)據(jù)情況
從圖三種可以看出CPU的使用率一直維持在100%,表明Gromacs和NAMD是計算密集型,而在圖四上,可以看出其CPI數(shù)據(jù)維持在0.5左右,遠低于1,因此進一步推斷出Gromacs和NAMD應用具體屬于浮點計算密集型。
對于浮點計算密集型的程序,主流優(yōu)化的思路就是借助于CPU的單指令多任務(SIMD)指令集,特別是AVX和AVX2指令集。下圖給出了幾個常見的分子動力學模擬軟件在E5-2600V3平臺上使用AVX指令集和不使用AVX指令集時候的性能對比。