文/張洋 陳文波 胡廣超
目前高性能計(jì)算應(yīng)用場(chǎng)景眾多,每種應(yīng)用需要不同的配套軟件環(huán)境和大量的系統(tǒng)依賴,如不同版本的操作系統(tǒng)、庫(kù)、編譯器等。如何在同一個(gè)平臺(tái)滿足各種不同的應(yīng)用,而且應(yīng)用之間互不干擾,是有效管理高性能計(jì)算平臺(tái),提高計(jì)算資源利用效率面臨的一個(gè)重要挑戰(zhàn)。傳統(tǒng)的虛擬化技術(shù)可以解決部署和維護(hù)的問(wèn)題,但是由于在計(jì)算上增加了額外的虛擬化負(fù)載,無(wú)法最大化利用機(jī)器的物理資源使其有效計(jì)算,所以不適合HPC應(yīng)用。
容器是一種能夠在隔離環(huán)境執(zhí)行應(yīng)用程序的軟件組件,它建立在宿主機(jī)操作系統(tǒng)之上并利用了宿主機(jī)的內(nèi)核,通過(guò)命名空間和 Cgroup 進(jìn)行資源的隔離和控制,是一種輕量級(jí)的虛擬機(jī)[1]。容器具有可移植性、可重復(fù)性、靈活性并快速啟動(dòng),相對(duì)于其他虛擬化技術(shù),物理性能損耗低,在資源隔離、彈性調(diào)度、額外的虛擬化負(fù)載等方面具有明顯技術(shù)優(yōu)勢(shì)。容器通過(guò)將運(yùn)行目標(biāo)軟件所需的計(jì)算環(huán)境的關(guān)鍵元素打包到輕量級(jí)虛擬框架中降低復(fù)雜性,同時(shí)不改變運(yùn)行所需的資源,讓軟件更容易使用,結(jié)果更容易復(fù)制[2]。利用容器技術(shù)可以讓HPC不同應(yīng)用進(jìn)行有效的隔離,解決傳統(tǒng)HPC應(yīng)用程序安裝、升級(jí)以及安裝包之間的依賴性等問(wèn)題,讓系統(tǒng)的部署和運(yùn)維變得更加有效。不僅如此,容器還保存了計(jì)算環(huán)境、數(shù)據(jù)和代碼,提高了實(shí)驗(yàn)的重復(fù)性。因此它可以在高性能計(jì)算場(chǎng)景廣泛使用和推廣。
Docker是一種較為成熟的容器技術(shù),它提供了一種分層的應(yīng)用鏡像管理機(jī)制,將復(fù)雜的軟件環(huán)境打包,易于維護(hù)和管理,廣泛應(yīng)用在很多云計(jì)算領(lǐng)域。但是由于HPC應(yīng)用需要“裸金屬”物理機(jī)性能,快速的網(wǎng)絡(luò)連接,可控制的資源調(diào)度和作業(yè)管理,可擴(kuò)展的并行文件系統(tǒng),集中化的軟件棧;而Docker存在一些缺陷,如調(diào)度管理器的資源限制無(wú)法施加到容器中,非root用戶使用授權(quán)問(wèn)題,MPI的應(yīng)用程序在Docker上性能不高,網(wǎng)絡(luò)棧對(duì)Docker私有導(dǎo)致對(duì)Infiniband不支持,這些都使得它在HPC領(lǐng)域應(yīng)用有諸多不便[3]。
Singularity是美國(guó)勞倫斯伯克利實(shí)驗(yàn)開(kāi)發(fā)的容器技術(shù)。它彌補(bǔ)了Docker容器的缺點(diǎn)如非root用戶使用權(quán)限、可以掛載本地的文件系統(tǒng)、OPA、Infiniband和OpenMPI的友好支持以及方便的鏡像文件遷移,而且用戶在容器外和容器內(nèi)的權(quán)限都是一樣[4]。由于出現(xiàn)的時(shí)間較短,它的社區(qū)以及鏡像市場(chǎng)沒(méi)有Docker成熟和豐富,目前Singularity在國(guó)外計(jì)算中心使用較多,如德克薩斯計(jì)算中心、弗羅里達(dá)大學(xué)、圣地亞哥超級(jí)計(jì)算中心、勞倫伯克利實(shí)驗(yàn)室、普渡大學(xué)、麻省理工、斯坦福、亞利桑那大學(xué)、佐治亞州大學(xué)、德國(guó)亥姆霍茲中心等。
CRCT輕量級(jí)虛擬化是聯(lián)科公司專為高性能計(jì)算環(huán)境設(shè)計(jì)和開(kāi)發(fā)的容器技術(shù),融合業(yè)界前沿的容器概念、前端展示技術(shù)、高性能計(jì)算技術(shù)。可兼容高性能計(jì)算環(huán)境中常見(jiàn)的各種專用硬件設(shè)備,如Infiniband/OPA等,全面兼容Docker所采用的鏡像格式,可以在完全不改變用戶使用習(xí)慣的情況下,支持超大規(guī)模的并行計(jì)算。它通過(guò)init為入口運(yùn)行完整的操作系統(tǒng),支持多節(jié)點(diǎn)分布式集群的創(chuàng)建,容器內(nèi)虛擬集群的作業(yè)調(diào)度。不僅為科研計(jì)算用戶提供傳統(tǒng)計(jì)算中心提供的強(qiáng)大計(jì)算力,還提供根據(jù)實(shí)際應(yīng)用程序所需的、用戶可自定義的、動(dòng)態(tài)切換的計(jì)算環(huán)境,以及從算例、算法到數(shù)據(jù)的全方位服務(wù)。
我們選取CRCT容器方案,并在華為公有云上部署由一臺(tái)登錄節(jié)點(diǎn)和五臺(tái)計(jì)算節(jié)點(diǎn)組成的高性能計(jì)算集群上進(jìn)行五組應(yīng)用的測(cè)試。每個(gè)節(jié)點(diǎn)提供2顆Intel Xeon Gold SkyLake 6100系列 CPU,每顆CPU提供3.0GHz主頻,18Core的高性能CPU,192GB DDR4 2666MHz內(nèi)存,1顆1.6TB NVMe SSD硬盤(pán),計(jì)算網(wǎng)絡(luò)采用100Gb/s的EDR網(wǎng)絡(luò)接口。
五種應(yīng)用分別是高性能計(jì)算領(lǐng)域常用的Matlab、VASP、WRVF、PISM和COMOSOL。我們分別在CRCT容器環(huán)境和“裸金屬”物理環(huán)境部署上述五種軟件,通過(guò)具體算例的運(yùn)行時(shí)間(秒)來(lái)觀察兩種環(huán)境下五種并行軟件的計(jì)算性能及容器的性能損耗。其中WRF、VASP和PISM三種軟件可以實(shí)現(xiàn)多節(jié)點(diǎn)并行計(jì)算,Matlab、Comosol實(shí)現(xiàn)單節(jié)點(diǎn)多核并行。
1. Matlab
Matlab是一款商業(yè)數(shù)學(xué)軟件,用于算法開(kāi)發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境。本次計(jì)算Kuromoto-Sivashinsky方程的李指數(shù)及其對(duì)應(yīng)的李雅普諾夫熵,測(cè)試結(jié)果見(jiàn)表1。
表1
2. WRF應(yīng)用
WRF全 稱Weather Research and Forecasting Model, 是一個(gè)天氣研究與預(yù)報(bào)模型,以作為全球模式進(jìn)行天氣預(yù)報(bào),也可以作為區(qū)域模式進(jìn)行天氣現(xiàn)象的數(shù)值模擬。本次測(cè)試采WRF- Chem模式測(cè)試2010年8月1日到30日發(fā)生在青藏高原地區(qū)的一次深對(duì)流過(guò)程,通過(guò)對(duì)臭氧、水汽、CO等物質(zhì)的傳輸特征進(jìn)行分析,研究亞洲夏季風(fēng)期UTLS區(qū)域的STE特征,測(cè)試結(jié)果見(jiàn)表2。
表2
3. PISM
PISM為冰川計(jì)算模型,本次測(cè)試模擬格林蘭島過(guò)去和現(xiàn)在的冰蓋演化情況,根據(jù)氣候記錄給出合適的約束條件( 底部狀況、 表面溫度、積累率等約束參數(shù)) 可以得到冰蓋演化過(guò)程中一系列動(dòng)態(tài)參數(shù)(冰內(nèi)各處溫度、冰流速度、壓力、等時(shí)冰層深度變化、觸地線進(jìn)退等變化信息)。測(cè)試結(jié)果見(jiàn)表3。
表3
4. VASP分子動(dòng)力學(xué)模擬軟件包
VASP是維也納大學(xué)Hafner小組開(kāi)發(fā)的進(jìn)行電子結(jié)構(gòu)計(jì)算和量子力學(xué)-分子動(dòng)力學(xué)模擬軟件包。它是目前材料模擬和計(jì)算物質(zhì)科學(xué)研究中最流行的商用軟件之一,本次采用用VASP軟件計(jì)算C28 3D-C材料的彈性系數(shù),方法采用GGA-PBE函數(shù)高精度模擬,從而對(duì)得到的彈性模量、楊氏模量、泊松比等進(jìn)行計(jì)算分析,研究該材料的機(jī)械性質(zhì)。測(cè)試結(jié)果見(jiàn)表4。
表4
5. COMSOL Multiphysics軟件
COMSOL Multiphysics是一款功能強(qiáng)大的多物理場(chǎng)仿真軟件,用于仿真模擬工程、制造和科研等各個(gè)領(lǐng)域的設(shè)計(jì)、設(shè)備及過(guò)程。本次測(cè)試超導(dǎo)線圈的失超傳播問(wèn)題是一個(gè)強(qiáng)非線性的熱傳導(dǎo)-電場(chǎng)耦合問(wèn)題。該問(wèn)題的COMSOL模型所用網(wǎng)格總數(shù)為184860個(gè),每一時(shí)間步長(zhǎng)需要求解的溫度場(chǎng)、電場(chǎng)自由度總數(shù)為1684507個(gè),每一時(shí)間步采用循環(huán)迭代的方式求解熱傳導(dǎo)-電場(chǎng)耦合方程,根據(jù)收斂精度,自動(dòng)的、動(dòng)態(tài)調(diào)整時(shí)間步長(zhǎng),其最大允許時(shí)間步長(zhǎng)為0.01sec,初始時(shí)間步長(zhǎng)為1×10-4sec,總計(jì)求解的時(shí)間長(zhǎng)度為1.0 sec。測(cè)試結(jié)果見(jiàn)表5。
表5
基于上述測(cè)試結(jié)果,我們可以看出五種軟件在基于容器的集群和物理機(jī)集群上的運(yùn)算時(shí)間相差無(wú)幾,容器的物理性能損耗在1%以內(nèi)。另外容器內(nèi)部環(huán)境優(yōu)化后系統(tǒng)開(kāi)銷較少,所以出現(xiàn)容器集群的運(yùn)行時(shí)間還略低于物理集群。同時(shí),用戶的空間在容器內(nèi)和容器外一致,只需要不同的地址就可以在物理機(jī)和容器間進(jìn)行切換,利用了容器技術(shù)的優(yōu)勢(shì),良好地解決了傳統(tǒng)HPC應(yīng)用程序升級(jí)和管理問(wèn)題,給高性能計(jì)算應(yīng)用提供了更有效的容器解決方案。
高性能計(jì)算已經(jīng)歷了兩次“可移植性”革命:統(tǒng)一使用Unix和MPI的引入。容器技術(shù)將引領(lǐng)高性能計(jì)算“可移植性”的第三次革命,它已經(jīng)徹底改變了大規(guī)模云計(jì)算,也將掀起HPC的新世界。