?

WRF模式在ARM服務器上的移植及優化研究

2023-06-25 01:14曹人之魏天祥
現代信息科技 2023年6期

曹人之 魏天祥

摘? 要:針對目前WRF模式遷移中存在的問題,提出具體遷移部署的方法。隨后通過對美國東部地區降雨模擬,給出WRF模式在Intel X86和ARM架構上的計算性能的差異,通過NCL方法計算了結果的準確性。實驗結果表明,WRF模式可被完整地遷移到ARM架構的超級計算機上。仿真結果顯示,在并行運算下,WRF模式在ARM架構超算集群上耗時更短,且單節點運算中ARM可有效提高并行運算效率,具有一定的使用價值,為研究者提供參考。

關鍵詞:X86架構;ARM架構;鯤鵬920處理器;WRF模式;移植優化

中圖分類號:TP391.9? ? 文獻標識碼:A? 文章編號: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架構處理器憑借通用性強且性能高的優勢被廣泛應用。但隨著數據量爆發式增長,各研究領域對計算機系統浮點計算能力的需求達到每秒1018次,計算性能提升的同時X86系統產生的熱量和功耗成本卻成為制約其創新發展的關鍵因素[1]?;谟嬎阈阅?、功耗以及成本等多方面因素考慮,研究者們開始嘗試將服務于移動終端的低功耗ARM處理器作為X86架構的替代方案,以應對百億億次級HPC系統帶來的挑戰[2,3]。2012年,ARM架構應用于高性能計算集群[4]。2018年,第一個peta級(每秒進行1 015次64位浮點運算)ARM架構集群Astra以1.529petaflops的成績進入全球超級計算TOP500榜單[5]。2019年,華為重磅發布型號為鯤鵬920的ARM架構芯片,并基于該處理器推出TaiShan系列服務器,其中TaiShan 2280均衡型服務器在網絡能力、存儲能力和計算能力之間取得均衡[6]。2020年初,在全球超算TOP500榜上,完全由ARM架構處理器提供支持的日本Fugaku超級計算機以415.5PFlops的浮點計算能力位列榜首,其浮點計算能力比第二名Summit系統高出2.8倍[7]。至此,ARM架構有望在高性能計算領域中擁有廣闊的應用前景。

天氣研究和預報模式(Weather Research and Forecasting, WRF)是20世紀末美國國家大氣研究中心(National Center for Atmospheric Research, NCAR)聯合業界科學家設計的中尺度預報模式和同化系統。WRF模式集數值天氣預報、大氣模擬和數據同化于一體,憑借開源、可移植性強、高效等特點,在業務預報和科學研究中有著十分廣泛的應用[8,9]。數年來,WRF模式與高性能計算發展緊密結合,同時也對系統計算能力及可靠性提出了更高的需求,基于計算性能和功耗平衡的考慮,WRF模式向低功耗、高性能的ARM架構遷移已成大勢所趨。然而長期適應于X86架構的WRF模式在匯編語言以及編譯指令等方面與ARM架構均存在差異[10],無法直接部署在ARM架構服務器上。因此,本文選取國產ARM架構華為鯤鵬920處理器,研究WRF模式向鯤鵬集群移植和優化的有效方案,這對評估高性能應用移植工作流程、解決遷移過程不兼容性具有實際參考價值,能夠為后續各研究領域在ARM架構鯤鵬服務器上部署大型計算應用提供實例驗證。同時本文通過WRF實例運算對ARM架構鯤鵬服務器與Intel X86架構服務器進行性能對比,也能夠證明ARM架構鯤鵬服務器可作為除Intel X86架構服務器后各應用領域的又一計算支撐。

1? 移植平臺配置

本文研究主要分為兩部分,第一部分本文探討WRF應用向ARM架構服務器遷移的方法,遷移使用的ARM架構服務器為華為TaiShan 2280均衡性服務器,其內置兩顆鯤鵬920處理器,X86架構服務器則選用FusionServer Pro XH321 V5服務器,內置兩顆Intel?至強?6248處理器,同時本文使用華為官方提供的分析掃描工具Porting-advisor輔助分析WRF模式的移植可行性。第二部分本文在ARM架構鯤鵬服務器上對WRF應用進行實例測試及性能優化,并將ARM架構下優化后的WRF模式計算性能與X86架構對比,分析驗證ARM架構鯤鵬920服務器的計算優勢。具體研究環境配置如表1所示。

2? WRF4.2遷移實現

2.1? 可移植性分析

為探討ARM架構鯤鵬處理器與WRF模式的原始兼容性,本文使用華為官方網站提供的軟件分析工具Porting-advisor輔助分析,其參數使用及命令如表2所示。

其中,本文使用-P參數用來掃描WRF對用戶提供的軟件包(WRF-4.2.tar.gz),并將WRF軟件包中包含的SO依賴庫與目標架構中已有的依賴庫白名單對比,列出白名單中未包含的依賴庫。WRF軟件包可移植性結果自動生成.csv文件,包含SO移植依賴以及移植工作量評估,如圖1所示。

