唐 波,王勇献
(国防科学技术大学计算机学院,湖南 长沙 410073)
计算流体力学CFD(Computational Fluid Dynamics)是一门利用计算机对流体的复杂流动规律进行数值模拟的学科。在CFD数值模拟中, 首先要把计算区域空间离散化为网格, 生成模拟计算过程中所需要的网格文件。网格主要分为结构网格和非结构网格, 本文主要关注结构网格。随着科学技术的发展, CFD数值模拟精度要求越来越高, 网格规模越来越大, 要满足这种需求, 唯一的可行手段就是发展大规模并行计算。
当采用结构网格时, 计算区域被离散为多个大小不等的网格区块, 在模拟计算过程中, 这些区块被分配到不同进程上进行流体流动规律的数值模拟。如何使得数值模拟过程中各个进程上任务负载平衡, 是提高并行CFD程序性能的关键技术之一。对于当前并行CFD数值模拟应用, 任务负载平衡问题已经变得越来越复杂, 随着并行计算规模的加大, 进程间通信开销的大小对并行性能的影响在加大; 网格块数和进程数的不匹配, 网格块的计算量与进程的计算能力不匹配, 使得传统的分割或组合策略不能很好满足负载平衡的需求; 随着近年来异构并行机的出现, 不同类型处理器进程上的计算能力不一样, 不同类型处理器进程间的通信能力不一样, 使得传统的负载平衡算法已不能满足负载平衡要求。因此,有必要研究一种新的负载平衡算法来满足当前的并行CFD任务负载平衡需求。
目前, 国际上……