曹人之 魏天祥
摘? 要:針對(duì)目前WRF模式遷移中存在的問題,提出具體遷移部署的方法。隨后通過對(duì)美國東部地區(qū)降雨模擬,給出WRF模式在Intel X86和ARM架構(gòu)上的計(jì)算性能的差異,通過NCL方法計(jì)算了結(jié)果的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,WRF模式可被完整地遷移到ARM架構(gòu)的超級(jí)計(jì)算機(jī)上。仿真結(jié)果顯示,在并行運(yùn)算下,WRF模式在ARM架構(gòu)超算集群上耗時(shí)更短,且單節(jié)點(diǎn)運(yùn)算中ARM可有效提高并行運(yùn)算效率,具有一定的使用價(jià)值,為研究者提供參考。
關(guān)鍵詞:X86架構(gòu);ARM架構(gòu);鯤鵬920處理器;WRF模式;移植優(yōu)化
中圖分類號(hào):TP391.9? ? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2023)06-0077-05
Research on Migration and Optimization of WRF on ARM Server
CAO Renzhi, WEI Tianxiang
(CHN Energy Digital Intelligence Technology Development (Beijing) Co., Ltd., Beijing? 100011)
Abstract: Aiming at the problems existing in WRF migration, a concrete method of migration and deployment is proposed. Subsequently, by simulating the rainfall in the eastern region of the United States, the difference of computing performance of WRF on Intel X86 and ARM architecture is given, and the accuracy of the results is also calculated by the NCL method. The experimental results show that WRF can be completely migrated to supercomputer on ARM architecture. The simulation results show that WRF takes less time in the supercomputer cluster on ARM architecture under parallel operation, and ARM can effectively improve the efficiency of parallel operation in the single-node operation, which has certain application value and provides a reference for researchers.
Keywords: X86 architecture; ARM architecture; Kunpeng 920 processor; WRF; migration and optimization
0? 引? 言
長期以來,Intel X86架構(gòu)處理器憑借通用性強(qiáng)且性能高的優(yōu)勢(shì)被廣泛應(yīng)用。但隨著數(shù)據(jù)量爆發(fā)式增長,各研究領(lǐng)域?qū)τ?jì)算機(jī)系統(tǒng)浮點(diǎn)計(jì)算能力的需求達(dá)到每秒1018次,計(jì)算性能提升的同時(shí)X86系統(tǒng)產(chǎn)生的熱量和功耗成本卻成為制約其創(chuàng)新發(fā)展的關(guān)鍵因素[1]?;谟?jì)算性能、功耗以及成本等多方面因素考慮,研究者們開始嘗試將服務(wù)于移動(dòng)終端的低功耗ARM處理器作為X86架構(gòu)的替代方案,以應(yīng)對(duì)百億億次級(jí)HPC系統(tǒng)帶來的挑戰(zhàn)[2,3]。2012年,ARM架構(gòu)應(yīng)用于高性能計(jì)算集群[4]。2018年,第一個(gè)peta級(jí)(每秒進(jìn)行1 015次64位浮點(diǎn)運(yùn)算)ARM架構(gòu)集群Astra以1.529petaflops的成績進(jìn)入全球超級(jí)計(jì)算TOP500榜單[5]。2019年,華為重磅發(fā)布型號(hào)為鯤鵬920的ARM架構(gòu)芯片,并基于該處理器推出TaiShan系列服務(wù)器,其中TaiShan 2280均衡型服務(wù)器在網(wǎng)絡(luò)能力、存儲(chǔ)能力和計(jì)算能力之間取得均衡[6]。2020年初,在全球超算TOP500榜上,完全由ARM架構(gòu)處理器提供支持的日本Fugaku超級(jí)計(jì)算機(jī)以415.5PFlops的浮點(diǎn)計(jì)算能力位列榜首,其浮點(diǎn)計(jì)算能力比第二名Summit系統(tǒng)高出2.8倍[7]。至此,ARM架構(gòu)有望在高性能計(jì)算領(lǐng)域中擁有廣闊的應(yīng)用前景。
天氣研究和預(yù)報(bào)模式(Weather Research and Forecasting, WRF)是20世紀(jì)末美國國家大氣研究中心(National Center for Atmospheric Research, NCAR)聯(lián)合業(yè)界科學(xué)家設(shè)計(jì)的中尺度預(yù)報(bào)模式和同化系統(tǒng)。WRF模式集數(shù)值天氣預(yù)報(bào)、大氣模擬和數(shù)據(jù)同化于一體,憑借開源、可移植性強(qiáng)、高效等特點(diǎn),在業(yè)務(wù)預(yù)報(bào)和科學(xué)研究中有著十分廣泛的應(yīng)用[8,9]。數(shù)年來,WRF模式與高性能計(jì)算發(fā)展緊密結(jié)合,同時(shí)也對(duì)系統(tǒng)計(jì)算能力及可靠性提出了更高的需求,基于計(jì)算性能和功耗平衡的考慮,WRF模式向低功耗、高性能的ARM架構(gòu)遷移已成大勢(shì)所趨。然而長期適應(yīng)于X86架構(gòu)的WRF模式在匯編語言以及編譯指令等方面與ARM架構(gòu)均存在差異[10],無法直接部署在ARM架構(gòu)服務(wù)器上。因此,本文選取國產(chǎn)ARM架構(gòu)華為鯤鵬920處理器,研究WRF模式向鯤鵬集群移植和優(yōu)化的有效方案,這對(duì)評(píng)估高性能應(yīng)用移植工作流程、解決遷移過程不兼容性具有實(shí)際參考價(jià)值,能夠?yàn)楹罄m(xù)各研究領(lǐng)域在ARM架構(gòu)鯤鵬服務(wù)器上部署大型計(jì)算應(yīng)用提供實(shí)例驗(yàn)證。同時(shí)本文通過WRF實(shí)例運(yùn)算對(duì)ARM架構(gòu)鯤鵬服務(wù)器與Intel X86架構(gòu)服務(wù)器進(jìn)行性能對(duì)比,也能夠證明ARM架構(gòu)鯤鵬服務(wù)器可作為除Intel X86架構(gòu)服務(wù)器后各應(yīng)用領(lǐng)域的又一計(jì)算支撐。
1? 移植平臺(tái)配置
本文研究主要分為兩部分,第一部分本文探討WRF應(yīng)用向ARM架構(gòu)服務(wù)器遷移的方法,遷移使用的ARM架構(gòu)服務(wù)器為華為TaiShan 2280均衡性服務(wù)器,其內(nèi)置兩顆鯤鵬920處理器,X86架構(gòu)服務(wù)器則選用FusionServer Pro XH321 V5服務(wù)器,內(nèi)置兩顆Intel?至強(qiáng)?6248處理器,同時(shí)本文使用華為官方提供的分析掃描工具Porting-advisor輔助分析WRF模式的移植可行性。第二部分本文在ARM架構(gòu)鯤鵬服務(wù)器上對(duì)WRF應(yīng)用進(jìn)行實(shí)例測試及性能優(yōu)化,并將ARM架構(gòu)下優(yōu)化后的WRF模式計(jì)算性能與X86架構(gòu)對(duì)比,分析驗(yàn)證ARM架構(gòu)鯤鵬920服務(wù)器的計(jì)算優(yōu)勢(shì)。具體研究環(huán)境配置如表1所示。
2? WRF4.2遷移實(shí)現(xiàn)
2.1? 可移植性分析
為探討ARM架構(gòu)鯤鵬處理器與WRF模式的原始兼容性,本文使用華為官方網(wǎng)站提供的軟件分析工具Porting-advisor輔助分析,其參數(shù)使用及命令如表2所示。
其中,本文使用-P參數(shù)用來掃描WRF對(duì)用戶提供的軟件包(WRF-4.2.tar.gz),并將WRF軟件包中包含的SO依賴庫與目標(biāo)架構(gòu)中已有的依賴庫白名單對(duì)比,列出白名單中未包含的依賴庫。WRF軟件包可移植性結(jié)果自動(dòng)生成.csv文件,包含SO移植依賴以及移植工作量評(píng)估,如圖1所示。
根據(jù)報(bào)告分析,WRFV4.2軟件包中共包含12個(gè)安裝SO依賴庫,209 個(gè)C/C++文件以及49相關(guān)的編譯文件。其中4個(gè)SO依賴庫已經(jīng)存在ARM架構(gòu)SO依賴庫白名單中,另外8個(gè)SO依賴庫不匹配,用戶需要更改相關(guān)配置文件并重新編譯。另外209個(gè)C/C++文件以及編譯文件無須更改。
結(jié)合軟件移植分析報(bào)告中指出的SO依賴庫,在WRF移植安裝前,本文首先替換WRF模式依賴庫適配名單。其中NetCDF用于處理.nc數(shù)據(jù)文件,PNETCDF用于處理并行.nc文件。Libpng12-1.2.50-10,zlib-devel-1.2.7-18和jasper-libs-1.900.1-33已經(jīng)包含在SO依賴庫白名單中,他們用于在運(yùn)行WRF的WPS部分處理GRIB2文件。
2.2? 編譯文件參數(shù)適配
在所有依賴庫安裝編譯完成后,本文進(jìn)行WRF軟件移植。移植過程中本文通過修改WRF-4.2/arch目錄下的configure.defaults編譯配置文件以兼容鯤鵬處理器,具體參數(shù)修改如表3所示。
表3中,SFC和DM_FC參數(shù)指定Fortran編譯器和編譯參數(shù),通過添加-fallow-argument-mismatch與-fallow-invalid-boz兩項(xiàng)參數(shù),系統(tǒng)可降低GCC10以上版本編譯器對(duì)Fortran語句的敏感度,從而解決編譯過程中某些warning項(xiàng)導(dǎo)致的編譯中斷問題。CFLAGS_LOCAL參數(shù)中,本文通過添加指令-mcpu=tsv110來使編譯器適配鯤鵬處理器tsv110流水線編排順序,使得WRF模式運(yùn)算過程充分并行,達(dá)到一定優(yōu)化效果。CPP參數(shù)則用來鏈接GCC編譯器,指定版本10.1.0。
編譯安裝WRF完成后,WRF應(yīng)用main文件夾下將產(chǎn)生四個(gè)執(zhí)行文件:ndown.exe,real.exe,tc.exe以及 wrf.exe。同時(shí)本文在ARM單節(jié)點(diǎn)上利用WRF數(shù)據(jù)集對(duì)WRF進(jìn)行驗(yàn)證結(jié)果如圖2所示,WRFV 4.2軟件包移植成功。
3? 實(shí)例測試及性能優(yōu)化
在WRF實(shí)例測試及性能優(yōu)化實(shí)驗(yàn)中,本文選取美國氣象研究中心(NCAR)發(fā)布的美國東部地區(qū)2013年1月1日至4月1日總降雨量數(shù)據(jù)作為測試實(shí)例,并命名為3months。同時(shí)配置WRF模式輸入文件namelist.input參數(shù)如表4所示。本文設(shè)置模擬定義域數(shù)max_dom為2,模擬精度分別為9 000米和3 000米,最大模擬步長Time_step為54秒,區(qū)域內(nèi)東西方向網(wǎng)格索引e_we分別為181和199,南北方向索引e_sn為281和262,垂直方向索引e_vert均為44,此外其余參數(shù)默認(rèn)。
3.1? ?進(jìn)程分配及線程綁定優(yōu)化
在3mouths并行化運(yùn)算中,本文發(fā)現(xiàn),WRF模式出現(xiàn)模擬任務(wù)啟用線程數(shù)過多且鯤鵬920服務(wù)器CPU資源分配不均衡,算例運(yùn)行速率緩慢等問題。分析其原因,在ARM架構(gòu)鯤鵬920服務(wù)器上,MPI+OpenMP并行方式默認(rèn)將進(jìn)程數(shù)設(shè)為與CPU核心數(shù)相同的值,即一臺(tái)擁有96個(gè)CPU核心的ARM架構(gòu)服務(wù)器默認(rèn)啟動(dòng)96個(gè)進(jìn)程,每個(gè)進(jìn)程分配1個(gè)線程。當(dāng)并行節(jié)點(diǎn)數(shù)增加時(shí),進(jìn)程總數(shù)和線程總數(shù)均成倍增長,眾多進(jìn)程搶占CPU核心資源次序混亂,節(jié)點(diǎn)內(nèi)部以及節(jié)點(diǎn)間進(jìn)程通信等待時(shí)長對(duì)計(jì)算產(chǎn)生的不利影響越來越明顯,WRF模式計(jì)算速度放緩。
為優(yōu)化解決多節(jié)點(diǎn)運(yùn)算中進(jìn)程數(shù)啟用過多以及資源分配混亂問題,本文嘗試在運(yùn)行腳本中添加-map-by ppr:node:pe參數(shù)來重新分配ARM節(jié)點(diǎn)上的進(jìn)程和線程數(shù)量,添加OMP_PLACES=cores參數(shù)將線程綁定到CPU核心上。本文最終使用參數(shù)“-map-byppr:24:node:pe=4 OMP_PLACES=cores”,使得WRF模式在每個(gè)節(jié)點(diǎn)上啟用24個(gè)進(jìn)程,每個(gè)進(jìn)程分配4個(gè)線程,每個(gè)線程綁定一個(gè)CPU內(nèi)核。此時(shí)在每個(gè)節(jié)點(diǎn)上,進(jìn)程數(shù)減少使得進(jìn)程間通信時(shí)間減少,96個(gè)線程與96個(gè)CPU核心數(shù)綁定使得CPU得到充分利用。進(jìn)程分配及線程綁定優(yōu)化后,本文利用3months算例對(duì)實(shí)驗(yàn)環(huán)境進(jìn)行測試,實(shí)驗(yàn)結(jié)果如圖3所示。
分析實(shí)驗(yàn)結(jié)果,進(jìn)程分配及線程綁定后,隨著節(jié)點(diǎn)數(shù)的增加,3months算例運(yùn)行消耗時(shí)長呈下降趨勢(shì),兩節(jié)點(diǎn)時(shí),運(yùn)行時(shí)長下降趨勢(shì)最為明顯,四節(jié)點(diǎn)時(shí),3months在單節(jié)點(diǎn)基礎(chǔ)上提升54.6%的并行效率。進(jìn)一步通過性能監(jiān)控如圖4所示,線程綁定優(yōu)化后,ARM服務(wù)器96核心全部被利用,CPU利用率將近100%,OpenMPI帶來的線程綁定不均衡問題得到解決。
3.2? 最小nproc_x調(diào)優(yōu)
線程綁定優(yōu)化對(duì)WRF模式計(jì)算性能帶來了一定的加速效果,在WRF模式區(qū)域分解計(jì)算方面,文獻(xiàn)[10]同樣提出了一種通過減少X方向上的進(jìn)程數(shù)從而提高WRF并行效率的方法。該文獻(xiàn)指出,在WRF模式下,運(yùn)行進(jìn)程分為X,Y兩個(gè)方向。Nproc_x指定了WRF在X方向上的進(jìn)程數(shù),nproc_y指定了WRF在Y方向的進(jìn)程數(shù),并且滿足nproc_x*nproc_y=當(dāng)前線程運(yùn)行總數(shù)。本文在進(jìn)程分配優(yōu)化基礎(chǔ)上利用該方法,進(jìn)一步實(shí)現(xiàn)nproc_x和nproc_y區(qū)域劃分優(yōu)化WRF模式運(yùn)算性能。
由于namelist.input中已設(shè)定e_we=181,199,e_sn=281,
262,且WRF模式規(guī)定X和Y方向上的網(wǎng)格單元數(shù)不得少于10,本文列出網(wǎng)格與nproc_x、nproc_y之間的關(guān)系如式(1,2,3)所示,設(shè)實(shí)驗(yàn)運(yùn)算總進(jìn)程數(shù)為N,解得nproc_x的最小取值為N/26.2。
(1)
(2)
(3)
因此,基于上一步優(yōu)化結(jié)果,在每個(gè)節(jié)點(diǎn)啟用24個(gè)進(jìn)程的基礎(chǔ)上,本文根據(jù)這些公式得出nproc_x和nproc_y的最佳劃分如表5所示。此時(shí)1節(jié)點(diǎn)啟動(dòng)24個(gè)進(jìn)程,最小nproc_x可為1;2節(jié)點(diǎn)共48進(jìn)程,最小nproc_x為2;3節(jié)點(diǎn)進(jìn)程總數(shù)為72,最小nproc_x=3;4節(jié)點(diǎn)共96個(gè)進(jìn)程,最小nproc_x=4。同時(shí)本文利用3mouths案例對(duì)最小nproc_x調(diào)優(yōu)結(jié)果進(jìn)行測試,測試結(jié)果如表6所示。
分析表4,對(duì)于單節(jié)點(diǎn)以及兩節(jié)點(diǎn),3months算例并行效率在優(yōu)化前的基礎(chǔ)上分別提升了12.09%和8.76%;而對(duì)于三節(jié)點(diǎn)以及四節(jié)點(diǎn),最小nproc_x調(diào)優(yōu)為3months算例并行效率帶來了8.03%和4.16%的提升。
綜合上述兩項(xiàng)優(yōu)化方法,本文將WRF模式3months算例最終優(yōu)化運(yùn)行結(jié)果與X86架構(gòu)服務(wù)器對(duì)比分析:(1)優(yōu)化后,相同節(jié)點(diǎn)數(shù)的情況下,ARM架構(gòu)運(yùn)行時(shí)長始終比X86架構(gòu)短;(2)隨著節(jié)點(diǎn)數(shù)的增加,X86架構(gòu)服務(wù)器較ARM架構(gòu)服務(wù)器計(jì)算時(shí)長下降趨勢(shì)更為明顯,4節(jié)點(diǎn)時(shí),X86架構(gòu)運(yùn)算時(shí)長僅比ARM架構(gòu)運(yùn)算時(shí)長慢1 919.4秒,結(jié)果對(duì)比如圖5所示。
通過對(duì)實(shí)驗(yàn)結(jié)果的進(jìn)一步分析,單節(jié)點(diǎn)運(yùn)算中,3months算例運(yùn)行時(shí)長為174 709.39秒,較X86架構(gòu)縮短95 831.48秒,并行效率提升35.42%。對(duì)于多節(jié)點(diǎn)運(yùn)算,優(yōu)化后ARM架構(gòu)服務(wù)器克服了OpenMPI線程綁定混亂帶來的時(shí)延,隨著節(jié)點(diǎn)數(shù)的增加,運(yùn)行時(shí)長縮短。但I(xiàn)ntel X86架構(gòu)服務(wù)器自研Intel MPI更適配Intel服務(wù)器,而OpenMPI并非針對(duì)ARM架構(gòu)服務(wù)器設(shè)計(jì),因此在多節(jié)點(diǎn)運(yùn)算中,節(jié)點(diǎn)數(shù)增加為X86架構(gòu)服務(wù)器更多的并行效益。四節(jié)點(diǎn)時(shí),ARM架構(gòu)服務(wù)器相比X86架構(gòu)服務(wù)器并行效率提升僅有4%。
本文將3mouths模擬數(shù)據(jù)進(jìn)行NCL可視化處理,對(duì)比X86架構(gòu)服務(wù)器和ARM架構(gòu)服務(wù)器模擬結(jié)果如圖6所示,圖中左方為X86可視化結(jié)果,右方為ARM可視化結(jié)果。從圖中可以看出,在X86和ARM上3mouths案例運(yùn)算結(jié)果保持一致。例如,圖中左右均顯示美國東區(qū)地區(qū)82°W28°N降雨量在51.2 mm~102.4 mm之間,其余地區(qū)總降雨量達(dá)到102.4 mm以上。NCL可視化結(jié)果證明,ARM架構(gòu)服務(wù)器運(yùn)算性能優(yōu)化不會(huì)影響運(yùn)算結(jié)果。
4? 結(jié)? 論
在WRF模式移植部署過程中,實(shí)踐證明,Porting-advisor工具可為移植兼容性提供部分分析參考,此外研究人員還需替換SO依賴庫版本,解決編譯過程中出現(xiàn)的錯(cuò)誤,適配configure.defaults配置文件參數(shù),最終才能將WRF成功移植到ARM架構(gòu)服務(wù)器平臺(tái)上。在WRF案例測試及性能優(yōu)化部分,本文采用了兩種針對(duì)MPI并行的優(yōu)化方式,進(jìn)程分配及線程綁定優(yōu)化方法解決了CPU資源搶占混亂,資源分配不平衡的現(xiàn)象,最優(yōu)nproc_x方法進(jìn)一步優(yōu)化了ARM平臺(tái)的計(jì)算性能。優(yōu)化完成后,ARM平臺(tái)在單節(jié)點(diǎn)與多節(jié)點(diǎn)上均能支持WRF案例運(yùn)算,并且ARM架構(gòu)運(yùn)算性能優(yōu)于X86架構(gòu)。對(duì)于WRF模式,本文最終驗(yàn)證了使用ARM架構(gòu)鯤鵬920服務(wù)器替代Intel X86架構(gòu)服務(wù)器計(jì)算可行。但更長遠(yuǎn)的,ARM架構(gòu)鯤鵬920服務(wù)器在多節(jié)點(diǎn)上的性能優(yōu)勢(shì)以及與開源OpenMPI并行套件的適配性方面都有待進(jìn)一步提高。
參考文獻(xiàn):
[1] GEIST A, REED D A. A survey of high-performance computing scaling challenges [J].Int J High Perform Comput Appl,2017,31(1):104-113.
[2] GWENNAP L. ThunderX2 Strengthens ARM Servers: Cavium Starts Production of World's Most Powerful ARM CPU [J].Microprocessor report, 2018, 32(5):1,4-6.
[3] 新華社.日本富士通發(fā)布新型超算“大腦”[J].中國建設(shè)信息化,2018(16):7.
[4] PADOIN E L,OLIVEIRA D,VELHO P,et al. Evaluating Performance and Energy on ARM-based Clusters for High Performance Computing [C]//2012 41st International Conference on Parallel Processing Workshops.Pittsburgh:IEEE,2012:165-172.
[5] PEDRETTI K,YOUNGE A J,HAMMOND S D,et al. Chronicles of Astra: Challenges and Lessons from the First Petascale Arm Supercomputer [C]//SC20: International Conference for High Performance Computing,Networking,Storage and Analysis.Atlanta,IEEE:1-14.
[6] 莫秋燕,吳家隱,李先緒,等.國產(chǎn)處理器及其在服務(wù)器中的應(yīng)用 [J].計(jì)算機(jī)產(chǎn)品與流通,2019(7):176.
[7] TOP500.Japan Captures TOP500 Crown with Arm-Powered Supercomputer None [EB/OL].(2022-06-22).https://www.top500.org/news/japan-captures-top500-crown-arm-powered-supercomputer.
[8] 胡伯彥,湯劍平,王淑瑜.東亞地區(qū)晴空湍流未來變化趨勢(shì)預(yù)估:基于CORDEX-WRF模式降尺度 [J].地球物理學(xué)報(bào),2022,65(7):2432-2447.
[9] 張建彬,高志球,楊軍,等.基于WRF模式的博斯騰湖地區(qū)暴雨數(shù)值模擬研究 [J].高原氣象,2022,41(4):887-895.
[10] 過怡,劉文芝.匯編語言差異比較——從X86到ARM [J].江蘇科技信息,2019,36(22):39-42.
[11] 孫啟龍,趙學(xué)良,陳芋文,等.一種提高WRF并行計(jì)算效率的方法:CN105938427A[P].2016-09-14.
作者簡介:曹人之(1997—),女,漢族,四川綿陽人,網(wǎng)絡(luò)安全工程師,碩士研究生,研究方向:信息安全,高性能計(jì)算等;魏天祥(1998—),男,漢族,北京人,網(wǎng)絡(luò)安全工程師,碩士研究生,研究方向:信息系統(tǒng)安全,密碼學(xué)等。
收稿日期:2022-10-25