999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

GROMACS軟件并行計算性能分析①

2016-02-20 06:51:28張寶花
計算機系統(tǒng)應用 2016年12期
關鍵詞:體系優(yōu)化

張寶花, 徐 順

(中國科學院計算機網絡信息中心 超級計算中心, 北京 100190)

GROMACS軟件并行計算性能分析①

張寶花, 徐 順

(中國科學院計算機網絡信息中心 超級計算中心, 北京 100190)

分子動力學模擬是對微觀分子原子體系在時間與空間上的運動模擬, 是從微觀本質上認識體系宏觀性質的有力方法. 針對如何提升分子動力學并行模擬性能的問題, 本文以著名軟件GROMACS為例, 分析其在分子動力學模擬并行計算方面的實現(xiàn)策略, 結合分子動力學模擬關鍵原理與測試實例, 提出MPI+OpenMP并行環(huán)境下計算性能的優(yōu)化策略, 為并行計算環(huán)境下實現(xiàn)分子動力學模擬的最優(yōu)化計算性能提供理論和實踐參考. 對GPU異構并行環(huán)境下如何進行MPI、OpenMP、GPU搭配選擇以達到性能最優(yōu), 本文亦給出了一定的理論和實例參考.

分子動力學模擬; GROMACS; 并行計算

2013年的諾貝爾化學獎授予了Martin Karplus、Michael Levitt和Arieh Warshel三位理論化學家, 以肯定他們在 “開發(fā)多尺度復雜化學系統(tǒng)模型”方面所做的貢獻. 他們發(fā)展了大量分子動力學(MD: Molecular Dynamic)模擬基本理論和計算方法, 實現(xiàn)了更好地通過微觀相互作用研究體系的宏觀性質. 這一類強有力的計算化學方法滲透于迅速發(fā)展的分子生物學、生物信息學和生物物理學等前沿交叉學科, 同時逐漸形成一系列典型計算與模擬軟件, 包括: GROMACS、NAMD、LAMMPS、AMBER、CHARMM等[1-5]. 高性能并行計算技術應用于分子動力學模擬, 使得體系模擬能夠在更大空間尺度和時間尺度上進行. 比如GROMACS軟件的基礎框架設計就立足在高性能計算環(huán)境.

GROMACS是開源分子動力學通用軟件包, 面向百萬級甚至億萬級粒子體系的模擬[1]. 它具有多種并行模式: MPI、MPI+OpenMP、Thread-MPI, 還支持GPU等加速器的應用. GROMACS 4.6以后針對GPU kernel進行了重新設計, CPU和GPU的協(xié)調工作方式對計算性能變得更為敏感[6]. 針對MD模擬中的力場計算密集型任務, 它采用區(qū)域分解技術和動態(tài)負載均衡技術,并且計算長程作用力的任務(PME算法)能分類出獨立進程負責, 來加速優(yōu)化計算; 對于大規(guī)模粒子體系在并行計算時實行主區(qū)域分解技術(DD: Domain Decomposition)[7], Domain區(qū)域內的計算任務會映射到一個PP rank (Particle-Particle (PP) interaction MPI rank)上面. 在并行規(guī)模較大時, 還會將PME計算分配獨立的ranks以減少rank間的通訊量來提高并行計算效率[8]. GROMACS雖然能自動調節(jié)rank間的計算負載, 但要達到最佳計算性能還很困難.

GROMACS的計算性能除了硬件影響外, 還有安裝編譯方式和并行計算策略選擇方式的影響, 在硬性約束固定和軟件安裝編譯優(yōu)化之后, 此時并行計算策略的選擇對運行速度影響最為顯著. 并行策略方面可調節(jié)的方式有: 進程并行數、節(jié)點劃分、區(qū)域分解、作用力計算相關的PME/PP任務分配和GPU/CPU協(xié)調工作等. 這些是提升分子動力學模擬并行計算性能的關鍵因素, 對于GROMACS程序的終端用戶意義重大.準確高效地使用軟件, 不僅能夠節(jié)省時間, 更快獲取模擬計算結果加快科研進度, 而且由于硬件設備的高效使用能夠大幅節(jié)省計算成本. 但現(xiàn)實是: 軟件程序對于大多用戶來說仍然是個黑盒子, 不可避免地存在使用效率上的陷阱. 比如選擇何種并行模式? 如何合理分配MPI+OpenMP? 如何有效使用GPU加速卡能夠達到計算絕對性能最優(yōu), 同時不會造成硬件資源的隱形浪費? 這些都是用戶非常關注且迷惑的問題. 因此有必要對GROMACS的并行計算性能進行分析研究.

