论文部分内容阅读
计算流体力学(Computational Fluid Dynamics,CFD)采用数值计算方法求解流体控制方程,目前已广泛应用于航天航空、汽车船舶、机械制造等领域。本文针对真实复杂高阶精度CFD应用特点,研究异构平台大规模CFD并行计算中的负载均衡算法。主要工作包括: 1)针对典型高阶精度CFD程序和异构平台特点,深入剖析了大规模CFD异构并行数值模拟的负载均衡问题。结合我国自主发展的高精度CFD程序WCNS在国产异构众核超级计算机“天河二号”上的大规模模拟需求,提出了异构层次式负载均衡方案,该方案分为两个层次,即基于多维剖分的结点间负载均衡和基于伪剖分的结点内异构负载均衡。 2)提出并实现了两种基于多维剖分的结点间负载均衡算法。针对传统贪婪剖分算法未考虑通信性能影响因素,无法满足高阶格式CFD应用对网格剖分的限制,本文进行了三方面改进,实现了进程优先的多维贪婪剖分算法 PFMG。针对进程数远大于原始网格分区数时,PFMG算法剖分的网格块碎片化而导致的通信开销增加问题,本文提出了网格块优先的多维剖分算法GFM。采用NACA0012翼型、DLR-F6-WBNP翼身组合体构型、C919大型客机构型以及三角翼构型等大规模复杂真实网格作为算例,评估了上述算法的体积、面积平衡因子以及在 WCNS程序中的实际执行时间。测试结果表明:PFMG算法和GFM算法在体积和面积平衡因子方面均优于贪婪剖分,且能解决贪婪剖分无法进行剖分的一些算例;GFM剖分的子网格块通常对接更加规整,负载均衡性能优于PFMG。 3)提出并实现了基于伪剖分的结点内异构负载均衡算法。根据异构计算结点内CPU与异构加速器间通信由CPU控制的特点,本文提出了伪剖分的概念。伪剖分不需要改变对接面信息,仅需在异构计算部件间根据网格负载分配显式管理数据存储空间。伪剖分的剖分位置十分灵活,易于取得结点内异构计算负载均衡。针对结点内异构通信负载均衡,面向“天河二号”超级计算机,提出了三种伪剖分策略并进行了通信性能建模分析。结合结点间 GFM剖分算法,在WCNS程序中实现了基于伪剖分的结点内异构负载均衡算法,并采用压缩拐角算例进行了性能测试。测试结果表明,上述负载均衡方法能够有效支撑WCNS程序的异构协同并行,大规模并行可扩展性好。