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