本文分析GROMACS軟件在分子動力學模擬并行計算方面的實現(xiàn)策略, 先闡述MD模擬中涉及計算方法的并行化設計與實現(xiàn)關鍵問題, 在原理和算法分析之后, 以最優(yōu)并行計算為目標, 提出CPU并行中如何調節(jié)并行計算優(yōu)化策略方案. 文中還討論了異構并行環(huán)境下GROMACS并行計算的實現(xiàn)原理, 并對GPU異構加速時計算性能調節(jié)給出了有益參考.

1 GROMACS并行計算優(yōu)化策略

GROMACS采用了MD模擬中的區(qū)域分解并行設計方式, 以MPI為主要的并行環(huán)境, 加入OpenMP和CUDA-GPU實現(xiàn)熱點并行加速計算. 為獲得最佳計算性能, 常需要綜合考慮不同的并行組合方式. 根據GROMACS軟件并行設計方式以及影響并行計算性能的分子作用力計算的問題, 針對 MPI搭配OpenMP線程并行方式我們提出相應的優(yōu)化策略方案, 并對存在GPU異構加速情況下并行優(yōu)化作探索.

1.1 非成鍵力計算與PME計算性能優(yōu)化

優(yōu)化GROMACS MD模擬關鍵在于優(yōu)化分子作用力的計算. 分子作用力大致分為: 成鍵力和非成鍵力,非成鍵力有范德華力和靜電場力等形式. 直接計算非成鍵力的復雜度為O(N2), N為體系的粒子數, 這也使得它成為并行優(yōu)化的關鍵問題. GROMACS采用PME(Particle Mesh Ewald, 包括LJ-PME)[9]算法來加速非成鍵力的計算, Ewald算法是PME的基礎, 在粒子數為N的周期性邊界體系中, 靜電勢能U可以表達為

其中靜電常量k是關于介電常數ε的量k=1/4πε, 而rij,n=|ri-rj+n|表示電荷粒子i和j在跨越鏡像格矢n間的真實距離, 鏡像格矢n=(nx,nv,nz), 添加*號表示當在原像中即n=(0,0,0)時排除i=j的情況. Ewald方法將慢收斂的式(1)轉換為兩個快收斂項和一個常數項

其中

實空間(direct space)表達式Udir中erfc為互補誤差函數, 倒易空間(reciprocal space)表達式Urec中V為模擬盒子的體積, 系數β同時出現(xiàn)在三項中用于調節(jié)它們計算的相對權重. 比如將β系數取較大值,Udir會相對于r收斂很快, 因此可以采用截斷r來減少其計算量, 而不影響計算精度. 實際上Ewald方法的計算復雜度仍然為O(N2), 而PME在計算Urec時引入了快速傅里葉變換操作加快了計算, 同時采用大β系數加快Udir收斂便于計算中使用截斷操作, 最終PME總體上計算復雜度達到了O(Nlog(N)), 在大體系模擬中加速性能顯著.

非成鍵力按照作用范圍分為短程和長程非成鍵力.短程非成鍵力(如靜電場計算Udir)在實空間計算, 長程非成鍵力(如靜電場計算Urec)常變換到倒易空間計算. PME算法是用于加速長程非成鍵力計算的一種常用方法, 其它類似算法還有Reaction Field方法等.

圖1 GROMACS中分子間作用力的分類

GROMACS中計算作用力主要分為兩大類(見圖1): PP rank, 包括成鍵相互作用和短程非鍵相互作用(對應于公式(2)中的Udir和U0), PP作用力計算的距離范圍閾值為rc(=max(rvdw,rcoulomb,rlist))[10]; PME rank, 包括長程非鍵相互作用(PME算法, 包括LJ-PME, 對應于公式2中的Urec). PME rank通過從PP實空間處理器獲取電荷、坐標等信息, 在倒易空間中進行柵格化和3D FFT及反演計算, 最后將計算得到的力、能量及維里等返回實空間處理[11]. PME和PP rank的任務多寡與負載均衡在并行模擬優(yōu)化時需著重考慮.

