TypechoJoeTheme

MetMan's Blog

网站页面

ADIOS2加速WRF IO

MetMan博 主
2023-11-02
/
0 评论
/
187 阅读
/
571 个字
/
百度已收录
11/02
本文最后更新于 2023年11月02日,已超过 322天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

华为公司研究人员在arXiv发表了预印版论文《accelerating wrf i/o performance with adios2 and network-based streaming》,介绍了他们将下一代并行I/O库ADIOS2接入WRF模式,利用ADIOS2功能提升WRF I/O性能的工作。根据给出的测试结果,使用ADIOS2相比传统MPI-I/O方案获得十倍的性能提升。具体细节可阅读他们的​论文。

ADIOS2功能介绍

ADIOS2亮点功能有很多,包括

  • 支持多种数据格式,sub-files输出功能

支持自研BP系列数据格式,不追求输出到一个文件中,而是通过I/O进程聚合器生成多个sub-files,减少传统MPI-I/O方法文件锁问题。

I/O聚合器设置可调,默认一个节点设置一个,既利用节点内共享内存通信,又尽可能减少并发访问文件系统的进程数。

  • Burst Buffer功能

BP5格式支持node-local burst buffer支持,即每个进程输出其sub-files到本地文件系统(比如节点挂载的SSD盘),然后通过一个单独的后台线程将这些数据传到并行文件系统中。

  • 在线压缩功能

ADIOS2支持在线数据操作,包括无损和有损数据压缩功能。一般认为由于压缩开销导致耗时变长,但测试证明使用压缩功能没有导致显著性能下降,因其通过压缩减少了写出数据量,从而抵消了压缩所需开销。

  • In-situ后处理功能

通过SST引擎在数据生产者和消费者之间直连,数据不落盘,通过UCX通信协议从生产者内存中网络传输给消费者直接处理加工,这可能是未来的PIO库趋势。

实测效果

简单的测试下ADIOS2加速WRF IO情况。

测试个例网格数:640 * 514 * 59,使用512进程,8个计算节点。

使用ADIOS2输出BP5格式,默认是每个节点设置一个I/O聚合器,所以最终生成8个sub-files。

wrfout_d01_2020-07-01_12:00:00/
├── data.0
├── data.1
├── data.2
├── data.3
├── data.4
├── data.5
├── data.6
├── data.7
├── md.0
├── md.idx
├── mmd.0
└── profiling.json

下表是测试结果,简单的选取了单个时次输出结果进行对比。

I/O方式io_form_history单个时次文件大小耗时/s
serial NetCDF42424 MB15.992
PNetCDF111.5 GB6.932
ADIOS2 无压缩BP5141.6 GB0.141
ADIOS2 压缩BP514657 MB0.104

从上表可以看出:

  • ADIOS2输出方式相比PNetCDF并行输出方式加速超过49倍,这个结果超乎效果的好,需要进一步仔细研究。
  • ADIOS2开启压缩功能并未降低输出性能。

参考文献

E. Fredj, Y. Delorme, S. Jubran, M. Wasserman, Z. Ding, and M. Laufer, “accelerating wrf i/o performance with adios2 and network-based streaming.” arXiv, Apr. 13, 2023. Accessed: Jul. 21, 2023. [Online]. Available: http://arxiv.org/abs/2304.06603

ioadioswrf
朗读
赞(0)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

MetMan's Blog

本文链接:

https://blog.metman.top/index.php/archives/65/(转载时请注明本文出处及文章链接)

评论 (0)

互动读者

标签云

最新回复

暂无回复

登录
X
用户名
密码