论文部分内容阅读
不可压缩管流问题作为流体力学的重要研究对象,对此进行的研究成果被广泛应用于等离子体物理学和磁流体力学等相关领域的科学研究。对不可压缩管流进行精确模型的数值模拟需要巨大的计算资源和时间代价,始终是研究难点和热点。本文通过研究其中的两个关键步骤稀疏矩阵向量乘与有限差分Stencil算法,结合并行优化技术和数据局部性优化技术提高了不可压缩管流数值模拟的运行效率。在不可压缩管流数值模拟的矩阵向量乘求解问题中,矩阵一般呈现出总体稀疏局部存在较多稠密子矩阵的特征。传统稀疏矩阵存储结构并不能很好地利用这一特征,因此本文提出了QCSR稀疏矩阵存储结构。QCSR存储结构结合了四叉树结构和CSR存储结构的优势,通过对稀疏矩阵进行递归式分解和重排列实现矩阵的存储,提高矩阵向量乘运算的数据局部性。本文接着分析了CPU-GPU异构并行系统的编程模型CUDA,通过采用线程映射优化、数据存取优化、数据传输优化和数据复用优化四个策略,在GPU上实现了基于QCSR存储结构的稀疏矩阵向量乘。实验表明,与CSR存储格式对比,基于QCSR存储结构的稀疏矩阵向量乘取得了平均1.15的加速比,并且降低了运算过程中矩阵内非零元素分布因素对运算的影响,更具有普适性。因不可压缩管流中管流和外加磁场之间的相互作用以及传热问题的复杂性,基于压力与速度场耦合方程组的半隐式方法需采用细粒度的网格划分方式来分析流体内部细节,并由有限差分Stencil算法求解方程组。针对基于单向区域划分方法的有限差分Stencil算法会出现迭代间数据局部性差和可扩展性差等问题,本文提出了基于多网格空间对称交错条块式的有限差分Stencil并行迭代算法。该算法通过采用基于网格交错条块的区域划分策略,引入时滞技术并沿新增的时间轴方向将迭代空间划分成交错条块,提高了条块内部的数据局部性;通过采用多网格对称运行策略,提高算法并行度,加快了有限差分Stencil迭代算法的收敛速度;通过采用交错条块的重排序策略,有效地减少有限差分Stencil算法在迭代过程中的通信和同步开销,提高了并行效果。本文进一步在GPU上实现了多维有限差分Stencil迭代算法。实验表明,采用相应优化策略后的有限差分Stencil迭代算法性能缩短了计算时间。本文通过使用并行优化技术和CPU-GPU异构并行系统优化了稀疏矩阵向量乘和有限差分Stencil迭代算法这两个关键计算步骤,提升了不可压缩管流数值模拟效率。对此进行的并行化研究成果具有一般性,可以推广到相关的数值计算领域中。