GROMACS使用純CPU計算時, PP和PME的計算可以在同一個rank上, 也可以將PME計算部分開辟一些獨立的ranks處理. 前一種方式由于PME計算需要大量的全局通訊, 隨著并行規(guī)模的增加, 通訊復雜度會大大增加, 因此只針對小并行規(guī)模模擬. 后一種方式可以降低通訊復雜度, 故適合大規(guī)模并行模擬.例如使用64個ranks時, 其中分配16個PME ranks, 其余48個為PP ranks, PP和PME ranks僅在需要的時候通訊, 大大降低了通訊的復雜度(PME ranks減少4倍,通訊量就會減少16倍), 尤其是在大規(guī)模并行時, 這種方法往往能大幅提高計算效率. GROMACS在12 ranks以上并行時, 會自動進行PME 獨立進程的劃分. 在實際模擬計算中, 還可以使用tune_pme (GROMACS 5.0版本以上)小工具來測算最佳的PME ranks和3D-FFT倒易空間三維網格格點數[12].

GROMACS程序實現(xiàn)了動態(tài)負載均衡, 通過在一定范圍內調節(jié)截斷半徑以及PME格點數及格點間距離來調節(jié)成鍵和非成鍵相互作用的計算任務來實現(xiàn).但這種調節(jié)必須建立在對體系充分分析并設定合理參數的前提下和對硬件合理分配的基礎上進行, 否則仍然會有大量負載不均衡的現(xiàn)象發(fā)生. GROMACS程序計算時, 由負載均衡導致的性能損失達到5%或以上時, 默認會自動開啟動態(tài)負載均衡.

1.2 OpenMP線程計算加速

在CPU節(jié)點內并行時, GROMACS可以使用兩種并行方式: 標準MPI方式和Thread-MPI并行方式. Thread-MPI并行方式是通過多線程機制模擬標準MPI方式實現(xiàn)的, 只限于節(jié)點內應用, 節(jié)點間并行模擬仍以標準MPI并行為主, 通過MPI通訊完成. 每一個MPI rank中, 可以開啟多個OpenMP線程加速. 需要注意的是: 在一定的可用核數時, 開啟OpenMP多線程并行, 由于硬件型號配置等原因, 計算速度不一定會提高[13].

1.3 GPU異構計算加速

GROMACS 使用GPU加速時(目前只支持Verlet方法計算)[14], 如圖2[6]所示, 在每一步的計算中, 短程非鍵相互作用計算會加載到一個或多個GPU卡上. CPU同時在處理成鍵相互作用和長程非鍵相互作用(PME, 包括LJ-PME), 這部分計算可以使用OpenMP線程加速計算[15]. 在每步模擬中, GPU端接收CPU端傳輸的鄰接列表、坐標和電荷等信息. GPU在計算短程非鍵相互作用時, 當有多個domain會分為local和nonlocal兩個stream處理, 得到短程非鍵計算力后再返回CPU端進行其他計算處理, 每隔10-50步由CPU端進行鄰接列表的更新. 因此, CPU和GPU之間的負載均衡對程序性能有很大的影響. 如果CPU和GPU任務分配不均, 就會造成一方超負荷運轉狀態(tài), 而另一方一直在空閑等待狀態(tài), 造成硬件資源的隱形消耗.而影響這種負載均衡的因素有三: 一是CPU和GPU硬件的絕對計算能力; 二是CPU和GPU的使用搭配,即CPU/GPU 比例; 三是計算體系的特征.

在實際計算中, GPU異構最佳并行模式與不同的硬件特征和運行體系相關. 例如對于一個非成鍵相互作用力計算量很大的體系, 假如配備的GPU性能非常強的話, 可以使用較少的CPU配備較多的GPU來達到這一目的, 但如果其他的CPU核心不能被其它任務所合理利用的話, 這樣勢必會造成硬件資源的閑置與浪費[16]. 因此, 在運行一個較大較長時間任務的時候, 應該先做一個小的測試來確定最佳的計算配置.

GROMACS的非成鍵相互作用力有三種并行計算方式, 如表1分別可以用-nb gpu/cpu/gpu_cpu選項指定,它們在計算非鍵相互作用力的方面各有側重. 使用哪一種方式計算取決于硬件特征和體系的計算特性.

圖2 GROMACS中GPU與CPU協(xié)調工作機制

表1 GROMACS計算相互作用力的三種并行計算類型

本文提出了CPU和GPU異構環(huán)境下的并行計算優(yōu)化策略:

1) 使用CPU并行環(huán)境模擬時, 我們將考慮影響性能的兩類主要因素: PP rank間任務負載不均衡對性能的影響; PME獨立rank對性能的影響. 并針對具體體系測試結果, 總結性給出計算性能高低判據和并行優(yōu)化策略方案.

2) 使用GPU異構并行環(huán)境模擬時, 我們將考慮影響性能的兩類主要因素: CPU/GPU配比, 通過測試找到最佳搭配比, 使資源利用和計算性能最大化; CPU端使用MPI進程和OpenMP線程加速, 通過測試找出合適的進程與線程分配, 為GPU異構并行環(huán)境下計算性能最大化提供實踐經驗參考.

