论文部分内容阅读
如今计算流体力学(Computational Fluid Dynamics,CFD)在各个领域都得到广泛应用,如汽车制造业、气象、航空航天、快速交通、化工等领域。现代高性能计算机的发展为大规模CFD数值模拟技术的发展提供了平台。如何利用高性能计算机的超强计算能力,提高大规模CFD程序的并行性和可扩展性,使其能在较短的时间内完成数值模拟计算,是一项严峻的挑战。其中,如何在大规模CFD并行数值模拟中达成最佳的负载均衡性,尤其是如何对结构网格CFD应用中的网格数据进行合理均衡的划分,仍是本领域亟待解决的难题。本文围绕大规模多区结构网格CFD并行模拟中的负载平衡问题,进行了深入研究,主要工作和贡献如下:1.针对异构平台上多区结构网格CFD并行模拟中网格块数大于进程数的情形,利用遗传算法优越的搜索性能,提出了基于遗传算法的多区结构网格CFD任务分配策略。其中,在对负载平衡性能进行建模时采用了新的通信开销模型,可同时适应当前主流的同构及异构型高性能计算平台,具有更好的适应性。数值测试结果表明:在网格块数远大于进程数的情况下,基于遗传算法所获得的任务分配方案,其通信开销低于传统贪婪负载平衡算法,性能提升约45%。2.针对多区结构网格CFD并行模拟中的网格块分割问题,分析传统一维分割算法所存在的问题,提出了多维分割算法和智能多维分割算法。新算法能使得分割后的结构网格块外形更加接近“正方体”,能够获得较少的对接边界面面积和更低的“通信计算比”,从而降低了进程间的通信开销;进一步改进后的智能多维分割算法相较于多维分割算法能够获得更少的对接边界面数目,有效减少了进程间的通信次数。3.针对异构平台上具有任意区块体积分布的多区结构网格CFD并行计算问题,提出了一种适应异构计算平台的多区结构网格CFD并行负载平衡方法,该方面通过“结构网格的二次剖分、基于遗传算法的任务分配、进程上计算量的优化”三个步骤加以实现。大规模CFD并行数值测试结果表明,该负载平衡方法适用于任意网格区块体积分布的场景,并能同时适应同构型计算平台和异构型计算平台;以最大单进程计算时间为度量标准,该负载平衡算法相较于贪婪负载平衡算法最高有26%的性能提升;以最大进程间的通信时间为度量标准,该负载平衡算法相较于贪婪负载平衡算法最高有168%的性能提升。4.在负载平衡性能模型及上述并行负载平衡新方法的基础上,基于面向对象编程方式,发展了一套多区结构网格CFD并行计算负载平衡软件,该软件具有接口清楚、易于使用的优点。