《FLUENT 软件的多重网格并行算法及其性能》由会员分享,可在线阅读,更多相关《FLUENT 软件的多重网格并行算法及其性能(6页珍藏版)》请在金锄头文库上搜索。
1、2005 Fluent 中国用户大会论文集 251FLUENT软件的多重网格并行算法及其性能 余江洪1,朱宗柏1,2,肖金生1,3(1武汉理工大学材料复合新技术国家重点实验室,2现代教育技术中心,3汽车工程学院,湖北430070) 摘 要:FLUENT 软件是目前国际上比较流行的通用 CFD 软件包,用于模拟从不可压缩到高度可压缩范围内的复杂流动, 对大规模问题可用并行多重网格方法进行求解。 为了找出 FLUENT 软件的最佳解题规模和并行粒度,以期最大限度地发挥软件和硬件的效能,对 FLUENT 软件采用的多重网格方法和区域分裂法进行了理论分析,通过反复实验,重点讨论了在并行求解过程中,采用
2、不同的多重网格循环方法、区域网格分裂方法、解题的规模和计算节点数对并行性能的影响。FLUENT 软件有良好的并行性能,PEM Fuel Cell 模块可以进一步优化,HPCC 还有很大的升级空间。 关键词:燃料电池;多重网格;区域分裂;并行计算;FLUENT FLUENT 软件是一种 CFD( Computational Fluid Dynamics)求解器,它可以求解各种复杂流动,包括不可压缩流动(低亚音速) 、弱可压流动(跨音速)和强压缩性问题(超音速) 。1由于 FLUENT 软件有多种求解方法的选择,并且提供了多重网格方法来加快收敛速度,同时可以进行并行计算,因此它可以为速度范围很广的
3、流动问题提供高效准确的最优求解方案。本文介绍了 FLUENT 软件的多重网格及并行算法,并测试、分析了其并行性能。 1 FLUENT软件中的多重网格方法 多重网格方法 (MGM:MultiGrid Method)是一种高效的串行数值计算方法。其基本思想是,利用粗网格上的残差校正特性消除迭代误差的低频分量(长波分量,即光滑误差) ,同时利用细网格上的松驰光滑特性消除迭代误差的高频部分(短波分量,即振荡误差) ,套迭代技术负责通过限制和插值算子连接所有网格层共同求解同一问题1234。 多重网格循环可以定义为在每一个网格层面通过网格层次时在网格层面内应用的递归程序,该程序通过在当前层面完成单一网格循
4、环来扩展到下一个粗糙网格层面。 FLUENT 软件中有四种多重网格循环: V、 W、 F 以及灵活 (Flexible)循环。 V 和 W 循环可以用在代数多重网格( AMG: Algebraic MultiGrid)和全近似存储( FAS: Full-Approximation Storage)多重网格中, F 和灵活循环只限用于 AMG 方法。 V 循环如图 1(a)所示,它包括: 预松弛( 1)限制 V 循环插值后松弛( 3) W 循环如图 1(b)所示,它包括: 预松弛( 1)限制 W 循环 W 循环插值后松弛( 3) F 循环则是用 W 循环之后进行 V 循环来构成: 余江洪( 19
5、77 ) ,男,湖北潜江人,武汉理工大学材料科学与工程学院硕士研究生湖北省自然科学基金项目 (2003ABA088), 教育部博士点基金项目( 20030497012)资助。 2005 Fluent 中国用户大会论文集 252预松弛( 1)限制 W 循环 V 循环插值后松弛( 3) 对于 V 和 W 循环,各个层面的转换由三个参数控制: 1、 2和 3。 1(有时称为预松弛扫描)用于指定在当前网格层面进行预松弛迭代的步数(在图 1 中用圆形表示) ,以减少误差(当地误差)的高频部分,在 AMG 方法中 1的默认值是 0(即:没有预松弛) ; 2用于指定多重网格循环的类型,取值 1 和 2 分别
6、对应 V 循环和 W 循环多重网格,可以减少粗网格的误差(在图 1 中用四边形表示) ; 3(后松弛扫描)用于指定进行后松弛迭代的步数(在图 1 中用三角形表示) ,以减少在多重网格循环中产生的高频误差,在 AMG 方法中 3的默认值是 1,在 FAS 方法中 3的默认值是 0。 Flexible 循环使用粗化网格的计算由逻辑控制多重网格程序来实现。这一逻辑控制可以保证当前层面的网格的残差减小速度足够慢时就会调用较粗糙网格的计算。在当前粗糙网格层上的校正迭代解充分收敛而且因此应该转到下一层精细网格时,多重网格控制会做出适当的处理。 Flexible 循环和 V、 W 循环之间的主要区别是: F
7、lexible 循环会通过残差减小的公差和终止判据的满足情况,来确定什么时候按什么样的频率来处理每一层网格,而 V 和 W 循环则明确定义了各个层面之间的转换模式。 ( a) V 循环 ( b) W 循环 图 1多重网格循环 2 FLUENT软件中的并行算法 FLUENT软件的并行计算就是利用多个计算节点 (处理器 )同时进行计算。并行计算可将网格分割成多个子域,子域的数量是计算节点的整数倍 (如 8个子域可对应于 1、 2、 4、 8个计算节点 )。每个子域 (或子域的集合 )就会“居住”在不同的计算节点上。除支持单机多 CPU的并行计算外, FLUENT还支持网络分布式并行计算。 FLUE
8、NT软件内置了 MPI(Message Passing Interface)并行机制,大幅提高了网络分布式并行计算的并行性能。 在用 FLUENT 软件的并行求解器时,需要将网格细分割为几组单元,以便在分离处理器上求解。分割网格,需要选择生成网格的分割方法、设置分割数、选择区域和记录、以及所2005 Fluent 中国用户大会论文集 253使用的优化方法等。并行程序的网格分割有三个主要目标:生成等数量单元的网格分割;使分割的接触面数最小(减小分割边界面积);使分割的邻域数最小。 FLUENT 软件里的分割格式是采用两分的原则来进行的,但不象其他格式那样需要分割数,它对分割数没有限制,对每个处理
9、器都可以产生相同分割数 (也就是分割总数是处理器数量的倍数 )。 FLUENT 软件提供了多种方法进行网格分割。最有效的分割方法和求解的问题有关,可试用不同的方法,直至某一个适合所求解问题。 并行计算的性能可以用加速比来表示,计算加速比的一般方法是:假设在一个处理器上运行一个程序,令 T1为执行时间,然后在有 P 个节点的并行机 (各节点的 CPU 与串行机中的CPU 一样 )上运行同样的程序,令 TP为执行时间,则加速比 S=T1/TP,并行效率 =S/P5。 3 多重网格并行性能测试 3.1测试环境 硬件环境:高性能计算机集群( HPCC: High Performance Compute
10、r Cluster) ,主节点是DELL POWEREDGE_2650,配置了 1 个 Intel Xeon 2.8GHz/533MHz FSB 的 CPU、 2G/DDR266的内存,集成千兆网卡, 584G 的 SCSI 硬盘,计算节点是 DELL POWEREDGE_1750,各配置了 2 个 Intel Xeon 2.8GHz/533MHz FSB 的 CPU, 2G/DDR266 的内存,集成千兆网卡, 73G 的SCSI 硬盘,主节点和计算节点信息交换通过千兆以太网交换机完成。 软件环境: Red Hat Enterprise Linux 3.0 操作系统, FLUENT6.2.1
11、6 的 Linux 并行版。 3.2测试方案 本文测试的是单直流道单电池模拟,质子交换膜燃料电池是 FLUENT 软件中默认的七层模型,即阴、阳极的集流板、扩散层和催化层,以及中间的质子交换膜。采用 FLUENT 软件中 PEM Fuel Cell 模块计算 , 利用 FLUENT 内部命令 ( Benchmark) 测试迭代 100 步并记录 CPU使用率和运算时间( Elapsecl-time) 。按多重网格循环方法、区域分裂法和解题规模分三种方案测试。 方案 1:网格划分为 100 万单元,采用 FLUENT 默认的主轴对称的网格分裂方法和不同的多重网格循环方法测试,从 1 个到 8 个
12、计算节点,每个节点分配一个任务。 方案 2:网格划分为 40 万单元,以方案 1 中并行效率最高的多重网格循环方法,并入 2个计算节点,每个节点分配一个任务,采取不同的网格分裂方法进行并行计算。由于燃料电池模型几何特征的对称性,本实验只采用了 Principal X-Coordinate、 Principal Y-Coordinate、Principal Z-Coordinate 和 Cartesian X-Coordinate、 Cartesian Y-Coordinate、 Cartesian Z-Coordinate方法。为方便记录,上述网格分裂方法采用简写,如 Principal X-
13、Coordinate 简写为 P X-C。 方案 3:网格划分为 40 万单元和 10 万单元两种,以并行效率最高的方案 1 中的多重网格循环方法和方案 2 中的网格分裂方法,每个节点分配一个任务,测试计算节点从 1 个到 8 个的 CPU 利用率和运算时间。 由于主节点参与计算会导致负载不平衡,降低 HPCC 的加速性能5,因此以上方案中主节2005 Fluent 中国用户大会论文集 254图 2 不同 多 重网格循环方法的加速比 点均不参与计算,为了测试结果的准确性,同一测试重复一遍。由于测试结果重复性非常好,因此实验结果采用两次测试的算术平均值。 4 FLUENT的并行性能测试结果及分析
14、 4.1多重网格循环方法对并行性能的影响 方案 1 的测试结果如图 2, 随着多重网格循环方法的不同,加速比和计算速度均不相同。这是因为不同循环方法的计算量和通讯量不一样,对于 V 循环、 F循环和 Flexible 循环,计算节点 CPU 利用率都很高,在 1 4 个节点时,都达 90%的利用率,因此分析对于这三种循环,主要还是因为计算量不同所引起的测试结果不同;而采用 W 循环时, CPU 利用率极低,最高只达到 10%,并且计算速度非常慢,可见采用 W 循环并行计算时,通讯量相当大,这是主要影响因素。 从图 2 中可以看出,在 5 个计算节点以前,四种循环方法的并行加速比基本相同,但计算
15、节点继续增加时, V 循环的并行加速比明显比其它三种大;随着计算节点的增加,所有的循环的加速比增长率都逐渐变小。 不同循环 1 个节点的运算时间是 V 循环 4786 秒, W 循环 37504 秒, F 循环 5121 秒,Flexible 循环 6870 秒。其中, V 循环运算速度最快, W 循环运算速度最慢,这是由于 V 循环运算量最少, W 循环运算量最大的缘故。 4.2区域分裂法对并行性能的影响 方案 2 的测试结果如表 1 所示,不同的网络分裂方法计算所用的时间各相同,有的甚至相差很大。这是因为不同的网络分裂方法所产生的分割接触面和领域的多少不同,并行计算时所需交换的数据量不同,
16、因而通讯量不同,从而引起计算速度不同。分割接触面和领域数越少,计算速度越快。不同的求解问题模型需要寻找不同的网络分裂方法,以求计算速度最快。本文中最佳网络分裂方法是 Cartesian X-Coordinate。 表1不同网络分裂法的测试结果 方 法 P X-C P Y-C P Z-C C X-C C Y-C C Z-C 分割接触面 1.0 1.0 0.9 0.2 0.9 0.7 分割领域 % 4.8 4.8 5.3 1.0 5.3 4.3 时 间 s 2659 2661 2739 2120 2331 2159 4.3不同解题规模对并行性能的影响 方案 3 的测试结果如图 3 所示,相同的多重网格循环方法( V 循环)和网格分裂方法123456781.01.52.02