2 實驗設計

2.1 運行環(huán)境

在中國科學院“元”超級計算機上安裝編譯GROMACS 5.1單精度浮點MPI版本, 并支持GPU加速. 采用了Intel C/C++ 2013_sp1.0.080版本編譯器, Intel MPI 4.1.3并行庫(支持了OpenMP線程并行), 鏈接了MKL高性能并行函數庫和fftw3.3.4函數庫, 采用了CUDA 6.0.37編譯器, 并針對AVX_256指令集進行了優(yōu)化.

2.2 模擬體系

我們選擇了兩個具有代表性的生物體系: 一個為均相蛋白體系3MGO(抗原表位多肽與人白細胞抗原復合物)[17], 另一個為膜蛋白體系DPPC(膽固醇-磷脂膜蛋白)[18], 兩個體系結構見圖3所示, 為突出計算核心部分已隱藏水分子.

圖3 3MGO(上)和DPPC(下)體系結構圖

表2顯示了3MGO和DPPC體系的模擬參數. 為了消除初始態(tài)對計算速度的影響, 我們先對體系進行一段MD平衡模擬, 選擇分子動力學統(tǒng)計平衡后的體系態(tài)作為我們算例測試的初始態(tài).

表2 3MGO和DPPC體系模擬參數表

當使用Verlet截斷方法計算時, 可以充分利用SSE、AVX 或CUDA, 且PP和PME rank都可以使用OpenMP線程加速. 當使用group截斷方法時, 只有PME rank可以使用OpenMP加速, 相對Verlet截斷方式并行計算程度低, 且在非鍵力計算時會出現(xiàn)能量漂移, 故這種情況本文暫不考慮[10].

2.3 并行計算方式

我們首先考慮純CPU并行計算, 先考慮節(jié)點內MPI+OpenMP如何搭配絕對性能最好, 之后對跨節(jié)點并行進行性能分析, 并給出性能影響因素和調優(yōu)方向.加入GPU加速卡后, 首先測試驗證節(jié)點內CPU/GPU最佳配比, 之后再多節(jié)點時考慮MPI+OpenMP+GPU異構的并行性能情況.

在大規(guī)模并行計算時, 我們首先采用程序自動評估PME獨立進程, 根據性能表現(xiàn)決定是否有必要手動調節(jié)PME獨立進程. 在運行時, 動態(tài)負載均衡默認打開, 可以調節(jié)PP任務間和PP/PME任務負載均衡.

“元”超級計算機CPU節(jié)點為雙路10核CPU, 共20個邏輯核心, 本文不考慮超線程情況, 因為這意味著兩個線程要共享一個單浮點數單元, 較大規(guī)模并行時性能并沒有帶來提升. 為方便表述, 在下文中, 我們均用Nrank表示MPI rank數量, Nth表示開啟的OpenMP線程數, Npme和Npp表示使用的PME和PP的rank數.

在本測試中, 由于長程非鍵力計算量較大, 而2塊GPU的計算性能相對20 CPU強, 當并行選項為“gpu_cpu”的情況時, 一部分CPU會模擬GPU的計算行為, 計算結果不甚理想. 因此我們僅考慮并行選項“-nb”為CPU和GPU的情況.

我們關注計算性能ns/day的變化, 每組數據都平行進行了至少3次測試取平均值, 以消除系統(tǒng)運行中網絡、內存及I/O等繁忙造成的不穩(wěn)定因素影響.

3 結果與討論

3.1 僅CPU并行方式

3MGO和DPPC體系節(jié)點內并行性能測試表明,當用滿一個節(jié)點的所有邏輯核心數20(即Nth×Nrank=20)時, 獲得的ns/day數值最高, 性能最好.因此, 在接下來的測試中選擇總的模擬核心數均為20n(n為節(jié)點數).

我們將從PP任務負載不均衡性和PP/PME任務比兩個方面來衡量計算性能是否優(yōu)良. PP任務負載不均衡率包括平均負載不均衡率(Avg. imb%)與每步力計算的不均衡率(Load imb%), 在模擬中會通過改變DD cell的尺寸來調節(jié)PP rank的負載, 還會受到體系各項異性的影響. 一般認為這兩個值越小越好, 在本測試中認為小于5%即為相對均衡(小規(guī)模并行時小于3%). PME/PP比值反映了PME和PP rank的任務分配是否均衡, 理想值為1, 即PME和PP rank的任務分配是完全均衡的. 在實際中, 由于網絡通訊等原因,實現(xiàn)PP-PME負載完全平衡幾乎是不可能的. 在本測試中認為小于此值在0.8-1.2之間相對均衡.

