全隐式CFD的细粒度算法设计

2015.12.31

投稿:龚惠英部门:理学院浏览次数:

活动信息

时间: 2016年01月07日 13:30

地点: 延长校区应用数学和力学研究所会议室

报告主题:Fine-grained Algorithms of Fully-implicit CFD (全隐式CFD的细粒度算法设计)
报 告 人:罗力翔 研究员(美国北卡罗来纳州立大学)
时 间:2016年1月7日(周四)13:30
地 点:延长校区应用数学和力学研究所会议室
主办部门:理学院力学所
邀 请 人:力学所
报告摘要: 由于功耗和散热的限制,单个CPU处理核心的速度在可见的将来都很难有明显提高。多核CPU内部以及跨节点并行效率随着并行规模的增加而快速降低。另一方面,细粒度大规模并行能提供十几倍于传统CPU的内存带宽,并且能在维持运算速度的前提下减少分块,保证了更高的并行效率。在CPU速度无法获得突破的现实情况下,以GPGPU为代表的细粒度大规模并行将会是一个无法绕过的超算技术发展过程。
自从GPGPU概念提出以来,所有求解微分方程的尝试都只做到了在网格单元一级的并行。在花费大量人力物力把CFD程序移植到GPGPU上之后,人们发现实际的加速效果远远达不到预期。这一点在处理隐式方法的时候尤其明显,以至于大多数从事CFD高性能计算的专家学者都认为GPGPU无法高效的处理隐式CFD计算。
究其原因,在于三维多变量隐式算法严重受制于内存带宽(heavily memory-bound)。在网格单元一级上实现并行虽然停供了 的并行规模( 是计算域的线性规模),但对于有 个未知数的耦合微分方程系统,隐式方法的总体计算规模在 ,故单个并行线程的计算规模依然高达 。在三维多变量问题里这往往是GPGPU内存子系统无法承受的负担。这就是GPGPU在实现隐式方法求解微分方程时长期无法解决的关键问题。
以GPGPU为代表的细粒度大规模并行体系要求每个线程的内存访问量必须较小,而隐式方法中每个网格单元的数据量又必须在 。要解决这一根本性的矛盾只能依靠更细的算法粒度。本人最新研究结果成功解决了线性方程求解器与雅可比矩阵生成这两个细粒度隐式CFD的关键算法,从而使得隐式CFD的整体细粒度优化成为现实。
伴随细粒度大规模并行的发展,在多变量耦合微分方程求解器上应用细粒度算法的必要性将越来越明显。另一方面,偏微分方程的形式和对应的离散方式多种多样。 所以,针对细粒度体系的具体优化方法也将需要大量的进一步研究。