根據報告分析,WRFV4.2軟件包中共包含12個安裝SO依賴庫,209 個C/C++文件以及49相關的編譯文件。其中4個SO依賴庫已經存在ARM架構SO依賴庫白名單中,另外8個SO依賴庫不匹配,用戶需要更改相關配置文件并重新編譯。另外209個C/C++文件以及編譯文件無須更改。

結合軟件移植分析報告中指出的SO依賴庫,在WRF移植安裝前,本文首先替換WRF模式依賴庫適配名單。其中NetCDF用于處理.nc數據文件,PNETCDF用于處理并行.nc文件。Libpng12-1.2.50-10,zlib-devel-1.2.7-18和jasper-libs-1.900.1-33已經包含在SO依賴庫白名單中,他們用于在運行WRF的WPS部分處理GRIB2文件。

2.2? 編譯文件參數適配

在所有依賴庫安裝編譯完成后,本文進行WRF軟件移植。移植過程中本文通過修改WRF-4.2/arch目錄下的configure.defaults編譯配置文件以兼容鯤鵬處理器,具體參數修改如表3所示。

表3中,SFC和DM_FC參數指定Fortran編譯器和編譯參數,通過添加-fallow-argument-mismatch與-fallow-invalid-boz兩項參數,系統可降低GCC10以上版本編譯器對Fortran語句的敏感度,從而解決編譯過程中某些warning項導致的編譯中斷問題。CFLAGS_LOCAL參數中,本文通過添加指令-mcpu=tsv110來使編譯器適配鯤鵬處理器tsv110流水線編排順序,使得WRF模式運算過程充分并行,達到一定優化效果。CPP參數則用來鏈接GCC編譯器,指定版本10.1.0。

編譯安裝WRF完成后,WRF應用main文件夾下將產生四個執行文件:ndown.exe,real.exe,tc.exe以及 wrf.exe。同時本文在ARM單節點上利用WRF數據集對WRF進行驗證結果如圖2所示,WRFV 4.2軟件包移植成功。

3? 實例測試及性能優化

在WRF實例測試及性能優化實驗中,本文選取美國氣象研究中心(NCAR)發布的美國東部地區2013年1月1日至4月1日總降雨量數據作為測試實例,并命名為3months。同時配置WRF模式輸入文件namelist.input參數如表4所示。本文設置模擬定義域數max_dom為2,模擬精度分別為9 000米和3 000米,最大模擬步長Time_step為54秒,區域內東西方向網格索引e_we分別為181和199,南北方向索引e_sn為281和262,垂直方向索引e_vert均為44,此外其余參數默認。

3.1? ?進程分配及線程綁定優化

在3mouths并行化運算中,本文發現,WRF模式出現模擬任務啟用線程數過多且鯤鵬920服務器CPU資源分配不均衡,算例運行速率緩慢等問題。分析其原因,在ARM架構鯤鵬920服務器上,MPI+OpenMP并行方式默認將進程數設為與CPU核心數相同的值,即一臺擁有96個CPU核心的ARM架構服務器默認啟動96個進程,每個進程分配1個線程。當并行節點數增加時,進程總數和線程總數均成倍增長,眾多進程搶占CPU核心資源次序混亂,節點內部以及節點間進程通信等待時長對計算產生的不利影響越來越明顯,WRF模式計算速度放緩。

為優化解決多節點運算中進程數啟用過多以及資源分配混亂問題,本文嘗試在運行腳本中添加-map-by ppr:node:pe參數來重新分配ARM節點上的進程和線程數量,添加OMP_PLACES=cores參數將線程綁定到CPU核心上。本文最終使用參數“-map-byppr:24:node:pe=4 OMP_PLACES=cores”,使得WRF模式在每個節點上啟用24個進程,每個進程分配4個線程,每個線程綁定一個CPU內核。此時在每個節點上,進程數減少使得進程間通信時間減少,96個線程與96個CPU核心數綁定使得CPU得到充分利用。進程分配及線程綁定優化后,本文利用3months算例對實驗環境進行測試,實驗結果如圖3所示。

分析實驗結果,進程分配及線程綁定后,隨著節點數的增加,3months算例運行消耗時長呈下降趨勢,兩節點時,運行時長下降趨勢最為明顯,四節點時,3months在單節點基礎上提升54.6%的并行效率。進一步通過性能監控如圖4所示,線程綁定優化后,ARM服務器96核心全部被利用,CPU利用率將近100%,OpenMPI帶來的線程綁定不均衡問題得到解決。

3.2? 最小nproc_x調優

線程綁定優化對WRF模式計算性能帶來了一定的加速效果,在WRF模式區域分解計算方面,文獻[10]同樣提出了一種通過減少X方向上的進程數從而提高WRF并行效率的方法。該文獻指出,在WRF模式下,運行進程分為X,Y兩個方向。Nproc_x指定了WRF在X方向上的進程數,nproc_y指定了WRF在Y方向的進程數,并且滿足nproc_x*nproc_y=當前線程運行總數。本文在進程分配優化基礎上利用該方法,進一步實現nproc_x和nproc_y區域劃分優化WRF模式運算性能。

