俄罗斯全球中期模式SLAV计算性能改进
Fadeev et al.(2024)介绍了俄罗斯水文气象中心(Hydrometeorological Center of Russia)的全球中期预报模式SLAV(Semi-Lagrangian based on Absolute Vorticity)的计算优化工作。该模式近期升级其分辨率到10公里。相比原先20公里分辨率,计算量增长超过10倍(水平/垂直分辨率/时间步长翻倍)。
10公里(SLAV10)和20公里(SLAV20)模式配置信息见下表。
每个NWP业务中心对全球中期预报计算时间要求不同,比如:
- ECMWF要求在8分钟内完成一天的预报
- 而俄罗斯水文气象中心要求在20分钟内完成一天预报
SLAV10最初版本计算性能(不含I/O):14000核左右并行效率超过50%,但4000核计算一天预报需要超过40分钟。因此需要进行计算优化。
第一个阶段优化工作包括:
- 部分计算和MPI通信从双精度到单精度优化
- 扩散算法改进增加时间步长
- 参数化程序临时数组局地化和OpenMP并行循环的向量长度控制优化
这些优化工作使10公里一天预报使用4000核从40分钟降到了10分钟左右,注意这里不包括I/O时间。
另一个优化工作就是本文的并行I/O方面优化。
SLAV输出频率:
- 84小时内每3小时输出一次等压面数据
- 84小时开始每6小时输出一次
- 积分第一天输出3个模式面数据
通过自研ParIO软件改善模式的I/O性能。ParIO是基于netCDF开发的,支持同步和异步IO,支持全场、切片输出方式。
ParIO输出程序分为两部分:第一部分是发送数据,第二部分是写到文件。此外ParIO支持推迟多个文件同时输出功能。
试验表明ParIO在增加3%左右的计算核心数下能够加速SLAV10/20模式超过15%。
另外由于模式面数据包括10个三维场变量和34个二维场数据,数据Size很大(SLAV10是22.7GB),因此考虑数据压缩。对非分布式数据才能获得高压缩率,因此在后处理阶段使用ncks进行(有损)压缩操作。
文献
Fadeev R Yu, Goyman G S, Tolstykh M A, 2024. Improving Performance of SLAV Model for Medium Range Weather Prediction[J/OL]. Lobachevskii Journal of Mathematics, 45(7): 3017-3028. DOI:10.1134/S1995080224603874.