在較小并行規(guī)模時, PP rank間任務負載不均衡是導致性能損失的主要原因.

如圖4, 當計算節(jié)點為1時, 我們分別取Nrank為1、2、10、20, Nth為20/Nrank. 測試表明, 對于3MGO和DPPC體系, Avg. imb%與Load imb%均為1.2%以下,即每個rank的PP計算任務和每計算步所有力的計算都是相對均衡的. 由ns/day數值來看, 選取較大的Nrank數, 更有利于絕對性能提升. 如3MGO體系: 當Nrank為10和20時, ns/day分別為14.8和14.5. 而Nrank為1和2時, ns/day分別為13.8和13.5. DPPC體系結果相似.

當并行規(guī)模擴展到2個節(jié)點時, Nrank分別取2、4、20、40, 相應的Nth為 20、10、2、1. 如圖5所示, 2個節(jié)點計算結果與1個節(jié)點相一致, 當Nrank>Nth時, 絕對性能更優(yōu).

圖4 3MGO和DPPC體系在1個節(jié)點時的計算結果

值得注意的是, 當Nrank=4時, PP任務負載不均衡率導致的Avg. imb%較高, 由此造成了部分性能損失(DPPC體系為4, 3MGO為2.9), 這時如果我們調整Nrank與Nth的相對數值, PP任務負載不均衡現(xiàn)象就會得到改善, 計算性能將會得到提升. 如DPPC體系, 我們取Nrank為8, Nth為5時, Avg. imb%降低到了1.9%, 計算絕對性能提升了12%. 對于3MGO體系, 調節(jié)Nrank數為8后, 計算性能提升了6.4%.

圖5 3MGO和DPPC體系在2個節(jié)點時的計算結果

較大并行規(guī)模下, 除PP任務負載不均衡外, PP/PME的任務分配不均是導致性能損失的主要原因.

圖6 3MGO體系和DPPC體系在5個節(jié)點內計算結果

如圖6所示, 當并行規(guī)模達到5個節(jié)點時, Nrank分別取5、10、50和100, Nth分別為20、10、2和1, Nrank>=20時有獨立PME rank分配. 在較大并行規(guī)模下, PME/PP任務分配不均是導致并行性能損失的主要原因. 例如3MGO體系, 當Nrank=50時, GROMCAS核心程序mdrun自動估算的Npme=15, PME/PP比為1.37, 這說明PME的任務負載比PP rank多出37%, 絕對性能為48.3 ns/day. 當調整Npme=20時, PME/PP比為1.06, PP和PME任務分配均衡, 且PP rank內任務負載也相對均衡, 由此帶來絕對性能提升了19.3%. 當Nrank=100時, mdrun估算的Npme=28, PME/PP為1.67, 據對性能為47.73 ns/day. 當調整Npme=40時, PME/PP比為1.11, 由此帶來絕對性能提升了22.8%.

合適的PME rank數可以根據tune_pme小工具估算, 亦可根據前面小規(guī)模測試數據估算. 前一種方法掃描計算所有可能情況, 計算比較耗時. 本文使用后一種方法. 例如對于3MGO體系, 在單節(jié)點Nrank=20時, Npme=8, PME/PP=1.03, 任務分配比較均衡. 由此推算, Npme≈0.4Nrank, 當Nrank為50時, PME獨立rank數選擇20較為合適, 當Nrank為100時, PME獨立rank數選擇40較為合適, 在實際計算時, 還需要通過PME/PP比例確定調整的方向.

對于DPPC體系, 從圖6可以看出, 當Nrank(Npme)=100 (20)時, PME/PP任務分配不均(PME/PP=0.73)且PP任務負載不均衡率很高(Avg. imb%達到了32.5%), 當調整Npme=16時, PME/PP比值為1.03, PME和PP的任務分配已達到比較均衡, PP任務負載不均衡性亦得到了較大改觀(Avg. imb降低到了3.4%), 性能提升了9.8%. PP任務負載不均衡性高時,與小并行規(guī)模類似, 還可以調節(jié)Nrank和Nth的相對數值, 進行優(yōu)化, 例如當Nrank(Npme)=20(4)時, Avg. imb%降低到了3.8%, 絕對性能較Nrank(Npme)=100 (20)時候提升了20%.

另外, 負載不均衡情況都得到改善后, 與小規(guī)模并行情況相同, Nrank>Nth時, 計算的絕對性能更優(yōu). 因此為獲取最佳絕對計算性能, 在實際計算中盡量選擇較少的線程和較多的進程, 減少多線程開銷, 使Domain數據本地化, 減少Cache一致性開銷和socket間的通訊開銷.

