Hyper IO库是一类提供系统软件和应用软件之间连接的软件,提供科学数据的存储描述格式定义和文件操作,在高性能计算应用以及大量后处理、可视化及分析框架中广泛应用。
为了满足高性能计算对应用可扩展性和端到端性能提升的诉求,在华为自研高性能计算解决方案中加入自研Hyper IO库,此中间件面向鲲鹏平台优化,兼容多类型开源中间件接口。通过优化进程间IO范式、Step间IO范式将应用进行抽象和分类,并通过数据块聚合、重组、缓存等方式将应用的IO操作重新组合成对后端文件系统更为友好的操作,消除大规模应用的IO瓶颈,从而提升鲲鹏平台上高性能计算应用运行时的性能。
Hyper IO库可提升大型IO密集型高性能计算应用的可扩展性和端到端性能,减少并行文件系统故障,解决IO瓶颈和实践中应用直接针对特定存储进行优化不可持续的问题。
Hyper IO库具有以下关键特性:
当前版本的Hyper IO库提供针对NetCDF、PnetCDF、HDF5和MPI-IO这几种IO库的数据IO桥接和加速能力,后续版本中,Hyper IO库会针对POSIX IO语义提供加速能力。后续章节中,会对Hyper IO库支持的IO库相关的接口进行详细的描述。
在Lammps、Grapes、NEMO和WRF等高性能计算应用,以及大量后处理、可视化及分析框架中广泛应用。
Hyper IO库提供以下类型的接口供高性能计算应用使用:
名称 |
说明 |
---|---|
MPI-IO接口函数 |
通过对MPI-IO的API进行拦截,定向到Hyper IO库的同名接口函数获得性能加速。 |
PnetCDF接口函数 |
通过对PnetCDF的API进行拦截,定向到Hyper IO库的同名接口函数获得性能加速。 |
NetCDF接口函数 |
通过对NetCDF的API进行拦截,定向到Hyper IO库的同名接口函数获得性能加速。 |
HDF5接口函数 |
通过对HDF5的API进行拦截,定向到Hyper IO库的同名接口函数获得性能加速。 |