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