阿里雲超算集諦優化GPU異構並行效能:GROMACS
作者:慕笛
“集諦”是一款內置於阿里雲彈性高效能運算(Elastic High Performance Computing,E-HPC)的雲上效能監控與分析引擎,支援叢集資源利用情況的實時監控和使用者作業執行情況的線上分析。對於採用GPU加速的異構計算應用場景,“集諦”除了監控節點host端資源外還能監控GPU device端的資源利用情況,給出GPU利用率、視訊記憶體利用率和PCI-E資料傳輸頻寬等效能指標隨時間的變化,幫助使用者更好得了解應用執行狀態,指導應用改進。
分子動力學(Molecular Dynamic,MD)模擬是一種基於經典牛頓力學建立分子結構模型,對分子及分子體系的結構和性質進行研究分析的計算機模擬方法,是人類開啟微觀運動世界的鑰匙。作為高效能運算領域的重要研究方向之一,分子動力學模擬在新材料研製、化學工業模擬、生物醫藥等多個領域被廣泛應用,相關研究成果多次入選美國三大工程獎之一的戈登貝爾獎。分子動力學模擬包含了大量分子間相互作用力的計算,計算過程密集且規整,因此非常適合使用CPU向量運算部件和GPU卡進行加速。目前主流的幾款分子動力學模擬軟體GROMACS、NAMD、LAMMPS均可以採用GPU卡來加速其核心計算過程。下圖給出的使用分子動力學模擬方法後得到的生物大分子構型的演變。
對GPU資源的充分利用是分子動力學軟體獲取理想模擬效率的關鍵。本文以GROMACS為例,使用“集諦”對其執行時效能特徵進行多方位展示,分析當前效能瓶頸,從而對軟體效能進行優化。
“集諦”GPU效能監控介紹
節點維度:“集諦”按照使用者選取的節點構造出多個座標平面,每個座標平面對應展示一個節點的GPU資源利用情況。其中,節點內不同GPU卡的效能資料以時間為橫軸展示在同一個座標平面內。這種節點維度的呈現方式有利於使用者對比節點內不同GPU卡間的負載情況。
指標維度:“集諦”根據使用者選取的GPU子裝置和效能指標構造出多個座標平面,每個座標平面對應展示某一GPU子裝置&某一效能指標上不同節點的效能表現,方便使用者對比節點間的GPU負載情況。
“集諦”指導GROMACS效能優化
本文在ecs.gn5例項(8 core,16 vCPU,120GB記憶體,2 P100)上執行分子動力學軟體GROMACS的GPU版本,並使用“集諦”監控軟體執行過程中的系統資源利用情況。
節點維度:
指標維度:
從上圖可以看出:
- CPU利用率持續保持在85%以上
- GPU利用率在45%到70%之間,並且波動較大
- GPU視訊記憶體利用率在25%左右
- GPU裝置PCI-E傳輸頻寬基本不超過2GB/s
由此可見,CPU端計算資源接近用滿,負載較重;而GPU端計算資源、視訊記憶體和PCI-E頻寬均未達到瓶頸,尚有進一步可用的空間。GROMACS軟體本身採用“CPU+GPU”的主從協同計算模式,CPU和GPU任一端的效能瓶頸都會拖慢軟體的整體效能。因此為了提升GROMACS的軟體執行效率,我們選擇將CPU端的PME計算過程進一步offload到GPU端。通過這種方式,我們在減少CPU端計算任務的同時又充分利用了GPU端的計算資源,從而使CPU和GPU兩端的計算負載更加均衡。完成該步優化後,我們再次使用“集諦”監控GROMACS執行過程中的系統資源利用情況。
節點維度:
指標維度:
從上圖可以看出,在將PME計算過程offload到GPU端之後:
- CPU利用率降到30%~35%之間
- GPU利用率基本穩定在70%以上,並且波動較小
- GPU視訊記憶體利用率提升到50%以上
- GPU裝置PCI-E傳輸頻寬達到3GB/s以上
- 相同任務量下,執行時間降為優化前的50%
由此可見,對於採用“CPU+GPU”主從加速模式的軟體,通過平衡CPU端和GPU端的計算負載,能夠大幅提升軟體的執行效率。
總結
集諦能夠從計算、記憶體、網路、磁碟、加速卡等方面系統地監控叢集資源的利用情況並系統地展示給使用者,方便使用者進行多方位地對比分析,幫助使用者迅速定位效能瓶頸,從而為使用者應用程式的改進提供指導。