面向国产加速器的CFD核心算法并行优化
2021-09-17曹义魁陆忠华张鉴刘夏真袁武梁姗
数据与计算发展前沿 2021年4期
曹义魁,陆忠华,张鉴,刘夏真,袁武,梁姗
1.中国科学院计算机网络信息中心,北京 100190
2.中国科学院大学,北京 100049
引言
计算流体动力学(Computational Fluid Dynamics,CFD)是一门新兴的交叉型学科,它结合数学中的离散方法,利用计算机强大的算力对流体力学中复杂的微分方程进行求解,在科研和工程领域都发挥着巨大的作用。目前的CFD 商业软件、开源CFD软件等,大多数是基于CPU 开发的。但随着计算规模的不断扩大,CPU 的计算、访存及通信性能已经不能满足人们的需要[1],所以寻求新的方法实现对大规模数据进行并行处理已经成为国产CFD 软件发展的必要条件。
CPU+加速器异构架构的出现,为人们解决复杂的大规模计算提供了新的方法,它充分集合了CPU 和加速器的各自优势特点,将具有并行性的计算密集部分放到加速器上进行加速,极大的提高了程序的运行速度,这也成为了目前高性能计算的主流方法[2]。为了能够充分利用加速器的性能,需要针对程序中的算法特点设计具有高并行度、高访存带宽的并行方法。国内外已有较多将CFD 应用移植到CPU+加速器异构平台并进行优化的相关研究。
Corrigan 等[3]基于CPU/GPU 异构平台对流体力学中的格子玻尔兹曼方法实现了并行加速,并采用多种方法实现了简单高效的数据访存模式,使全局访存带宽利用率达到了86%,相应程序也得到33.6 倍的加速效果。Jespersen[4]设计并实现了基于对称逐次超松弛方法的CFD 软件的GPU 并行方案,并对其中的Jacobi 迭代部分进行了并行加速,单GPU 卡相对于单CPU 核心实现了大约3 倍的加速效果。……
登录APP查看全文
