文/邸瑞華 呂海
讓HPC融入學科
文/邸瑞華 呂海
為了讓高性能計算與學科更好地結(jié)合,北京工業(yè)大學網(wǎng)格中心做了很多優(yōu)化工作
高性能計算(High Performance Computing)已成為繼理論研究和實驗研究之后第三種認識、改造客觀世界的重要手段,并在工程與非工程的各種領(lǐng)域得到了廣泛應(yīng)用。
北京工業(yè)大學(以下簡稱北工大)高性能計算平臺的建設(shè)為北工大重點學科建設(shè)和科研起到推動和支持作用,為解決多學科、跨地域科研資源的共享與協(xié)作問題提供了基礎(chǔ)設(shè)施。北京工業(yè)大學網(wǎng)格中心高性能計算平臺2010年5月平臺投入運行,明確提出:“服務(wù)教學科研、 開展科學研究、 支撐服務(wù)北京”的目標。 目前,在該平臺上部署了多種用于大規(guī)模數(shù)據(jù)處理的商業(yè)或開源高性能計算軟件,對各個學院學科老師的高性能計算軟件的性能優(yōu)化提供技術(shù)支持。
高性能計算領(lǐng)域里一個已經(jīng)毋庸置疑的事實是高性能計算軟件在各種不同體系結(jié)構(gòu)的高性能計算平臺下表現(xiàn)出的計算性能是不一樣的,這樣就需要在這些的高性能計算平臺之中選擇出最能發(fā)揮軟件性能的平臺。為此,必須做面向計算機體系結(jié)構(gòu)的軟件性能分析。
例如,北工大材料學院在進行“低維電子功能材料中尺度效應(yīng)和元素特性研究”課題中,使用基于第一性原理計算的計算軟件VASP對材料的物理和化學特性進行描述。在第一性原理計算過程中,涉及到大量的矩陣計算,屬于計算密集型、通訊密集型應(yīng)用。其中大多數(shù)并行計算采用能帶分割的并行模式,同時混合了平面波系數(shù)并行模式。
為了使得VASP軟件在分析計算過程中充分發(fā)揮計算平臺的性能,尋找最佳的運行環(huán)境,材料學院和計算機學院的研究生一起合作,將VASP軟件分別部署在高性能計算平臺的三個資源池 (虛擬集群資源池、萬兆網(wǎng)互聯(lián)多核集群資源池、NUMA架構(gòu)的IBM 3950資源池) 中,測試比較在不同資源池中VASP軟件的運行性能。經(jīng)過多次的實驗,分析比較計算時間、加速比、浮點運算次數(shù)及其它與體系結(jié)構(gòu)密切相關(guān)的性能參數(shù),最終確定基于NUMA架構(gòu)的IBM3950服務(wù)器運行效果最佳。
自2005年多核芯片逐漸普及以來,計算機科學領(lǐng)域正在發(fā)生著深刻的變革,軟件性能提升的“免費午餐”已經(jīng)結(jié)束,國外及國內(nèi)各個研究團體都從各個方面進行多核芯片架構(gòu)的計算平臺的程序性能優(yōu)化的研究。近幾年,網(wǎng)格中心從生命、材料、結(jié)構(gòu)工程等應(yīng)用領(lǐng)域著手,開展該方向的研究,并在結(jié)構(gòu)工程領(lǐng)域的有限元分析計算方面取得了一定的進展。
結(jié)構(gòu)工程在城市基礎(chǔ)設(shè)施建設(shè)、結(jié)構(gòu)受損研究中發(fā)揮著重要的作用,通過結(jié)構(gòu)工程實驗人們探索結(jié)構(gòu)性能的規(guī)律,為結(jié)構(gòu)設(shè)計、施工和運行提供必不可缺的依據(jù)。結(jié)構(gòu)工程領(lǐng)域中一種行之有效的仿真實驗方法是利用有限元法。網(wǎng)格中心聯(lián)合建筑工程學院進行地震工程動力仿真服務(wù)的研究,提供基于開源有限元分析軟件OpenSees的高性能動力分析計算服務(wù)。
網(wǎng)格中心通過對OpenSees并行版本OpenSeesSP 在高性能計算平臺上的性能測試和分析,找出了程序的性能瓶頸,利用MPI/OpenMP混合編程模型設(shè)計了一種適合于多核芯片架構(gòu)的集群計算平臺上高效求解非線性動力微分方程的求解算法,并在OpenSeesSP版本中依據(jù)這種算法是實現(xiàn)了一個基于混合并行編程模型的求解器。通過改進的OpenSeesSP進行測試和性能分析,優(yōu)化效果比較理想。
結(jié)構(gòu)健康監(jiān)測是通過對結(jié)構(gòu)的物理力學性能進行無損監(jiān)測,對結(jié)構(gòu)的服役情況、可靠性、耐久性和承載能力進行智能評估,結(jié)構(gòu)健康監(jiān)測數(shù)據(jù)的規(guī)模相當大。目前已存在專門的工程數(shù)據(jù)處理軟件,例如M a t l a b、Famos等,這些軟件都是基于串行算法實現(xiàn)的,對于結(jié)構(gòu)工程試驗產(chǎn)生的大規(guī)模的海量數(shù)據(jù)進行處理時則往往效率低下。
Hadoop技術(shù)已經(jīng)在互聯(lián)網(wǎng)領(lǐng)域得以廣泛的應(yīng)用,同時也得到研究界的普遍關(guān)注,DryadLINQ已經(jīng)在微軟內(nèi)部得到廣泛應(yīng)用。網(wǎng)格中心從結(jié)構(gòu)工程領(lǐng)域中海量結(jié)構(gòu)健康監(jiān)測數(shù)據(jù)處理的應(yīng)用出發(fā),在分析Hadoop和DryadLINQ兩種并行編程框架特點的基礎(chǔ)上,搭建了兩種并行編程框架的集群系統(tǒng),集群使用IBM HS21刀片服務(wù)器,操作系統(tǒng)使用微軟的Windows HPC Server 2008 R2。在集群系統(tǒng)中使用兩種并行編程框架對大規(guī)模結(jié)構(gòu)工程試驗數(shù)據(jù)進行快速傅里葉變換,以測試其性能。
通過測試結(jié)果分析出不同規(guī)模數(shù)據(jù)在Hadoop集群和DryadLINQ集群上的運行時間,隨著數(shù)據(jù)量的加大,運行時間在增長,但時間增大的幅度在減緩。但隨著數(shù)據(jù)規(guī)模的增大DryadLINQ的運行優(yōu)勢越明顯,例如數(shù)據(jù)量為1G的運行時間為250.03秒,而3G的數(shù)據(jù)量運行時間為310.53秒,僅為1G數(shù)據(jù)量的1.25倍,所以數(shù)據(jù)量越大越適合采用DryadLINQ的并行計算方式。對于Hadoop集群也是如此,隨著數(shù)據(jù)量的不斷增加,雖然執(zhí)行時間繼續(xù)增加,但增加的幅度變小。
應(yīng)用實踐表明,無論是采用基于Hadoop系統(tǒng)的MapReduce并行編程還是采用基于Dryad平臺的DryadLINQ并行編程,對于大規(guī)模數(shù)據(jù)在處理效率上有了很大的提高。
X10是IBM 研究部門與多家學術(shù)科研機構(gòu)共同開發(fā)的面向現(xiàn)代體系結(jié)構(gòu)的并行編程語言。相比傳統(tǒng)的并行編程語言,如MPI或者OpenMP,X10有更高的編程效率,更好的語義抽象以適應(yīng)不同的體系結(jié)構(gòu)和不同的數(shù)據(jù)訪問方式。同時,X10也能夠獲得很好的并行度。網(wǎng)格中心階段性參與IBM中國研究院對X10與Hadoop、Twister等編程模型對比和性能分析的研究,負責實驗環(huán)境的搭建。
在實驗測試和系統(tǒng)性能分析時,網(wǎng)格中心的老師和研究生與IBM研究人員一起討論實驗結(jié)果,分析出現(xiàn)問題的原因,提出建議和想法。
(作者單位為北京工業(yè)大學網(wǎng)格中心)