綜上分析, 我們總結出了CPU并行時性能調優(yōu)的方向或判據, 如圖7所示.

圖7 CPU并行時性能調優(yōu)判據/方向圖

①當存在PME獨立rank, 且PME/PP比小于0.8或者大于1.2時, PME和PP任務分配不均衡較為明顯,需要調整Npme來調整PME和PP的任務分配 (Npme可通過小規(guī)模數據測算).

②當沒有Npme, 或PME和PP任務分配達到均衡時, 若PP rank內任務負載不均衡時(Avg. imb%<5%)通過調節(jié)增大Nrank和減少Nth的相對數值來減弱或消除不均衡性現(xiàn)象.

3.2 CPU與GPU異構并行方式

加入GPU卡后, 我們首先在單節(jié)點中測試CPU/GPU最佳配比(此處設定Nth=1, 先考察總核心數與GPU卡的最佳配比)

圖8展示了3MGO和DPPC單節(jié)點內 CPU/GPU配比測試結果, 其中紅色框使用了2個GPU, 綠色框使用了1個GPU, 結果表明在本測試硬件平臺上, 3MGO體系采用18 CPU+1 GPU計算的絕對性能優(yōu)于20 CPU+1 GPU, 我們推論本測試算例CPU/GPU的理論最佳配比約為18(對于DPPC體系, 最佳配比約為16), 限于節(jié)點CPU最大僅為20, 測試顯示用滿節(jié)點內所有CPU和GPU卡獲得的絕對性能最佳(3MGO為29.46 ns/day, DPPC為28.88 ns/day), 從使用者角度來講, 可以在同樣時間內模擬更多步數. 從硬件有效利用來看, 添加第二個GPU, 對于DPPC體系更加有利(DPPC絕對性能提升了75.6%, 3MGO性能提升了28.3%), 可以綜合考慮性能提升與硬件耗電造成的損失比重來決定全部用滿CPU和GPU或者選擇18CPU+ 1 GPU配比. 在本文中, 我們從使用者角度出發(fā), 選擇用滿節(jié)點內所有CPU和GPU卡. 在以下的計算中, 我們選擇的CPU/GPU均為20/2.

圖8 3MGO和DPPC單節(jié)點內 CPU/GPU配比測試

上面測試CPU端不考慮線程, 接下來我們加入OpenMP線程的影響, 加入GPU后, 由于異構并行的影響, PP rank任務負載很容易出現(xiàn)較大不均衡現(xiàn)象,因此我們只關注每步力的計算的負載均衡和計算的絕對性能. 在下面的測試中Load imb%均在2.5%以下,因此不做單獨記錄分析.

圖9 3MGO和DPPC體系多節(jié)點多線程測試數據圖

圖9 展示了兩個體系多節(jié)點多線程測試結果, 圖中隱藏了Nrank值, Nrank=20n/nth, n為節(jié)點數. 由圖知,隨著并行規(guī)模增大, 使用線程更有利于絕對性能的提升. 這是因為, 在較大并行度時, 使用進程和線程結合方式可以減少區(qū)域分解的數量和MPI ranks, 即間接減少了CPU-GPU-CPU之間的通訊開銷, 因此計算性能優(yōu)越性會逐漸顯現(xiàn). 但開啟多線程會有一定開銷,特別使對cache一致性開銷和socket間的通訊開銷, 線程并非開的越多越好. 根據圖9測試結果, 大規(guī)模并行時選擇線程數為2或5較為合適.

圖10 3MGO和DPPC體系CPU和GPU計算性能對比圖

值得注意的是, 當Nnode>1時, 由于每一個主機CPU計算時間比GPU計算時間慢(GPU的負載較少),增加MPI計算節(jié)點時, 使用GPU卡計算時性能會快速提高, 但在計算節(jié)點持續(xù)增加后, CPU-GPU-CPU之間的通訊開銷也會增加, 因此如果計算節(jié)點繼續(xù)增加, 使用GPU的加速效果就會越來越不明顯(如3MGO體系從1節(jié)點到2節(jié)點并行效率近90%, 到10節(jié)點時效率下降到不足40%), 直至與CPU計算性能相近. 如圖10,加入GPU后, 相較于純CPU計算, 性能提升最高為2.4倍, 且隨著并行規(guī)模的增加, GPU的加速效果下降.

