结构网格CFD程序的并行I/O技术研究
【摘要】:计算流体力学(Computational Fluid Dynamics, CFD)采用数值方法求解流体运动控制方程,获得流场参数,涉及流体力学、计算数学、计算机等多个学科。当前,CFD已广泛应用到飞机、火箭、飞船等航空航天器及汽车、列车等地面交通工具设计当中,CFD也发展成为典型的高性能数值计算应用领域。CFD计算涉及大量数据访问,在大规模并行计算情况下,串行I/O的性能与计算能力不匹配,I/O成为性能瓶颈。并行I/O是解决这一问题的主要途径之一本文针对CFD并行计算对I/O性能的需求,开展了并行I/O技术的研究及在实际CFD程序中的编程实现工作。论文主要工作包括:(1)研究了基于普通文件格式(Native方式)的并行I/O技术。针对一个求解微可压低速流动问题的三维结构网格CFD并行程序LM3D,设计实现了Native方式的单块结构网格并行I/O方法。针对一个高阶精度结构网格CFD程序HOSTA,研究其主要数据的并行I/O技术,实现了两种基于Native方式的多区结构网格数据并行I/O方法:1)所有进程参与读写多个普通文件;2)部分进程参与读写多个普通文件。测试表明,针对网格规模1.09亿的三角翼算例,并行I/O相对于串行I/O的性能加速比达到23.96,最高获得2283 MB/s的I/O吞吐率。(2)研究了基于HDF5的数据存储及其并行I/O技术。针对一个求解微可压低速流动问题的三维结构网格CFD并行程序LM3D,设计实现了基于HDF5的聚合并行I/O算法,测试表明,在使用4-32个进程时,基于HDF5并行I/O方式的写文件性能比每进程独立写普通文件的方式约高6.9~16.1倍,基于HDF5并行I/O方式的读文件性能不及后者,约为后者的20%-70%倍,但是读文件的时间开销远小于写文件的时间开销。针对一个高阶精度结构网格CFD程序HOSTA,设计了三种基于HDF5方式的独立并行I/O算法:1)所有进程参与读写多个HDF5文件;2)所有进程参与读写一个HDF5文件;3)部分进程参与读写一个HDF5文件。实际性能测试表明,对网格规模1.12亿的三角翼算例,并行I/O相对于串行I/O的性能加速比达到21.27,最高获得5.81 GB/s的I/O吞吐率,并使程序整体性能提高10%以上;对网格规模4.19亿的简单翼型算例,并行I/O最大获得了6.72 GB/s的I/O吞吐率。
【关键词】:计算流体动力学 结构网格 并行I/O HDF5 I/O性能 I/O吞吐率
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:O35;TP338.6