混合网格并行计算的分区方法
- 格式:pdf
- 大小:275.94 KB
- 文档页数:4
有限元网格自动生成的并行区域划分算法摘要提出了一种基于网格生成递归法的并行区域划分算法,该算法依据网格生成代价的估算分析,采用迭代分解法对区域进行并行划分.在曙光1000A 系统上的运行结果表明,该网格算法的效率和加速比均优于串行递归算法.关键词有限元网格;并行区域划分算法;网格生成代价;迭代分解法基于网络生成递归法[1~3],本文提出了一种并行区域划分算法,该算法满足以下四个基本原则:a. 任务平衡性原则.能生成平衡的子区域集,即在各子区域中生成网格的时间大致相等.b. 边界最简原则.子区域的边界结构简单,边界处理所需时间短,处理器间消息传递的费用低.c. 网格均匀原则.并行生成的最终网格形状均匀,无奇异单元.d. 区域划分代价最小原则.区域划分算法本身的代价尽可能小.1、基本思想及相关算法在网格生成递归法中,如果每个子区域都包含相同的单元数,就比较容易实现任务平衡.因此,首先按照单元数估算待处理区域的网格生成代价,然后根据当前参与并行处理的处理器数N 对区域进行分解,并对分解所得子区域进行边界处理,最终获得相互之间既平衡又独立的N个并行子任务.1.1网格生成代价的估算算法网格生成代价与分布于待处理区域中的单元数目紧密相关,而单元数目是由该区域的总面积S和区域内单元分布密度决定的.估算公式如下:G=S/S tri,(1)S tri=[L2/(2M2)]sin60°,(2)M=Σ2l i/(d i1+d i2) (i=1, 2, …,n),(3)式中,G表示三维平面区域(含有n条边) 的网格生成代价;S表示该区域的面积;Stri 是对区域内单个三角形单元平均面积的粗略估算值;L表示区域的周长;M表示区域边界上总的离散段数;l i表示第i条边的长度;d i1和d i2分别表示第i条边前端点和后端点处的单元边长.据以上公式,网格生成代价的估算算法步骤如下.步骤1依次计算区域各边界的长度和离散段数,根据式(2)和(3)计算S tri;步骤2应用三角累加算法计算S,根据式(1)求得G.三角累加算法步骤如下:a. 置变量S 为0;b. 选取区域的任意一个顶点作为V1,按顺时针(或逆时针) 方向取与V1依次相邻的两个点为V2和V3;c. 计算由V1, V2和 V3组成的三角形的面积,累加入变量S;d. 以V3为新的V2,按顺时针(或逆时针) 方向取与V2相邻的第一个点为新的V3,若V3=V1,则算法停止;否则转c.1.2区域划分算法估算出整个区域的网格生成代价后,区域划分算法的任务就是:寻找N-1条分割线,将区域分割为N个子区域,使得各个子区域的网格生成代价大致相等.由于无法精确确定子区域中的单元数目,因此允许各子区域的网格生成代价在G/N附近有一个δ误差,亦即所产生的子区域的网格生成代价都属于[G/N-δ, G/N+δ]区间.根据原则b,任何一条分割线的两端点都定位在区域的边界上,而不落在区域中.在图 1 (a)中,任何一个子域都只通过一条完整的分割线与其他子域相邻;而在图1(b)中,子域3与子域1和2之间的相邻关系不便于边界处理.(a)(b)图1区域划分效果图根据原则c,多条分割线不交于同一点,因为这种分割在N较大的情况下会导致极点现象——在多条分割线的交点处出现小内角的长薄单元,影响网格形状.本文采用迭代分解法划分区域,步骤如下.步骤1记待分解的区域为D;步骤2循环执行以下步骤N-2次:a. 在D中找一条分割线将区域分为两个子域D1和D2,使D1的网格生成代价约等于G/N;b. 将D1从D中去掉,以D2为新的D,转步骤a;步骤3在D中找一条分割线将区域分为两个子域D1和D2,使D1和D2的网格生成代价均属于[G/N-δ,G/N+δ].本算法中,寻找分割线的方法是:先在区域中找到一个合适的顶点作为分割线的前端点X,然后从这个顶点出发,沿顺时针(或逆时针)方向按对半查找法在区域的边界上寻找分割线的后端点Y.对半查找算法步骤如下:步骤1从X点出发,按顺时针(或逆时针)方向取与X依次相邻的两个点为R和Y;步骤2计算分割线XY左侧(或右侧)子域的网格生成代价g;步骤3若g∈[G/N-δ,G/N+δ],则算法停止;若g>G/N+δ,则令T=Y,以T与R 的中点为新的Y,转步骤2;若g<G/N-δ,则令R=Y.若Y是原区域的顶点,则沿顺时针(或逆时针)方向取与Y相邻的第一个点为新的Y,否则,以R与T的中点为新的Y,转步骤2.根据以下原则确定分割线的前端点X:对第一次分割,选取区域中最大顶角所在顶点为X;对第i (i=2, 3, …, N-1)次分割,选取分割线两端点中较大顶角所在的顶点为X.根据这一策略,每次分割都选取顶角较大的点作为前端点,一定程度地避免了极点的形成,但还不能完全避免极点的产生.对此,引入分割线共点控制机制:首先定义参数R,由它指明能交于一点的分割线的最大数目,然后,每次分割都用变量r记录X处的共点率,一旦发现r>R,就变换X.图 2 是对区域ABCDEF作6次划分的示意图.在图2(a)中,R取值为2,寻找第5条分割线时,因为∠CHI比∠HIE大,X原应定位在H点,但由于已有两条分割线经过H点,因此如果这次还选取H作为前端点,那么共点率r增为3,超过预定义的R值,于是,改选I点为X;而在图2(b)中,因为R取值为3,所以,H仍可作为第5条分割线的前端点.(a) R=2(b) R=3图2共点控制该区域划分算法的特点是:并行任务的负载平衡程度由δ调节;所有分割点都定位在区域的边界上,因为每次分割剩下的子域只有一条边是在分割过程中新加入的分割线,无论选取这条边的哪个端点作为X,X和Y总是落在区域的边界上,有效地满足了边界最简原则,;通过R灵活控制分割线共点率,消除极点,保证网格均匀度.2、并行实现本文研究的并行区域划分算法已在曙光1000A系统上实现.根据曙光1000A系统目前的条件和特点,选取PVM作为并行编程环境,分三个步骤实现有限元网格的并行生成:首先,由node1上的master任务程序检测当前PVM中的结点数N,运用区域划分算法分解待处理的区域为N 个子区域,将各子区域分配到各node上;然后,并行执行各处理器上的slave任务程序,在各子区域中生成均匀网格;最后,由node1上的master任务程序收集、组装在各处理器上生成的子区域网格.这里,采用了动态负载平衡策略——farm模式,但有一点与通常情况下不同:为了提高处理器利用率,node1在子区域分配过程中也分得一个子区域,所以,在数据分配之后,子区域网格传回之前,主处理器也不空闲.由于在并行划分阶段已经对边界进行了预处理,因此,一旦子区域分配给各个处理器,所有处理器将同时独立地在自己的数据子块上根据预定义的单元分布密度生成网格.经过大致相等的时间段后,它们将完成各自的工作,并将生成的子区域网格传送给master任务程序.整个并行算法的通信很小,仅包括从node1向其他各node广播子区域数据,以及各node向node1回送生成的子区域网格单元.3、实验结果表 1 以实例说明上述并行算法在曙光1000A系统上的运行效果(表中括号内外的数据分别对应例1 和例2).在例1 中,δ=G/(5N(N-1)),G=15987 个,实际生成的单元总数为12531个;例2 中,δ=G/(5N(N-1)),G=33452 个,实际生成的单元总数为28769个.由于区域划分和组装数据所耗费的时间是μs级的,因此将并行算法的执行时间(t) 分为两部分:子区域网格生成时间(t1) 和通信时间(t2).t1指各node在其分配到的子区域中生成网格的时间;t2包括node1向其他各node发送子区域数据的时间,以及各node向node1回送子区域网格数据的时间.表 1 给出了使用2,3,4,5,6个node进行并行网格生成的时间开销及加速比(ν).使用一个处理器时,既不需要做区域划分,也不用通信,因此,在区域中生成网格的时间即为全部运行时间.表 2 给出了例1中并行算法在六个node上运行时各node上生成的网格单元总数的估算值(n) 和实际值(n?),以及在子区域中生成网格的时间(t3).由表2 可见,各子区域单元总数的估算值与实际值的比例分布一致,各node之间网格生成时间差别小于5%,达到了很好的负载平衡.值得注意的是,网格生成时间并不总是与网格单元数目成正比,其原因在于网格生成的时间开销不仅受子区域内网格单元数目的影响,而且与网格单元在子区域中的分布情况有关.表2负载分配表参考文献1Facello M A. Implementation of a Randomized Algorithm for Delaunery and Regular Triangulations in Three Dimensions. Computer Aided Geometric Design, 1995 (12): 349~3702Chan C T, Anastasion K. An Automatic Tetrahedral Mesh Generation Scheme by the Advancing Front Method. Communications in Numerical Methods in Engineering, 1997, 13: 33~463Zeng Yong, Cheng Gengdong. Knowledge-Based Free Mesh Generation of Quadrilateral Elements in Two-Dimensional Domains. Microcomputers in Civil Engineering, 1993 (8): 259~270。
ANSYS CFX的并行原理基于有限元的有限体积法,并采用了ANSYS-CFX求解器。
这种求解器具有优秀的并行计算能力,计算速度与CPU数量成近似正比的关系。
在CFX中,并行计算方法从总体上可以分为两个步骤:
网格分区:首先将所要计算的网格区域划分割成为指定数量的小分区,求解器会按照用户设定分割计算域,但最多不能超过512个分区。
计算各分区:网格分区过程结束以后,求解器就将分割好的每个网格分区交给处理器计算。
一般来说,求解器并不限制每个处理器所求解的分区数量(例如2个分区可以共用一个处理器)。
此外,ANSYSCFX所具有突出的并行运算功能还表现在:它可以在混合网络上的WINDOWS、UNIX、LINUX平台之间随意并行运算。
如需了解更多关于ANSYSCFX并行原理的信息,建议咨询专业人士或查阅相关书籍。
结构动力学有限元混合分层并行计算方法结构动力学是研究结构在外界载荷作用下的响应及其稳定性的一门学科。
有限元方法是结构动力学分析中广泛使用的一种数值方法。
为了提高计算效率和精度,混合分层并行计算方法应运而生。
混合分层并行计算方法是指将有限元方法与分层并行计算相结合的一种计算方法。
在结构动力学中,混合分层并行计算方法被广泛应用于解决大型结构的复杂动力学问题。
它通过将结构进行分层划分,将计算任务分配给不同的处理器进行并行计算,从而大幅提高计算速度和效率。
混合分层并行计算方法的基本思想是将结构分为多个子结构,并将每个子结构分配给一个处理器进行计算。
每个处理器独立地计算与其对应的子结构,然后通过通信机制将计算结果交换,并进行整体求解。
这种并行计算方法充分利用了计算机集群的计算能力,提高了计算效率。
在混合分层并行计算方法中,有限元方法被用于对每个子结构进行离散化,并建立相应的有限元模型。
有限元模型中的自由度数目较少,计算量相对较小,可以降低计算复杂度。
同时,分层并行计算策略使得计算任务可以被同时执行,加速了计算速度。
混合分层并行计算方法的应用范围广泛。
例如,在工程领域中,可以用于模拟大型桥梁、高层建筑等结构的动力学响应;在航空航天领域中,可以用于模拟飞机、卫星等复杂结构的动力学特性;在地震工程中,可以用于模拟地震对建筑物的影响等。
混合分层并行计算方法可以准确预测结构的振动特性、动态响应和破坏过程,为结构设计和分析提供了有力的工具。
总之,结构动力学有限元混合分层并行计算方法是一种高效、准确的计算方法。
它通过将结构进行划分和并行计算,充分利用计算机集群的计算能力,实现了大规模结构动力学分析的快速求解。
混合分层并行计算方法在工程领域中的应用潜力巨大,有着广阔的发展前景。
fluent并行分割网格方法1 网格分割的一般方法在用Fluent 的并行求解器时,需要将网格细分割为几组单元,以便在分离处理器上求解将未分割的网格读入并行求解器里,可用系统默认的分割原则(推荐使用)还可以在连续求解器里或将mesh 文件读入并行求解器后自己分割。
在建立问题(定义模型、边界条件等)之前或之后分割网格都可以,不过,由于某些模型的特点(象非等形接触面、滑移网格、shell-conduction encapsulation 的自适应),最好是在建立问题后。
!!如果case 文件含有滑移网格或非等形接触面,要在计算过程中进行自适应,因此要用连续求解器分割。
值得注意的是计算节点间的相关单元的分布在网格自适应时要保持不变,除非是非等形接触面,这样在自适应后就不必重新分割了。
若在网格分割前用连续求解器建立问题,用于此项工作的计算机必须有足够大的内存来读入网格。
如果网格太大,不能读进连续求解器,可将未分割的网格直接读入并行求解器里(使用所有被定义主机的内存),然后让并行机自动分割。
在这种情况下,你将在做一个初步网格分割后建立问题。
如果必要可以手工再重新分割一次。
2 自动分割网格在将case 文件读入并行求解器之前选用两分法或是其他网格分割方法来自动分割网格。
对一些方法,可预览来确定是否为最佳的网格分割,注意case 文件中含有滑移网格或非等形接触面,在计算过程中要自适应,则需要在连续求解器中分割此文件,然后再把它读入并行求解器,在Auto Partition Grid 控制面板上选择Case File 选项。
并行求解器上自动网格分割的步骤如下:1. (任选)在菜单栏上点Parallel Auto Partition...,弹出Auto Partition Grid 控制面板设置分割参数。
读入mesh 文件或case 文件时如果没有获取分割信息,那就保持Case File 选项开启,Fluent 会用Method 下拉菜单里的方法分割网格。
网格计算中的并行化技术研究随着计算机技术的不断发展以及网格计算领域的快速进步,计算机科学家和研究者们越来越关注如何将更多的计算机资源整合起来,以满足越来越严苛的计算需求。
而并行化技术也因此成为了研究的重点之一。
本文将深入探讨并行化技术在网格计算中的应用与研究。
一、并行化技术简介并行计算技术是指多台计算机对同一任务同时进行处理,同时将处理结果进行整合的技术。
其目的是通过多台计算机资源的合理利用,提高计算机处理速度以及处理能力,从而更好地满足用户对计算能力的需求。
并行计算技术分为两大类:共享内存并行和分布式内存并行。
前者是指多个处理器通过共享一个内存地址空间同时工作,后者则是多个处理器通过网络连接,各自拥有独立的内存空间并进行分布式计算。
在网格计算中,一般采用分布式内存并行计算方式。
二、网格计算中的并行化技术1. 任务分解并行网格计算中最简单、也是最常用的并行化方式是任务分解并行。
其基本思想是将任务分解成多个独立的子任务,由多个计算机节点同时进行计算,最后将各节点计算结果合并为最终结果。
任务分解并行具有简单易行、便于实验等优点,也符合很多实际应用情况。
然而由于其任务局限性,需要多次进行分解并行处理,更加复杂、难于预测。
2. 数据并行数据并行是指将原始数据分成多个部分,由不同计算机节点分别处理每个部分,最后将处理结果合并为最终结果的一种并行方式。
数据并行针对可分解问题的计算资源分配非常灵活,处理大量的数据效果确实显著提升。
在数据密集型的应用领域中应用广泛。
3. 模型并行模型并行通常用于大规模模型计算。
对于大规模模型的计算任务,人们采用将模型分割成多个部分,由不同的计算机节点处理各自的部分,最后通过规定好的通信协议互相传递处理结果,完成整个模型处理的过程。
该方式将一个大型模型分解成多个小型模型进行处理,处理复杂的任务的同时仍然有非常高效的计算速度,缺点是需要耗费较多的时间和劳动力进行模型分割。
三、总结并行化技术的应用已经广泛地渗透到网格计算的各个领域。
非结构动网格分区并行计算方法程兴华;刘巍;张理论【摘要】针对包含运动边界的非定常流动问题,基于弹簧近似法设计了一套非结构动网格分区并行计算流程,引入了METIS软件进行非结构网格二次剖分,研究了对接边界通信类型及其处理方法,基于消息传递并行编程模式实现了非结构动网格求解器的并行化.测试结果表明:该求解器具有较高的并行效率,网格变形模块对非结构动网格并行计算性能具有重要影响.%For parallel simulation of the unsteady flow field with moving boundary, a domain-decomposed computation procedure was designed based on the spring analogy method, and the METIS software was introduced to repartition the original grids.With the research of 1-to-1 interface communication styles and realization, the unstructured dynamic mesh solver was parallelized based on the message passing interface.The test shows that the solver has high parallel efficiency, and the module of mesh deforming has significant effect on the parallel performance.【期刊名称】《国防科技大学学报》【年(卷),期】2017(039)001【总页数】5页(P81-85)【关键词】非结构网格;动网格;区域分解;并行计算【作者】程兴华;刘巍;张理论【作者单位】国防科技大学海洋科学与工程研究院, 湖南长沙 410073;国防科技大学海洋科学与工程研究院, 湖南长沙 410073;国防科技大学海洋科学与工程研究院, 湖南长沙 410073【正文语种】中文【中图分类】O35动网格技术是解决多体分离、流固耦合、可变形飞行器、机翼气动弹性振动和生物仿生流等包含运动边界的非定常流动问题的关键技术[1-3]。