在本測試中, 我們僅考慮了‘-nb’為cpu/gpu兩種情況, 當短程非鍵相互作用相對長程非鍵相互作用力很多時(例如coulombtype=Reaction-field), 選擇‘-nb’為gpu_cpu模式可能會更好的改進性能, 這種情況我們會在以后的測試中進行討論.

4 總結

本文對GROMACS軟件在單純CPU和CPU/GPU異構并行計算環(huán)境下, 如何提升計算性能進行了較為深入的分析與研究. 對于單純的CPU并行方式, 負載均衡水平是一個重要的考察指標. 在低并行度時, 這種負載不均衡主要是PP rank任務負載的不均衡; 高并行度時, PME獨立rank與PP rank一起作用, PP/PME的任務分配不均是導致性能損失的主要原因. 測試結果顯示, 在總并行數N一定情況下, 采用較多的進程,較少的線程更有利于計算性能的提高. 使用CPU/GPU異構并行計算時, 著重考慮CPU和GPU的相對運算性能和配比, 需測試決定最佳的CPU/GPU配比. 在多個節(jié)點并行時候, 需要考慮CPU-GPU-CPU通訊開銷的影響以及線程開銷. 通過實例測試可得每個rank使用2-5個線程會提高絕對運算性能.

我們從原理闡述到實例討論, 為GROMACS的終端用戶提供了性能優(yōu)化的方向和依據, 幫助其更容易理解這個軟件黑盒子并行優(yōu)化機理, 乃至其它分子動力學模擬軟件.

1 Abraham MJ, Murtola T, Schulz R, Páll S, Smith JC, Hess B, Lindahl E. GROMACS: High performance molecular simulations through multi-level parallelism from laptops to supercomputers. Softwarex, 2015, 1-2: 19–25.

2 Brooks BR, Bruccoleri RE, et al. CHARMM: A program for macromolecular energy, minimization, and dynamics calculations. Journal of Computational Chemistry, 1983, 4(2): 187–217.

3 Nelson MT, Humphrey W, Gursoy A, Dalke A, Kalé LV, Skeel RD, Schulten K. NAMD: A parallel, object oriented molecular dynamics program. International Journal of High Performance Computing Applications, 1996, 10(4): 251–268.

4 Pearlman DA, Case DA, Caldwell JW, Ross WS, Iii TEC, Debolt S, Ferguson D, Seibel G, Kollman P. AMBER, a package of computer programs for applying molecular mechanics, normal mode analysis, molecular dynamics and free energy calculations to simulate the structural and energetic properties of molecules. Computer Physics Communications, 1995, 91(1): 1–41.

5 Plimpton S. Fast Parallel algorithms for short-range molecular dynamics. J Comp Phys, 1995, 117, 1–19.

6 http://www.gromacs.org/.

7 Hess B, Kutzner C, Van DSD, Lindahl E. GROMACS 4: Algorithms for highly efficient, load-balanced, and scalable molecular simulation. Journal of Chemical Theory and Computation, 2008, 4(3): 435–47.

8 Gruber CC, Pleiss J. Systematic benchmarking of large molecular dynamics simulations employing GROMACS on massive multiprocessing facilities. Journal of Computational Chemistry, 2011, 32(4): 600–606

9 Darden T, York D, Pedersen L. Particle mesh Ewald: An N·log(N) method for Ewald sums in large systems. The Journal of Chemical Physics, 1993, 98(12): 10089.

10 ftp://ftp.gromacs.org/pub/manual/manual-5.0.7.pdf.

11 Essmann U, Perera L, Berkowitz M L, Darden T, Lee H, Pedersen LG. A smooth particle mesh Ewald method. The Journal of Chemical Physics, 1995, 103(19): 8577–8593.

12 Abraham MJ, Gready JE. Optimization of parameters for molecular dynamics simulation using smooth particlemesh Ewald in GROMACS 4.5. Journal of Computational Chemistry, 2011, 32(9): 2031–2040.

13 http://www.gromacs.org/documentation/acceleration_and_ parallelization.

14 Grubmüller H, Heller H, Windemuth A, Schulten K. Generalized Verlet algorithm for efficient molecular dynamics simulations with long-range interactions. Molecular Simulation, 1991, 6(1-3): 121–142.

15 Pall S, Hess B. A flexible algorithm for calculating pair interactions on SIMD architectures. Computer Physics Communications, 2013, 184(12): 2641–2650.

16 Kutzner C, Páll S, Fechner M, Esztermann A, deGroot BL, Grubmüller H. Best bang for your buck: GPU nodes for GROMACS biomolecular simulations. Journal of Computational Chemistry, 2015, 36(26): 1990–2008.