由于namelist.input中已設定e_we=181,199,e_sn=281,

262,且WRF模式規定X和Y方向上的網格單元數不得少于10,本文列出網格與nproc_x、nproc_y之間的關系如式(1,2,3)所示,設實驗運算總進程數為N,解得nproc_x的最小取值為N/26.2。

(1)

(2)

(3)

因此,基于上一步優化結果,在每個節點啟用24個進程的基礎上,本文根據這些公式得出nproc_x和nproc_y的最佳劃分如表5所示。此時1節點啟動24個進程,最小nproc_x可為1;2節點共48進程,最小nproc_x為2;3節點進程總數為72,最小nproc_x=3;4節點共96個進程,最小nproc_x=4。同時本文利用3mouths案例對最小nproc_x調優結果進行測試,測試結果如表6所示。

分析表4,對于單節點以及兩節點,3months算例并行效率在優化前的基礎上分別提升了12.09%和8.76%;而對于三節點以及四節點,最小nproc_x調優為3months算例并行效率帶來了8.03%和4.16%的提升。

綜合上述兩項優化方法,本文將WRF模式3months算例最終優化運行結果與X86架構服務器對比分析:(1)優化后,相同節點數的情況下,ARM架構運行時長始終比X86架構短;(2)隨著節點數的增加,X86架構服務器較ARM架構服務器計算時長下降趨勢更為明顯,4節點時,X86架構運算時長僅比ARM架構運算時長慢1 919.4秒,結果對比如圖5所示。

通過對實驗結果的進一步分析,單節點運算中,3months算例運行時長為174 709.39秒,較X86架構縮短95 831.48秒,并行效率提升35.42%。對于多節點運算,優化后ARM架構服務器克服了OpenMPI線程綁定混亂帶來的時延,隨著節點數的增加,運行時長縮短。但Intel X86架構服務器自研Intel MPI更適配Intel服務器,而OpenMPI并非針對ARM架構服務器設計,因此在多節點運算中,節點數增加為X86架構服務器更多的并行效益。四節點時,ARM架構服務器相比X86架構服務器并行效率提升僅有4%。

本文將3mouths模擬數據進行NCL可視化處理,對比X86架構服務器和ARM架構服務器模擬結果如圖6所示,圖中左方為X86可視化結果,右方為ARM可視化結果。從圖中可以看出,在X86和ARM上3mouths案例運算結果保持一致。例如,圖中左右均顯示美國東區地區82°W28°N降雨量在51.2 mm~102.4 mm之間,其余地區總降雨量達到102.4 mm以上。NCL可視化結果證明,ARM架構服務器運算性能優化不會影響運算結果。

4? 結? 論

在WRF模式移植部署過程中,實踐證明,Porting-advisor工具可為移植兼容性提供部分分析參考,此外研究人員還需替換SO依賴庫版本,解決編譯過程中出現的錯誤,適配configure.defaults配置文件參數,最終才能將WRF成功移植到ARM架構服務器平臺上。在WRF案例測試及性能優化部分,本文采用了兩種針對MPI并行的優化方式,進程分配及線程綁定優化方法解決了CPU資源搶占混亂,資源分配不平衡的現象,最優nproc_x方法進一步優化了ARM平臺的計算性能。優化完成后,ARM平臺在單節點與多節點上均能支持WRF案例運算,并且ARM架構運算性能優于X86架構。對于WRF模式,本文最終驗證了使用ARM架構鯤鵬920服務器替代Intel X86架構服務器計算可行。但更長遠的,ARM架構鯤鵬920服務器在多節點上的性能優勢以及與開源OpenMPI并行套件的適配性方面都有待進一步提高。

參考文獻:

[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] 新華社.日本富士通發布新型超算“大腦”[J].中國建設信息化,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] 莫秋燕,吳家隱,李先緒,等.國產處理器及其在服務器中的應用 [J].計算機產品與流通,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] 胡伯彥,湯劍平,王淑瑜.東亞地區晴空湍流未來變化趨勢預估:基于CORDEX-WRF模式降尺度 [J].地球物理學報,2022,65(7):2432-2447.

[9] 張建彬,高志球,楊軍,等.基于WRF模式的博斯騰湖地區暴雨數值模擬研究 [J].高原氣象,2022,41(4):887-895.

[10] 過怡,劉文芝.匯編語言差異比較——從X86到ARM [J].江蘇科技信息,2019,36(22):39-42.

[11] 孫啟龍,趙學良,陳芋文,等.一種提高WRF并行計算效率的方法:CN105938427A[P].2016-09-14.

作者簡介:曹人之(1997—),女,漢族,四川綿陽人,網絡安全工程師,碩士研究生,研究方向:信息安全,高性能計算等;魏天祥(1998—),男,漢族,北京人,網絡安全工程師,碩士研究生,研究方向:信息系統安全,密碼學等。

收稿日期:2022-10-25

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合