一种三维结构网格并行算法

一种三维结构网格并行算法

ID:46604010

大小:382.49 KB

页数:4页

时间:2019-11-26

一种三维结构网格并行算法_第1页
一种三维结构网格并行算法_第2页
一种三维结构网格并行算法_第3页
一种三维结构网格并行算法_第4页
资源描述:

《一种三维结构网格并行算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第40卷第6期2010年11月航空计算技术AeronauticalComputingTechniqueV01.40No.6NOV.2010一种三维结构网格并行算法韩志熔1,陆志良1,郭同庆1,陈迎春1’2(1.南京航空航天大学航空宇航学院,南京210016;2.上海飞机设计研究院,上海200232)摘要:基于三维结构网格,以MPICH2作为并行开发环境,研究了对等模式下流场的并行计算问题。在三维结构网格已经生成的前提下,针对计算区域的划分,网格输出格式和数据通信。提出了一种并行算法。算法的核心思想是将需要通讯的其他区域的

2、单元按区号从l到n排列。并获得本区域通信单元的I.J.K编号与其他区域通讯单元的排列序号的映射关系。最后,在IBMBladeCenterHS22刀片机平台上进行了算例验证,结果表明算法具有很好的可靠性与通用性。关键词:三维结构网格;MPICH2;并行计算;数据通信中图分类号:v211.3文献标识码:A文章编号:1671.654X(2010)06.0058.04引言现代计算流体力学所要解决的问题越来越复杂,对计算能力的要求与日俱增。一方面由于受当前元器件及工艺水平的极限限制,硬件的计算能力发展缓慢;另一方面传统的串行算法在

3、对某单一计算资源长期占置的同时,却无法利用其他闲置的计算资源。所以并行算法的提出正是上述迫切要求所造成的必然结果。并行算法可以较好地解决工程与科学研究领域中涌现出一系列规模巨大、时限要求严格的数值计算问题。目前,有关CFD大规模并行数值计算的研究工作主要集中于两个方面:一方面是复杂流动现象的研究;另一方面是解决工程应用问题。这使得数值模拟的对象多为三维,控制方程多为N.S方程。所以本文针对三维结构网格,给出了一套并行算法。1三维结构网格并行算法并行计算是将多任务映射到多处理机中执行,或将现实的多维问题映射到具有特定拓扑结

4、构的多处理机上求解。对于给定的计算任务,必须先设计出并行算法,才能并行实现。三维结构网格下,N—S方程的并行算法的主要思想就是将计算区域划分成若干子区域,每个子区域单独交由某一个CPU核心计算,计算中需要的其他子区域的流场变量,则通过各计算核心之间的数据通讯获得。而数据的通讯是由MPICH2提供统一的接口函数来实现。所以并行算法的核心问题可以归纳为:计算区域的划分与各个子区域之间的数据通信。1.1计算区域的划分计算区域划分应尽量满足负载平衡和通讯量最少化这两个基本要求。三维结构网格的划分,不仅仅取决于可同时可供自身使用的

5、CPU核心数目,同时还要考虑到网格本身的拓扑结构。结构网格在网格生成之初就需划分好拓扑结构,即初步分区已经形成。网格生成之后,为了平衡各CPU核心的计算量,提高计算效率,还可进一步将网格数目较大的子分区再次剖分,使每个子分区的网格数目相等或接近,以保证负载平衡。1.2计算过程中子区域间的数据通信计算区域划分完成后,直接将划分后的每个子区域映一一射到各计算核心上。每个进程负责一个子区域的计算任务。所以进程问通讯只发生在相邻子区域的对接边界上,数据交换量小,并行效率高,并且串、并行计算过程一致具有很好的并行特性。1.2.1需

6、要数据通信的网格单元的确定需要进行数据通信的网格单元取决于控制方程的数值离散方法。例如有限体积法下,使用Jamson中心格式,在计算过程中需要用到相邻子区域的二层网格单元的变量值,因此相邻子区域的第一、第二层网格单元需要进行数据通信;使用Roe格式在计算过程中只需要使用到相邻子区域的第一层网格单元的变量值。1.2.2计算核心间的数据通信由于数据通讯只发生在子区域的边界,因此对于生成好的结构网格的输出格式采用genetic格式较为合适。首先是因为Gridgen,ICEM等大部分网格生成软件都支持此格式的输出;其次如图1所示

7、,是因为genetic格式简洁明了地提供了每一个子区域边界的收稿日期:2010.06.21作者简介:韩志熔(1983一),男,江苏兴化人,博士,研究方向为计算流体力学。2010年11月韩志熔等:一种三维结构网格并行算法·59·I,J,K值与边界条件(物面,对称,远场,对接等)。如果是对接边界条件,下一行则会提供相邻子区域对接边界的I,J,K值以及区号。20子区域区号1112JlJ2KlK2边界条件●—53一ll72l图12l垒堡毖鎏握子区域边界条件合适的数据结构是简便快速实现信息交换的关键,本文以Imin(:,4),Im

8、ax(:,4),Jmin(:,4),Jmax(:,4),Kmin(:,4),Kmax(:,4)这6个数组记录相邻子区域的边界单元的信息。例如,Imin(:,4)用来记录本子区域I取图1中11,12中较小值时相邻子区域的区号以及I,J,K的值。当需要用到相邻子区域边界处的二层或更多层网格时。可以拓展上述6个数组的维数,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。