阿里云超算上气象应用WRF的集谛优化

作者:孙相征
弹性高性能计算(E-HPC,https://ehpc.console.aliyun.com/ )基于阿里云基础设施,为用户提供公有云之上的HPC服务。除了提供计算资源环境,E-HPC还提供了很多独立的功能模块,如作业管理、用户管理、集群命令执行等。其中,借助集谛(CloudMetrics)模块,用户可以通过性能大盘查看集群资源的饱和度,从全局监控集群节点的状态;从节点性能,查看节点具体指标的变化曲线和历史数据,并且能够与调度的作业信息相关联;从进程性能,查看具体进程的历史信息,进而确定需要剖析的进程;从性能剖析,获取热点函数分布及其调用栈信息,了解应用内部的执行状态。

WRF(Weather Research and Forecasting)是新一代中尺度预报模式,被气象行业广泛应用的开源数值气象模拟(NWS)软件,随着气象气候计算上云的趋势,WRF需要针对云超算环境进行优化,本文描述了通过集谛分析WRF在云上运行的性能特征,逐步实现性能优化的过程。

运行算例是中国范围天气预测;运行平台为ecs.scch5.16xlarge,32core, 64vCPU, 192GB内存,配有10Gbit/s Ethernet和46Gbit/s RoCE网络。

初始运行监控

借助集谛与集群调度系统相关联、历史信息自动保存的功能,可以直接在调度系统提交作业,待作业完成后随时查看作业运行过程中的运行性能特征,如图1所示。

阿里云超算上气象应用WRF的集谛优化
a.按节点分类
阿里云超算上气象应用WRF的集谛优化
b.按指标分类
图1 WRF运行时性能特征

从单个节点不同指标变化(图1.a)可以看出,程序有明显的周期性特征,存储带宽会在一段间隔有明显的增大,同时伴随着节点间网络通讯的减少。从本算例,运行共产生7个结果文件,与监控的7次存储带宽高峰相对应,而且结果文件主要是在每小时预测后统一写出,在运行过程中,没有存储带宽的压力。
从节点间网络性能变化(图1.b)看,节点间的网络负载不均衡,从应用逻辑也可以解释,由于天气预测跟地形(陆地、海洋等)相关,或伴随负载动态变化(如云的移动),进程边界交换信息不同,节点间会存在网络通讯不均衡现象。但是,所有节点的网络带宽偏低,由于平台配置两种网络,需要检查是否使用高速RoCE网络。

改用RoCE性能监控

通过查看运行配置,发现MPI通讯为Ethernet,因此需要调整网络配置利用高速的RoCE网络,提交作业再次监控,得到运行特征如图2所示。

阿里云超算上气象应用WRF的集谛优化
a.按节点分类
阿里云超算上气象应用WRF的集谛优化
b.按指标分类
图2 使用RoCE后的WRF运行时性能特征

显然,程序运行使的节点间网络带宽和存储带宽增大,原因在于计算时通讯使用了RoCE网络,可以将Ethernet带宽资源用于存储操作使用。网络通讯带宽由原来的180MB/s、240MB/s提升到320MB/s、450MB/s。
从监控结果发现,节点间的存储带宽极不均衡,仅有compute22节点负载文件操作,难以利用NAS的整体带宽资源。

PNetCDF多节点并行I/O

通过日志分析文件I/O操作耗时比例较高(约25%左右,以某算例为例,并随计算规模变化)。WRF使用NetCDF文件格式,若采用NetCDF classic经典模式,即主进程汇集所有从进程的部分结果数据,再由主进程完成文件写操作,如图3 a),跟之前的网络和存储监控数据相吻合。

阿里云超算上气象应用WRF的集谛优化
图3 NetCDF I/O 方案比较。a) 串行I/O; b)并行I/O。

为了提高运行效率,可采用并行NetCDF I/O的优化方案,即所有节点参与I/O操作,减少I/O操作等待时间,如图3 b)所示。

因此,可以借此PNetCDF方案提升WRF的性能,提交作业再次监控,得到运行特征如图4所示。

阿里云超算上气象应用WRF的集谛优化
a.按节点分类
阿里云超算上气象应用WRF的集谛优化
b.按指标分类

图4 使用RoCE+PNetCDF后的WRF运行时性能特征

可以看出,每个节点均有I/O操作相关的指标监控数据,跟PNetCDF的原理相匹配。从监控结果看,每完成一小时预测后的文件操作时间明显减小,性能得到进一步提升。

总结

通过E-HPC集谛 —— 集群运行监控和应用性能分析模块,能够充分了解WRF在运行过程的性能特征,改变了以往仅靠WRF日志输出的时间戳观测程序运行状态。同时,可以以应用的运行性能特征为依据,使用RoCE高速网络和PNetCDF并行I/O的优化策略,逐步提高了WRF的运行效率,最终性能提高加速比达到2.4X,如图5所示。

阿里云超算上气象应用WRF的集谛优化
图5 WRF单小时平均预测时间的性能优化结果

上一篇:阿里云RDS for PostgreSQL varbitx插件与实时画像应用场景介绍


下一篇:Oracle等待事件Enqueue CI:Cross Instance Call Invocation