问题
现代HPC系统上计算性能和I/O性能之间的差距越来越大,许多以前认为是计算或内存受限的应用程序正迅速变成I/O受限。大约75-80%的HPC I/O是检查点数据,这些数据是突发的、不可变的,很少读一次写[3,40],这意味着将检查点写入并行文件系统以实现容错正迅速成为高性能的瓶颈。
许多Exascale级的系统都添加了NVMe SSD作为其存储分层的一部分。由于SSD的成本和更重要的写入耐久性等限制,HDD仍然是基础构建块。例如,Frontier的NVMe SSD存储容量为11.5 PB,而HDD存储容量为700 PB。因此,需要软件的设计使其在底层硬件上实现最高比例的可用性能,这通常是I/O中间件库实现的。
本文方法
本文提出了基于日志结构合并树(LSM树)的I/O库 LSMIO,在RocksDB基础上修改,不仅用于元数据,还用于科学数据。具有3个不同的接口:C++ IOStream API(FStream API);K/V接口;通过ADIOS2的插件机制的ADIOS2 API。
使用IOR基准测试其性能,在Lustre并行文件系统上运行时,其性能比其他文件格式(如ADIOS2、HDF5和IOR基准)高2.4到76.7倍。进一步证明,当LSM树I/O库用作ADIOS2的存储层时,得到的I/O库仍然比默认的ADIOS2实现高1.5倍。
总结
针对高性能计算系统的I/O性能,现有方法的写性能成为瓶颈。本文提出基于日志结构合并树的I/O库 LSMIO,使用LSM树作为写存储后端,在其上增加了FStream接口、ADIOS2接口, 实现比现有I/O库更高的写性能。