17 Sun Y, Liu Q. Differential structural dynamics and antigenicity of two similar influenza H5N1 virus HA-specific HLA-A* 0201-restricted CLT epitopes. RSC Adv, 2014, 5(3): 2318–2327.

18 Chiu SW, Pandit SA, Scott H, Jakobsson E. An improved united atom force field for simulation of mixed lipid bilayers. The Journal of Physical Chemistry B, 2009, 113(9): 2748–2763.

Parallel Computing Performance Analysis on GROMACS Software

ZHANG Bao-Hua, XU Shun
(Supercomputing Center, Computer Network Information Center, CAS, Beijing 100190, China)

Molecule dynamic (MD) simulation is used for simulation of atomic systems. It is a powerful tool for understanding relationships between microcosmic nature and macroscopic properties. In view of the problem of how to improve the performance of parallel MD simulations, in this paper taking the famous GROMACS software as an example, we study its implementation strategy on parallel computing performance, combining with the key principles of MD and the results of test cases, and we propose optimization strategies of performance under MPI and OpenMP parallel environment. It can provide theoretical and practical reference for optimizing performance of MD software. In addition, we also study that in the GPU heterogeneous parallel environment how to tune MPI/OpenMP and GPU to obtain the best performance.

molecule dynamic simulation; GROMACS; parallel computing

中國科學院青年創(chuàng)新促進會(2016156);“一三五”規(guī)劃重點培育方向專項項目(CNIC_PY_1404)

2016-03-24;收到修改稿時間:2016-04-27

10.15888/j.cnki.csa.005471

猜你喜歡
體系優(yōu)化
超限高層建筑結構設計與優(yōu)化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優(yōu)化探討
關于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數”優(yōu)化運算——以2021年解析幾何高考題為例
構建體系,舉一反三
探索自由貿易賬戶體系創(chuàng)新應用
中國外匯(2019年17期)2019-11-16 09:31:14
基于低碳物流的公路運輸優(yōu)化
如何建立長期有效的培訓體系
“曲線運動”知識體系和方法指導
主站蜘蛛池模板: 国产va在线观看| 色婷婷成人| 91在线中文| 中文字幕乱妇无码AV在线| 久草网视频在线| 国内精品手机在线观看视频| 无码丝袜人妻| 亚洲天堂在线免费| 国产高清在线观看| 91精品人妻互换| 久久性视频| 亚洲国产精品人久久电影| 国产福利一区视频| 国产美女在线免费观看| 91成人免费观看| 久久人搡人人玩人妻精品| 亚洲国产日韩在线观看| 农村乱人伦一区二区| 精品久久人人爽人人玩人人妻| 欧美一级在线看| 精品综合久久久久久97超人| 亚洲永久色| 国产高清无码麻豆精品| 亚洲国产91人成在线| 丁香六月综合网| 日韩无码视频播放| 91啦中文字幕| 日韩福利视频导航| 五月天天天色| 亚洲AⅤ综合在线欧美一区| 久久久精品无码一二三区| 在线毛片免费| 欧美成人精品在线| 91在线中文| 无码网站免费观看| 国产成人一区二区| 国产迷奸在线看| 久久精品只有这里有| 中文字幕日韩久久综合影院| 欧美一级特黄aaaaaa在线看片| 国产精品v欧美| 一本无码在线观看| 国产高清不卡视频| 凹凸精品免费精品视频| 欧美成在线视频| 亚洲天堂视频在线观看免费| 日韩av资源在线| 人妻丰满熟妇av五码区| 婷婷色中文| 国产aaaaa一级毛片| 色婷婷电影网| 制服丝袜一区二区三区在线| 在线播放真实国产乱子伦| 超清无码熟妇人妻AV在线绿巨人| 无码精油按摩潮喷在线播放| a亚洲视频| 久久人体视频| 婷婷伊人五月| 亚洲美女一区| 久青草免费视频| 三上悠亚在线精品二区| 精品三级网站| 成人一级黄色毛片| 精品国产成人三级在线观看| 欧美区一区二区三| 亚洲人成网7777777国产| 亚洲国产理论片在线播放| 97国内精品久久久久不卡| 色综合手机在线| 婷婷综合色| 亚亚洲乱码一二三四区| 国产玖玖玖精品视频| 国产精品青青| 国产第四页| 免费一级毛片| 美女内射视频WWW网站午夜| 日本一本正道综合久久dvd | 精品国产香蕉伊思人在线| 国产电话自拍伊人| 亚洲人成网站色7799在线播放| 国产v精品成人免费视频71pao| 免费在线a视频|