面向对象有限元并行计算框架PANDA

合集下载

面向对象的并行算法设计

面向对象的并行算法设计

面向对象的并行算法设计
陈坚
【期刊名称】《工程与试验》
【年(卷),期】2007(047)002
【摘要】并行算法设计是实现并行计算的第一步.并行算法设计过程中需要解决任务划分(Partitioning)、通信分析(Communication)、任务组合(Agglomeration)和处理器映射(Mapping)四方面的工作,相应产生的设计方法学就是PCAM.但是在应用PCAM方法设计并行算法时会遇到如何调节数据与算法之间的矛盾的问题.针对这一问题本文提出面向对象的并行算法设计的方法,即OOPCAM方法.在PCAM 方法的基础上结合面向对象思想解决原有方法存在的问题.
【总页数】3页(P49-51)
【作者】陈坚
【作者单位】长春税务学院网络实验中心,吉林,长春,130117
【正文语种】中文
【中图分类】TB47
【相关文献】
1.阶段并行模型上的并行算法设计 [J], 尚明生;刘宴兵;孙世新
2.面向对象有限元并行计算框架PANDA的并行机制 [J], 李于锋;张亚林
3.FT64并行系统上的EP和GEMM并行算法设计与实现 [J], 晏小波;唐滔;杨学军
4.基于国产YH系列并行机的并行算法设计分析与实现 [J], 丘威;黄建妮
5.面向对象的并行算法设计 [J], 李印
因版权原因,仅展示原文概要,查看原文内容请购买。

面向对象有限元并行计算框架PANDA的并行机制

面向对象有限元并行计算框架PANDA的并行机制

面向对象有限元并行计算框架PANDA的并行机制李于锋;张亚林【摘要】为实现面向对象有限元并行计算框架PANDA对高性能计算的支持,分别从并行计算流程、区域分解、分区信息和通信封装等部分设计PANDA框架在并行计算方面的数据结构.在计算流程中建立区域分解和并行求解器的配合协作方式,进而描述进行区域分割的3种网格剖分方法;对分区边界单元和节点信息的组织以及对并行通信操作的封装使复杂的并行通信调用简单、易行.用PANDA框架开发有限元程序时,只需以串行方式编写代码就可得到并行计算服务.对某夹具的算例表明PANDA框架并行计算实现的正确性和可靠性.【期刊名称】《计算机辅助工程》【年(卷),期】2011(020)001【总页数】6页(P24-28,41)【关键词】并行计算框架;PANDA;有限元;软件开发;并行机制【作者】李于锋;张亚林【作者单位】中国工程物理研究院计算机应用研究所,四川绵阳,621900;中国工程物理研究院计算机应用研究所,四川绵阳,621900【正文语种】中文【中图分类】TP319;O2460 引言有限元法是当今主流的数值计算方法,被广泛应用于工程领域的各个方面.大量高性能计算机的出现,特别是集群系统的广泛应用,使大规模复杂数值模拟得以实现,但必须采用并行技术进行程序开发.有限元并行计算框架开发的目的是使在复杂网格上进行的大型数值模拟程序开发变得更加快捷、高效.近年来,面向对象有限元技术[1-4]发展迅速,而开发框架却为数不多,且功能模块有较强耦合[5].为此,中国工程物理研究院总体工程研究所和计算机应用研究所联合开发有限元并行计算框架PANDA[6].框架中各组件松散耦合,可适应各种线性和非线性有限元法,不仅提供单元公式和本构模型的添加接口,也提供各种复杂边界条件的实现方法.基于消息传递在分布存储模型的并行机上开发并行程序,能显著控制数据分配和通信,这种控制又促进在大规模分布存储并行机上的高性能编程.[7]针对目前高性能集群的广泛应用,采用 MPI(Message Passing Interface)以分布存储方式实现有限元并行是正确的选择.面向对象技术对并行编程过程有重要影响(如对数据和函数的封装、继承和多态性),许多基于类等的编程思想都来源于串行编程领域,但也开始在并行编程中使用,尤其是恰当的抽象可隐藏那些使编程复杂的并行性.[7]以面向对象技术为基础设计的PANDA框架正体现该优点.1 框架的数据结构框架的主要数据结构有网格、场变量、单元组和通信数据管理等.网格是整个模拟计算区域的离散,支持线段、三角形、四边形、四面体和六面体等几何形状.一个计算区域可包含不同形状的网格子集.所有网格单元被划分为若干单元集,一个单元属于且仅属于一个单元集.场变量即自由度及其微分,框架以场的形式组织变量.任意一个自由度变量都归属于某个场,场通常定义在网格节点或单元上.根据时间积分算法,变量可能存储的数量不一,即场可能含有d阶微分,均要开设存储.所有的场均由节点管理器管理. 单元组是PANDA框架的算法核心类,实现一类有限元公式,在特定单元形状、形函数(含单元空间积分方式)、计算参考系(Euler或 Lagrange或ALE)和物理固有非线性(如接触)等情况下形成一种特殊的计算模式,即如何形成系统方程的单个单元贡献.每个单元组都会关联一个场,同时关联若干个单元集,负责遍历所施加的单元,进行单元矩阵和右端项的计算,并提供组装方程组的接口.通信数据管理基于网格剖分,所有单元集作为一个整体进行剖分.在采用镜像节点后,通信只发生在节点信息上.2 并行的实现策略PANDA框架基于MPI实现并行,具体策略为:首先,基于几何网格的区域分解,将子域映射到各进程;然后,每个进程在其子域上计算单元矩阵和单元右端项并提供组装接口,借助并行线性代数求解器实现大规模矩阵的分布式存储、组装接口以及方程求解,求解后,交换场数据边界信息;最后,进程在局部进行时间积分更新.所有的有限元相关计算都是分布式并行的,而大规模方程求解的主要并行任务交由线性求解器库负责.目前,已在PANDA框架中集成Aztec,SPOOLES,SuperLU,HYPRE[8],PETSc,Trilinos和PHG(由中国科学院科学与工程计算国家重点实验室开发)等著名求解器库.3 框架的并行计算流程框架并行设计的关键是数据变量的分布式存储和场数据时间更新算法的并行化.框架默认对所有的场变量基于网格区域分解进行并行通信.框架并行计算流程见图1. 图1 框架并行计算流程Fig.1 Parallel computation process of framework由图1可知,并行计算首先需进行区域分解,然后将局部模型信息读入框架,再进行场变量的编号(局部编号在进程内部确定,全局编号则通过全局通信确定).基于编号的局部和全局映射关系,每个子域将遍历其所存单元,进行单元矩阵和右端残力的计算和组装,并组装到在初始阶段就设置好的并行求解器中.有限元计算对每个自由度都形成一个代数方程,方程的编号很重要,框架采用的编号方式为:局部编号按节点进行,节点内按场顺序进行,场内按自由度顺序进行;全局编号按进程号排序,并保持局部编号的连续性.框架的并行是基于节点的剖分,所以按节点编号的方式对于并行处理十分方便.得到自由度编号和活动方程的编号(包括全局编号和局部编号对应关系),就可将从单元算法得到的单元矩阵和残量组装得到整体方程的矩阵和残量.通过并行求解器得解的本地部分.并行求解器主要完成A(u)=f的求解.作为一个独立的外部接口模块,其输入包含向量f(或者还有初始值u)的分布式存储、算子A的操作对u的影响方式.其中,可能涉及稀疏矩阵的分布式存储、A(u)的分布式计算和规约;输出为解向量u的分布式最终结果,其在误差允许范围内近似满足方程或报告不收敛状态.求得分布式存储后,下一步对场的时间积分算法更新.为计算内力,需从相邻分区获得外部影像节点场信息,需用到分区管理和通信管理.PANDA框架将分区和通信进行封装,使上层只需1~2个函数的调用即可完成外部信息的交换,设计灵活、巧妙.在进行场信息的更新以及内力的计算后,就可推进时间步进行下一次的循环迭代:根据算法选择进入局部单元遍历计算和组装,或只进行右端残量的遍历计算和组装,再到并行求解器求解,最后到场的更新和内力计算,循环往复.3.1 区域分解框架采用网格区域剖分的方法实现计算任务的分解.目前,框架网格分解以串行实现,且以节点分解为基础,进而对单元和通信作出安排.PANDA框架提供的分解方法有3种:图分解方式、索引分解方式和空间分解方式.图分解方式先将网格组织成图的形式,然后按照图的分解方法进行分解,最后将结果转变为网格单元和节点的分解;索引分解方式是按照模型读入的节点顺序依次分配给p个进程;空间分解方式是按照空间坐标进行箱子分解,每个箱子的尺寸都相同,先形成很多小箱子,然后按照箱子的邻接关系,借助图剖分将箱子分成p个组.由于有限元计算大多是以单元为单位进行的计算密集型作业,对于复杂几何构型的离散化,图剖分方式似乎是最好的选择.将网格组成图的方式由单元连接关系和节点场关联信息共同确定.场关联信息存在于一些复杂相依的约束条件(如边界条件或接触条件)中.目前,PANDA框架调用METIS[9]开源软件包进行多水平图剖分,也可采用其他方式分解.由图剖分得到网格节点的划分情况,然后需确定如何对有限元计算形成分区信息,用这种信息指导数据通信.3.2 分区信息框架采用类PartitionT管理所有的分区信息.首先明确的是哪些节点或单元信息需进行通信,哪些在本地局部范围不需要与其他分区通信.从区域分解得到节点-分区号映射后,结合图的表示进行节点的类别划分,再结合单元连接关系进行单元的类别划分.根据图和单元连接关系可将本地存储的节点和单元进行分类,形成3类节点和2类单元,见图2.图中网格被虚线分为2个子域,节点和单元的分类基于右边的子域.内部节点指没有与其他分区节点有连接关系的本分区所拥有的节点;边界节点指至少与某个其他分区节点有连接关系的本分区所拥有的节点;外部节点指与本分区边界节点有连接关系的其他分区的节点.内部单元特征是其所有节点均为内部节点,边界单元特征是至少一个节点为边界节点或外部节点.图2 并行计算中分区的单元和节点分类Fig.2 Node and element classificationin a partition of parallel computation在节点和单元分类后,就可以明确消息的来源和目的.为方便管理,采用分区对象处理这些信息.调用分区函数,得到分区信息的初始化,其中主要函数有4个:(1)Set()设置分区总数、ID号和本地3类节点,接收信息的分区号和节点号等;(2)SetOutgoing()设置发送信息的节点号;(3)InitElement Blocks()设置2类单元数组,单元映射和逆映射数组的主维数为单元块数目;(4)SetElements()按照单元连接关系将单元划分为2类,设置各单元数组及映射数组.通过这些函数可对分区对象进行必要的设置,另一种方法是读取分区文件.在设置完成后就可使用PartitionT对象,得到的重要信息包含本分区所有节点号、所有单元号、编号局部到全局的映射及其逆映射等.得到分区信息后,可根据需要写几何输出文件.设总分区数目为M,本分区号为m(0≤m<M),则几何分区文件分别为file.nM.pm.geom和file.nM.partm.在geom文件中指定的其他文件(如节点坐标文件、单元集子文件、节点集子文件)中的编号都是从1开始的局部编号.节点和单元的映射信息存储于partm文件中,其中存储的内部、边界、外部节点,进、出节点,内、外单元均为从0开始的局部编号,映射数组中的编号为全局编号.在框架中有限元管理器读入分区文件,构造本地分区PartitionT对象.通信管理器设置其成员fPartition.在并行模拟中,可通过PartitionT实现对通信消息的掌握,通过层次封装,上层只能得到通信管理器和有限元管理器掌握的节点的处理器位置信息.3.3 通信封装边界节点信息的传递是整个通信的核心任务.在图剖分的区域分解中,通过分区类PartitionT的NodesOut和NodesIn函数可获得本分区需互换信息的节点号.节点数据的分布在框架中影响以下重要的计算步骤:大型稀疏矩阵的分布式存储和场信息的更新.求解器的初始化函数设置方程的全局方程总数、局部方程总数和局部方程起始号;在单元贡献集成时需判断方程号是否在本地范围内,不在则不集成;场信息的更新由节点管理器负责,在其成员函数的实现中,调用通信管理器的AllGather函数(已经过封装,在图剖分情况下属于点到点的非阻塞通信).图3 通信的封装层次Fig.3 Hierarchy of communication encapsulation分区信息通过通信的封装影响系统方程的并行求解和场信息的更新.通信在框架中的重点类有CommunicatorT,MessageT和 CommManagerT,封装层次见图3,上层的类使用下层的类提供服务,应用程序可使用以下各层,但最方便的是使用通信管理类,其与分区之间的协作见图4.图4 通信管理类与分区之间的协作Fig.4 Relationship between communication classes and partition通信器类CommunicatorT是对标准MPI函数的封装.涉及的全局通信有全规约、收集、全收集、广播和同步等;局部通信有非阻塞和阻塞的发送与接收.开发者在需要其他数据通信时,可使用这种封装的通信函数进行.该方法体现模块性,提高错误处理的能力,但用户使用时需理解具体的通信细节.MessageT是对各种并行消息通信模式的封装,有 PointToPointT,AllGatherT和 CartesianShiftT等 3个派生类,分别完成点对点、全收集和笛卡儿网格移位通信,对应于图剖分、索引分解和空间分解等3种区域分解方式的通信. PointToPointT提供点对点的阻塞、非阻塞通信.fPartition成员提供剖分信息,其他成员包括非阻塞的接收缓冲区、发送缓冲区、接收和发送请求.成员函数Initialize()按分区的进出节点信息检查或分配接收和发送缓冲区,接收发送请求.AllGatherT()依据分区进行非阻塞的通信,先投递接收信息,然后对要发送信息的节点信息进行发送投递,接着等待处理接收到的消息并组装到欲通信的数组里,最后等待发送的完成.AllGatherT类提供全收集的通信功能,经过通信,每个进程都得到相同的全局数据场,主要服务于基于索引的区域分解方式.成员函数Initialize()设置本进程发送数据的长度以及确定本进程数据在目标数组中的位移.AllGatherT()执行全收集操作.应用于索引分解的全收集通信只是计算功能的并行,在数据空间上并没有分布存储,每个进程都存储全局数据.CartesianShiftT提供笛卡儿网格上的移位通信,主要成员为构造函数和AllGatherT().针对空间分解方式,在空间的方向和位移上交换数据.该类的主要成员有周围进程号,通信移位模式以及发送、接收信息的节点号.在实际应用中,可利用框架提供的3种消息模式进行通信,只需创建对象,初始化数据分布,然后调用AllGatherT()就可实现.CommManagerT是框架中对并行操作的顶层封装.它维护分区信息、管理消息列表,作为框架的重要组成部分负责节点场信息的通信.使用CommManagerT进行数值模拟物理量的通信非常方便:其将所有的通信消息管理起来,开发者只需提供欲通信的数组,在进行注册后就可通过简单的调用完成通信. CommManagerT的主要接口函数有Init_AllGatherT()和AllGatherT().前者根据区域分解方式初始化相应的消息通信方式,将分配好的消息追加存储到成员fCommunications数组;后者调用相应消息的通信函数(对于图剖分则调用点对点消息的AllGatherT()函数).典型的CommManagerT使用方式为nArray2DT <double> values(num_nodes,num_dofs);int id=fCommManagerT.Init_AllGatherT(values);…/* values assingment locally*/fCommManagerT.AllGatherT(id,values);fCommManagerT.Clear_AllGatherT(id);其中:nArray2DT为框架工具箱中二维数值数组模板类.使用CommManagerT很方便,隐藏具体的分区通信方式,易于上层应用,并行通信在框架中逐层抽象封装,应用程序可选择使用不同封装层次的类.4 算例用基于PANDA框架开发的有限元模拟程序对某夹具进行计算,采用开源并行预条件库HYPRE求解代数方程组.模型自由度约为10万,得到的位移云图见图5. 图5 某夹具位移云图Fig.5 Displacement clound picture of a clamp由图5可知,并行计算的结果与串行计算结果一致,并行计算中单计算节点的时间和内存消耗见表1,测试平台为某Linux集群,单计算节点处理器为Intel(R)Xeon(TM)CPU 3.40 GHz,内存4 GB.可知,基本呈现出线性加速比.表1 并行计算中单计算节点的时间和内存消耗Tab.1 Time and memory cost of single computation node in parallel computation计算节点个数1 2 4 8 t /s 327 157 79 37内存/MB 170 95 52 305 结论PANDA框架可实现区域分解、分区管理、通信封装、场的通信等的无缝集成、相互协作,完成工程计算的并行通信任务,屏蔽具体通信底层实现的复杂性,与外部线性代数求解器的接口设计巧妙,可配置多种求解器.基于PANDA框架开发有限元程序,开发者只需以串行的方式编写与物理相关的代码,就可得到并行的计算服务.在PANDA框架中利用封装好的CommManagerT进行自定义变量的通信也十分方便,甚至只需1~2个函数的调用就能实现多计算节点间复杂拓扑关系的通信. 参考文献:【相关文献】[1]BOSE A,CAREY G F.A class of data structures and object-oriented implementation for finite element methods on distributed memory systems[J].Comput Methods Appl Mech Eng,1999,171(1-2):109-121.[2]PATZAK B,BITTNAR Z.Design of object-oriented finite element code[J].Adv Eng Software,2001,32(10-11):759-767.[3]PANTALÉ O,CAPERAA S,RAKOTOMALALA R.Development of an object-oriented finite element program:application to metal-forming and impact simulations[J].J Comput Appl Math,2004,168(1-2):341-351.[4]COMMEND S,ZIMMERMANN T.Object-oriented nonlinear finite element programming:a Primer[J].Adv Eng Software,2001,32(8):611-628.[5]YU Lichao,KUMMAR A V.An object-oriented modular framework for implementing the finite element method[J].Computers & Structures,2001,79(9):919-928.[6]史光梅,何颖波,吴瑞安,等.面向对象有限元并行计算框架PANDA[J].计算机辅助工程,2010,19(4):8-14.SHI Guangmei,HE Yinbo,WU Ruian,et al.Object-oriented finite element parallel computation framework PANDA[J].Comput Aided Eng,2010,19(4):8-14.[7]DONGARRA J,FOSTER I,FOX G,et al.并行计算综论[M].莫则尧,陈军,曹小林,等,译.北京:电子工业出版社,2005:198-199.[8]FALGOUT R D,YANG U M.Hypre:a library of high performance preconditioners[C]//SLOOT P M A,TAN C J K,DONGARRA J J,et al.Proc ICCS 2002.Berlin:Spinger-Verlag,2002:632-641.[9]KARYPIS G,KUMAR V.METIS 4.0:unstructured graph partitioning and sparse matrix ordering system[R].Minneapolis:Univ Minnesota,1998.。

面向对象有限元并行计算框架PANDA的多物理场耦合服务

面向对象有限元并行计算框架PANDA的多物理场耦合服务
P ANDA , t em a — e h n c l o p i g r g a h r lm c a i a c u ln p o r m i d v lp d n t em o l si a ay i f n to i s e e o e a d h r ea tc n l ss u ci n s
第2 O卷 第 1 期 u e d d En i e i g trAi e gne rn
V0 _ O .1 l2 No Ma.2 r 01l
文章 编 号 :0 6—0 7 ( 0 1 O —0 90 10 8 1 2 1 ) 10 1 —5
m u p y is a a y i u to x e sb l y, d t r n f ra n i e e tph sc edsa d m u i h sc hih sc n l ss fnci n e t n i ii t aa ta se mo g df r n y i sf l n h p y is f i
S UN e HE Yi g o W U i nh , S I h n jn L u n L h n b , Ru a H e gu ,IY f g Z e

( .Istt o yt nier g b o p t p l ao ntue a ntue f s ms gne n ; .C m ue A pi t nIstt, i S e E i r ci i 1 hn cdm f n ier gP yis Mi yn 2 90, ih a , h a .C i A ae yo E g ei hs , a ag6 10 Scun C i ) a n n c n n
cu l gsri eg f bet r ne ii l n aa e cm uai rm w r A D o pi ev e d i o jc—i tdf t ee tp rl l o p tt n f e ok P N A,ie n c n o oe n e me l o a ..

并行计算技术在有限元分析中的应用

并行计算技术在有限元分析中的应用

并行计算技术在有限元分析中的应用有限元分析是一种广泛应用于工程领域的数值计算方法,用于解决复杂结构的力学问题。

然而,随着计算机技术的迅速发展,传统的有限元分析方法在处理大型问题时面临着计算速度和内存限制的挑战。

为了克服这些限制,人们开始应用并行计算技术来提高有限元分析方法的计算效率。

并行计算技术是一种将计算任务分解为多个子任务,并同时进行处理的方法。

通过利用多个处理器或计算机的计算能力,可以大大缩短计算时间和提高计算效率。

在有限元分析中,采用并行计算技术可以将大型问题分解为多个小型子问题,并同时求解,从而减少整体计算时间。

首先,通过并行计算技术可以实现问题的分解和并行求解。

在有限元分析中,问题通常可以划分为多个单元,每个单元可由一个或多个处理器负责求解。

通过将计算任务分配给多个处理器,可以同时进行求解,从而提高整体的计算效率。

这种并行求解方法可以在一台计算机系统内进行,也可以在多台计算机上进行网络并行计算。

其次,并行计算技术可以应用于并行装配和求解大型稀疏线性方程组。

有限元分析中,通常需要解决大规模的线性方程组,例如位移和应力问题。

传统的直接求解方法需要显式地存储整个系数矩阵,这对于大规模问题来说是非常困难的。

而并行计算技术可以将整个矩阵分块存储,并并行装配,从而降低存储需求和提高求解速度。

此外,并行计算技术还可以应用于优化有限元网格和自适应网格技术。

在复杂结构的有限元分析中,网格的划分和优化对结果的准确性和计算效率具有重要影响。

传统的网格优化方法通常需要较长的计算时间。

而并行计算技术可以将网格优化任务分解为多个子任务,并同时进行优化,从而加快优化过程。

并行计算技术在有限元分析中的应用也面临一些挑战和限制。

首先,问题的分解和划分需要合理且精确地设计,以避免子问题之间的依赖和冲突。

其次,不同的并行计算架构和平台具有不同的特点和限制,需要针对具体的计算平台进行算法和程序的优化。

最后,大规模并行计算系统的配置和维护也需要相应的硬件和软件支持。

如何构建并行计算框架

如何构建并行计算框架

如何构建并行计算框架构建一个并行计算框架需要考虑多个方面,包括任务调度、并行计算模型和资源管理等。

以下是一个构建并行计算框架的简单步骤和关键要点:1.设计并行计算模型:-首先,需要明确并行计算的目标和需求。

确定需要处理的任务类型、数据规模和预期性能。

- 然后,选择合适的并行计算模型。

常见的并行计算模型包括分布式内存计算模型(如MapReduce),并行数据库计算模型和共享内存计算模型。

-根据任务类型和数据规模,选择合适的并行算法和数据结构。

考虑任务间的依赖关系,确定任务之间的调度顺序。

2.任务调度:-设计一个任务调度器,负责将任务分配给各个计算节点。

根据任务的优先级和调度策略,动态调整任务的分配和调度。

-考虑任务调度的负载均衡问题,尽量保证各个计算节点的负载均衡,提高系统的整体性能。

-使用基于优先级的调度算法,提高任务的执行效率。

3.并行计算:-在并行计算框架中,需要实现任务的并行执行。

可以使用线程池或任务队列等方式,将任务分配给多个工作线程并行处理。

-确保任务之间的数据访问互斥,避免并发冲突。

可以使用互斥锁、信号量等机制,保证对共享数据的访问线程安全。

4.数据管理:-并行计算框架需要管理大量的数据,包括输入数据和计算中间结果。

设计一个高效的数据管理策略,尽量减少数据的传输和复制。

-考虑数据分区和数据划分的问题。

根据数据的特点和计算任务的需求,将数据划分为适当的块,分配给不同的计算节点并行处理。

5.故障处理:-并行计算框架需要具备一定的容错能力。

设计一个故障检测和恢复机制,能够及时发现计算节点的故障,并将任务重新分配给其他可用节点处理。

-考虑任务中断和数据丢失的情况,设计相应的容错策略和数据恢复机制。

6.性能优化:-对于大规模并行计算框架,性能优化是非常重要的。

可以采用一些优化手段,提高并行计算的效率。

如任务并行度的调整、任务的粒度控制、数据局部性的优化等。

-使用性能分析工具进行性能测试和性能调优,定期检查系统的性能指标,寻找优化的空间。

面向对象有限元框架内并行接触类的设计

面向对象有限元框架内并行接触类的设计

面向对象有限元框架内并行接触类的设计白小勇*,何颖波,陈成军(中国工程物理研究院总体工程所,四川绵阳 621900)摘要:为了简化在框架中扩充接触计算功能,及开发和实现新的接触算法的研究工作,本文设计了一种针对框架应用的并行接触类。

对接触计算流程进行深入分析,抽象出串行接触类的属性、方法以及与框架中其它类的协同机制。

针对已有并行接触算法,提出并行接触算法模型。

基于此模型,通过继承串行类和扩展并行属性和方法设计了并行接触类。

类的设计充分考虑了类的易用性、可移植性、可扩充性及可维护性。

对类的应用表明,类被整合到框架中后,未影响框架的整体结构,并且能高效的实现接触计算功能。

关键词:并行有限元框架;并行接触算法;算法模型;面向对象;1引言面向对象有限元框架因其功能强大、扩充简单、管理方便、代码复用度高而逐渐成为有限元程序开发的新趋势[1]。

虽然在框架内扩充功能相对简单,但是由于接触计算特别是并行接触计算的数据流非常复杂,在框架内进行并行接触功能的开发及开发新的接触算法仍然是一项非常复杂而耗费时间的工作[2]。

本文利用面向对象分析方法,对接触计算的属性和方法进行封装,设计了串行和并行接触类。

接触类通过接口映射方法(函数)与框架进行协同,通过编写不同的接口映射函数,接触类可以容易地整合到不同的框架中去。

Tahoe框架是由美国Sandia实验室开发,面向新数值算法和材料模型研究的开源平台。

Tahoe集有限元法、无网格法和物质点法于一身,开发完整后能进行二维和三维的多物理静力学、冲击动力学并行计算[3]。

本文通过分析Tahoe框架的特点,将接触类接入Tahoe框架,使Tahoe框架具备了接触功能,算例表明接触类能够很好的融入框架中,实现高效率的接触并行计算。

2接触算法及串行接触类设计2.1 接触算法接触计算通常由接触搜索、接触力计算两部分组成。

接触搜索在接触区域中搜索可能的接触,搜索结果表达为“点-面”接触对,或“点-点”、“面-面”接触对[4]。

PANDA的功能可扩展性设计与应用

PANDA的功能可扩展性设计与应用

PANDA的功能可扩展性设计与应用孙乐;何颖波;莫军【摘要】针对有限元分析软件功能的可扩展性需求,介绍面向对象有限元并行计算框架PAN DA的单元设计和单元类的扩充方法.在PANDA中,单元分析被抽象成单元算法和材料本构模式,并提供单元类型、材料模型的接口服务,用户可以根据不同的应用需求构成并实例化不同的C++抽象基类来解决实际问题.单元类的扩展步骤为:在ElementListT类的单元对象列表中添加单元对象;为该单元类设置相应的属性和操作,以实现程序功能的扩充;修改编译文件以保证程序能够顺利地通过编译.以轴对称导热分析为例验证单元类的扩充方法在PANDA中的实现.PANDA的单元分析设计有力地保证其功能的可扩展性.【期刊名称】《计算机辅助工程》【年(卷),期】2011(020)003【总页数】5页(P55-59)【关键词】有限元并行计算框架;PANDA;软件开发;功能可扩展性;单元分析【作者】孙乐;何颖波;莫军【作者单位】中国工程物理研究院总体工程研究所,四川绵阳621900;中国工程物理研究院,四川绵阳621900;中国工程物理研究院总体工程研究所,四川绵阳621900【正文语种】中文【中图分类】TP311;0242在大型结构工程设计中,数值模拟是研究复杂系统综合性能的主要方法之一,而有限元分析软件在其中发挥着重要作用.近年来,随着航空、航天以及武器工程等领域的不断发展,出现很多大型和超大型结构,同时结构力学行为分析涉及的物理领域也不断扩展,使有限元分析软件逐渐面向大规模、多物理场的应用[1-3].将客观世界准确、简单而又自然地表达出来是计算机软件设计所追求的目标.良好的软件设计需要软件开发方法的配合,传统的结构化程序设计方法具有模块化特点,执行流程是各程序段根据给定的算法依次对数据进行处理,任何数据的添加或形式改变都会导致一系列相关过程的变化.随着分析问题类型的急剧扩大,有限元分析软件模块越来越多,模块之间的数据传递也越来越频繁,结构化程序设计导致程序的扩展能力有限,不易维护、调试复杂且代码的重用性低[4-6].从20世纪80年代后期兴起的面向对象的程序设计方法克服上述结构化设计的不足,其封装、继承和多态性特点为功能模块的集成化、扩充的灵活性提供有利条件,在一定程度上提高软件的开发效率,逐渐成为大型软件的主流设计方法[7-8].基于框架的现代软件开发理念和模式,贯彻软件模块化的思想,更注重沉淀和复用应用软件的共性技术,不仅可以实现代码级的重用,还可以重用设计与分析,在更大的粒度上实现系统级的复用,极大地降低软件研制难度、缩短软件研制周期,同时领域内的软件结构一致性好,确保软件的集成性以及可升级、可扩展性.[9]为面向复杂工程结构的大规模、多物理场计算分析应用,中国工程物理研究院于2007年采用面向对象、层次化、模块化的设计模式,形成面向对象有限元并行计算框架PANDA[10]的基本版本,见图1.该框架通过建立网格、场等底层数据结构,集成高性能数值求解器和工具包,如线性方程组求解器、特征值求解器、应用参数解析、数据输入输出、积分器、区域分割软件和并行通信等,以服务的方式提供一个快速建立高性能并行计算程序的开发环境;通过将有限元分析的数据和过程逐级封装,形成一个构架良好的有限元分析系统.在该系统中,有限元管理器以访问者的身份协调不同功能组件按照约定的接口协同工作,传递数据,完成有限元分析;系统设计采用继承和多态机制,易于集成或添加工程结构有限元计算所需的各种服务组件,如求解器、单元类型库和材料模型库及其接口服务,为软件开发提供一个扩展性良好的基础平台,支撑工程结构有限元高性能并行计算应用开发能力的不断扩充和完善.目前,已具备初步的结构静力学、振动力学、冲击力学、传热学以及热力耦合等并行计算程序开发能力.本文通过分析PANDA框架的单元分析设计,探讨其功能的可扩展性;并在现有单元库及单元接口服务的基础上给出添加二维轴对称导热单元类的实例,实现不修改原模块并在相同操作界面功能的有规则扩充,展示PANDA框架设计的优越性.单元分析是整个有限元分析过程的基础,尽管不同物理分析类型的单元分析算法各不相同,但其分析过程均可归结为依据单元的几何属性和材料属性等完成单元特性矩阵的计算以及系统特性矩阵的组装.[11]据此,PANDA框架将单元分析抽象成单元算法和材料本构模式两方面,利用面向对象的设计模式分别提供单元类型和材料模型的接口服务.单元(库)、材料(库)及其相关的接口服务处于PANDA框架顶层的应用个性层,与实际应用紧密相联;根据不同的应用需求,可以构成不同的C++抽象基类,通过对这些基类的实例化,可在PANDA框架上求解实际问题.PANDA框架的单元接口服务由单元基类ElementBaseT和单元对象构造器ElementListT共同完成(见图2).ElementBaseT主要负责向应用程序提供单元算法服务,它抽象出各单元类的共性(属性和操作),为单元算法提供统一界面,根据具体的单元算法可逐级派生得各种具体的单元类.ElementListT为单元类型的添加和识别设置统一接口,其主要功能为定义单元对象的列表;通过单元对象列表中的单元名称创建具体的单元对象;并通过一个单元类的指针指向已创建的单元对象,执行具体的单元算法.它以不改变程序主体结构的方式,实现向应用程序添加和识别新单元类的服务.PANDA框架的材料接口设计与此类似,不再赘述.面向多物理场应用的大型有限元软件涉及多种物理分析类型,因此在设计上需要考虑多物理场分析类型的可扩展性.该设计模式在面向多物理场应用时,可通过继承和多态机制在相同操作界面下方便地添加新的单元和材料类,并以不修改程序原模块的方式实现新的单元算法和材料本构模式,从而不断扩充已有程序的功能,有力地保障物理场分析功能的多样性、可扩展性以及代码的可重用性.从上文的分析可知,PANDA框架的单元分析设计有力地保证系统分析功能的可扩展性.在程序中添加新的单元类(添加材料类与其类似)需要完成以下3个步骤:在ElementListT类的单元对象列表中添加该单元对象,以便程序能识别该新增的单元类;为该单元类设计相应的属性和操作,实现程序功能的扩充;修改编译制导文件,保证程序能顺利通过编译.在实际工程的传热分析中,常需要采用轴对称算法简化整个分析过程,本文以轴对称热传导单元的添加为例,对上述3个步骤作详细说明.为最大限度地实现对代码的重用,分析PANDA框架的单元组织结构和已有的导热单元代码,分别以现有单元库中的线性傅里叶导热单元类DiffusionElementT,非线性傅里叶导热单元类NLDiffusionElementT和非傅里叶导热单元类HyperbolicDiffusionElementT作为父类,继承它们的属性和方法,再根据目标通过重定义的方式修改或添加某些方法,派生出各自对应的轴对称导热单元类,实现轴对称导热问题的有限元分析.详细的扩充过程如下:(1)在单元对象构造器中添加轴对称导热单元名称并定义新的单元类.①修改ElementListT.cpp文件,添加预定义宏命令,以便识别轴对称导热单元类DiffusionAxiElementT, NLDiffusionAxiElementT 和HyperbolicDiffusionAxiElementT的头文件.②修改函数 ElementListT::DefineInlineSub,在单元列表中添加轴对称导热单元的名称.③修改函数ElementListT::NewElement,按照单元列表中添加轴对称导热单元的名称创建新单元类的实例.(2)为轴对称导热单元类设计相应的属性和操作,实现程序功能的扩充.其中重要的成员函数如下:InternalEnergy计算内能;FormStiffness计算热传导矩阵;FormKd计算内力对载荷的贡献;LHSDriver计算热容及热传导矩阵;RHSDriver 计算内热源及热容项对载荷项的贡献;TractionBC_RHS计算热交换对载荷的贡献;TractionBC_LHS计算热交换对热传导矩阵的贡献;Axisymmetric判断是否为轴对称分析;B_axi计算轴对称情况下形函数对坐标的导数.(3)修改编译制导文件makefile.PANDA采用编译制导文件makefile进行分级管理.将添加的单元类 DiffusionAxiElementT,NLDiffusionAxiElementT和HyperbolicDiffusionAxiElementT的头文件与实现文件放入已创建好的单元目录panda\src\elements\continuum\diffusion下.修改该目录下的编译制导文件makefile,在其中加入新单元类的目标文件、源文件和头文件等信息.至此,完成PANDA框架单元库中轴对称导热单元的添加.在执行相应的应用程序时,有限元管理器将协调新的单元类及其他计算功能组件,使各功能组件通过约定的接口协同工作、传递数据,并最终完成轴对称热传导的有限元分析.为检验程序功能的正确性,采用如下算例进行测试:某双层空心圆筒的高度为8 m,内筒为厚度1 m的燃料层,外筒为厚度3 m的铝.燃料层有1 500 W/m3的内热源,热导率为35 W/(m·℃);铝层的热导率为100 W/(m·℃);铝筒外表面受到温度为150℃的高压水冷却,表面传热系数为3 500 W/(m2·℃).算例测试表明PANDA轴对称导热分析计算结果与商用有限元程序计算结果完全一致(见图3),验证程序的正确性.与传统的面向过程结构化程序设计方法相比,基于框架的先进开发模式和面向对象的主流设计思想可更好地适应程序对可重用性、可扩展性及复杂性的需要.PANDA框架采用面向对象、层次化、模块化的设计模式对有限元法单元分析过程的共性问题进行抽象,将其概括为单元算法和本构模型2个方面分别封装数据及操作;通过构建基类,为单元及本构计算分别建立统一界面;通过构建单元、材料对象构造器,为单元类型、材料模型的添加、识别设置统一接口.实例表明,该设计模式在面向多物理场应用时可在相同操作界面下方便地添加新的单元和材料类,并采用继承和多态机制以不修改程序原模块的方式实现新的单元算法和材料本构模式,从而不断扩充已有程序的功能,为多物理场的有限元分析程序开发提供一个扩展性良好的基础平台,大大简化软件开发过程,提高软件的开发效率.【相关文献】[1]Sandia National Laboratories.Computational activities in engineering sciences at Sandia National Laboratories,SAND2002-0392p[R].2002:5-6.[2]MCGLAUN M.Sandia’s engineering code development under ASCI,SAND2003-1238p[R].2003:9.[3]Sandia National Laboratories.Functional requirements for SIERRA version 1.0 beta,SAND1999-2587[R].1999:3.[4]李海江,杨刚,易南概.面向对象的串并行有限元分析系统[J].计算力学学报,2006,23(5):588-593.LI Haijiang,YANG Gang,YI Nangai.Object-oriented serial/parallel finite element analysis system[J].Chin J Comput Mech,2006,23(5):588-593.[5]曹骥,袁勇.面向对象有限元方法研究进展[J].力学季刊,2002,23(2):241-248.CAO Ji,YUAN Yong.Development of object-oriented finite element method[J].Chin Q Mech,2002,23(2):241-248.[6]马永其,冯伟.面向对象有限元程序研究综述[J].计算机应用研究,2001,18(10):7-9.MA Yongqi,FENG Wei.Advance in object-oriented finite element programming [J].Application Res Computers,2001,18(10):7-9.[7]魏泳涛,于建华,陈君楷.面向对象有限元程序设计——程序构架[J].四川大学学报:工程科学版,2001,33(4):21-25.WEI Yongtao,YU Jianhua,CHEN Junkai.Object-oriented approach to the finite elementprogramming:the application architecture[J].J Sichuan Univ:Eng Sci,2001,33(4):21-25.[8]张妮,曹建文.面向对象数值软件Trilinos及其线性代数包Epetra剖析[J].超级计算通讯,2006,4(1):36-45.ZHANG Ni,CAO Jianwen.Research and analysis on object-oriented numerical software Trilinos and its linear algebra package Epetra[J].Supercomputing Newsletter,2006,4(1):36-45.[9]Sandia National Laboratories.SIERRA framework version 3:core services theory and design,SAND2002-3616[R].2002:11-14.[10]史光梅,何颖波,吴瑞安,等.面向对象有限元并行计算框架PANDA[J].计算机辅助工程,2010,19(4):8-14.SHI Guangmei,HE Yingbo,WU Ruian,et al.Object-oriented finite element parallel computation framework PANDA[J].Comput Aided Eng,2010,19(4):8-14.[11]魏泳涛,于建华,陈君楷.面向对象有限元程序设计——单元过程设计[J].四川大学学报:工程科学版,2001,33(3):9-12.WEI Yongtao,YU Jianhua,CHEN Junkai.Object-oriented approach to the finite element programming:design of element procedure[J].J Sichuan Univ:Eng Sci,2001,33(3):9-12.。

有限元计算的面向对象方法及程序研究

有限元计算的面向对象方法及程序研究

有限元计算的面向对象方法及程序研究随着科学技术的不断发展,有限元计算在工程领域中得到了广泛的应用。

然而,传统的有限元计算方法在处理复杂问题时往往存在计算效率低、可维护性差等问题。

为了解决这些问题,面向对象方法被引入到有限元计算中。

面向对象方法是一种软件设计和开发的方法论,它将问题分解为多个对象,并通过对象之间的交互来完成任务。

在有限元计算中,可以将问题分解为网格对象、节点对象、单元对象等,通过它们之间的关系和交互来建立起计算模型。

首先,面向对象方法可以提高有限元计算的计算效率。

传统的有限元计算方法通常需要遍历整个网格来计算节点的位移和应力等信息。

而面向对象方法可以通过建立网格对象和节点对象之间的关系,实现只计算特定节点的位移和应力信息,从而减少了计算量,提高了计算效率。

其次,面向对象方法可以提高有限元计算的可维护性。

传统的有限元计算程序往往难以维护和扩展,因为计算模型和计算过程之间的关系复杂。

而面向对象方法将计算模型和计算过程分离开来,使得程序的结构更加清晰,易于理解和修改。

当需要对计算模型进行修改或者添加新的计算过程时,只需要对相应的对象进行修改或者添加即可,而不需要修改整个程序。

最后,面向对象方法可以提高有限元计算的可重用性。

传统的有限元计算程序往往只能针对特定问题进行计算,难以在其他问题中重复使用。

而面向对象方法通过将计算模型和计算过程进行分离,使得计算模型可以在不同的问题中重复使用。

只需要根据具体问题创建相应的对象并进行交互即可,大大提高了计算的可重用性。

综上所述,面向对象方法在有限元计算中具有重要的应用价值。

它可以提高计算效率、可维护性和可重用性,为工程领域的有限元计算提供了一种更加高效和可靠的方法。

未来,我们可以进一步研究面向对象方法在有限元计算中的应用,探索更多的优化方法和程序设计,以满足不断发展的工程需求。

面向对象有限元并行计算框架PANDA的并行机制

面向对象有限元并行计算框架PANDA的并行机制

程、 区域 分解 、 区信 息和通信 封装 等部 分 设计 P N A 框 架在 并 行计 算 方 面 的数 据 结 构. 计 算 分 A D 在
流程 中建立 区域 分解 和并行 求解 器的配合协 作 方式 , 而描述 进行 区域分割 的 3种 网格剖 分方 法 ; 进 对分 区边界单 元和节 点信 息的组 织以及对 并行通信 操作 的封装 使复 杂的 并行 通信 调 用简单 、 易行 .
集 成 A tc S O L S S p rU, Y R , E S , z , P O E , u eL H P E e P T c
并行 程序 , 能显 著 控制 数据 分 配和通 信 , 这种 控 制 又
促 进 在大 规模 分 布存 储 并 行 机 上 的 高性 能 编程 . 。 。
针 对 目 前 高 性 能 集 群 的 广 泛 应 用 , 用 MP 采 I
( s g as gItr c ) 分 布存 储 方 式 实 现 有 Mes eP si ef e 以 a n n a 限元 并行 是正 确 的选择 . 面 向对象 技术 对并 行 编 程 过 程有 重 要 影 响 ( 如 对数 据 和 函数 的 封装 、 承和 多 态 性 ) 许 多 基 于类 继 , 等 的编程 思想 都来 源 于 串行 编 程 领 域 , 也 开 始 在 但
p ns s c a c mp t t n f w , d ma n d c mpo iin, pa t n i fr ai n, c mmunc to a uh s o u ai l o o o i e o st o  ̄ii n o o m to o iai n
e c p ua in a O o .Th ol b r tv pp o c ewe n d man d c mp sto n r lls l e s n a s l t nd S n o e c la oa ie a r a h b t e o i e o o iin a d paa e ov ri l e tbl h d i o u a in fo sa i e n c mp t t w.a d t e h e s i g me h dsa e d s rb d f rdo i a t i n s o l n h n t r e me h n t o r e c ie 0 ma n p ri o .Du t e

面向对象有限元并行计算框架PANDA求解器的服务构件化设计与集成

面向对象有限元并行计算框架PANDA求解器的服务构件化设计与集成

Absr c t a t:Ac odig t h c mmo e t r t tma y tu t r l fn t ee n o r ms ne d t u e c r n o te o n f au e ha n sr cu a ie l me tpr g a e o s i n me c lmeho s t ov y tm o mu a,c mp n n — a e e in frn u r a t d o s l e s se fr l i o o e tb s d d sg o ume c ls l i g i r p s d t i r a ov n sp o o e o
方 面 的 选择 .
关键 词 : 并行 计 算框 架 ; A D P N A;有 限元 ; 件 开发 ; 件化软 件设 计 ;求解器服 务 ;构件 集成 软 构
中图分 类号 : P 1 ;0 4 T 3 1 22 文献 标志码 :A
Co p n n - a e e i n a nt g a i n o o v r s r i e o m o e tb s d d sg nd i e r to fs l e e v c f
a he e c iv d. At r s n , P p e e t ANDA fa wo k a p o i e b nd n ume c l ovng r me r c n r v d a u a t n i r a s l i meh d f r fn t to s o ie i ee n p lc to s l me ta p iai n . Ke wo d y r s: p r l l c mp t t n fa e r a a l o u a i r m wo k; P e o ANDA ; fn t ee n ; s f r d v lp n ; i ie l me t ot e wa e eo me t c mp n n - a e ot r e in; s le e ie; o o e ti t ga in o o e tb s d s fwa e d sg ov rs r c ;c mp n n n e to v r

计算机专业的并行计算架构

计算机专业的并行计算架构

计算机专业的并行计算架构随着科技的不断发展和计算机应用的广泛普及,计算机专业中的并行计算架构也变得越来越重要。

本文将探讨并行计算架构的基本概念、发展历程以及其在计算机专业中的应用。

一、并行计算架构的基本概念并行计算架构是一种计算模型,旨在通过同时执行多个计算任务,加快计算速度和提高系统性能。

与传统的串行计算相比,它具有更高的计算能力和处理效率。

并行计算架构可以通过多个处理单元同时执行计算任务,并通过互连网络进行通信和协调。

目前较为常见的并行计算架构包括向量处理器、多核处理器、分布式计算系统和图形处理器(GPU)等。

每种架构都有着不同的特点和适用范围,可以根据具体应用场景选择适合的架构。

二、并行计算架构的发展历程1. 向量处理器(Vector Processor)向量处理器是早期的并行计算架构,通过同时处理多个数据元素来提高计算效率。

它具有广泛的应用场景,在科学计算、图像处理和数字信号处理等领域得到了广泛应用。

2. 多核处理器(Multi-core Processor)多核处理器是在一颗芯片上集成多个处理核心,每个核心可以独立执行指令和计算任务。

多核处理器具有更高的并行性和计算能力,可以提供更强大的计算性能和更高的效率。

3. 分布式计算系统(Distributed Computing System)分布式计算系统是由多个计算节点组成的系统,节点之间可以通过网络进行通信和协作。

分布式计算系统通过将任务划分为多个子任务,由不同的节点同时执行,从而提高计算效率和系统性能。

4. 图形处理器(GPU)图形处理器最初设计用于图形渲染和计算机图形学等领域,但随着其计算能力的不断提升,逐渐被应用于并行计算。

GPU具有大量的处理核心和高带宽的内存系统,可以并行执行大规模的计算任务,广泛应用于科学计算、机器学习和人工智能等领域。

三、并行计算架构在计算机专业中的应用1. 科学计算在科学计算领域,许多复杂的计算任务需要大量的计算资源和高性能的计算平台。

PANDA的功能可扩展性设计与应用

PANDA的功能可扩展性设计与应用

e t n i l y;ee n r c d r x e sbi t i lme tp o e u e
收 稿 日期 : 0 10 — 1 修 回 日期 : 0 10 —l 2 1 —3 1 2 1-40 基 金 项 目 :国 防基 础 科 研 重 大项 目( 50 10 2 C12 10 0 )
能并 行计 算应 用 开发 能力 的不 断扩充 和完 善 . 目前 ,
已具 备初 步 的结 构 静力 学 、 动力 学 、 振 冲击 力 学 、 传 热学 以及 热力 耦合 等并 行计 算程 序 开发 能力 .
应 用 个性 层
在其 中发挥 着重 要 作 用 . 年 来 , 近 随着 航 空 、 天 以 航 及 武器 工程 等领 域 的 不 断 发展 , 现 很 多 大 型和 超 出 大 型结构 , 同时结 构 力 学 行 为 分 析 涉 及 的物 理 领 域 也不 断扩 展 , 使有 限元 分 析软件 逐 渐 面向 大规模 、 多
过 编译 .以轴 对称 导热 分析 为例验 证 单 元 类 的扩 充 方 法在 P N A 中的 实现 . A D 的单 元 分析 A D PNA
设 计有 力地 保证 其 功能 的可扩展 性 . 关 键词 :有 限元 并行 计 算框 架 ; A D 软 件 开发 ; 能 可扩展 性 ; 元分析 P N A; 功 单
性 等完 成单 元 特性矩 阵 的计算 以及系 统特 性矩 阵 的 组 装 .I 1 据此 ,A D P N A框架 将 单元 分 析 抽 象成 单 元 算 法 和材料 本构 模 式 两 方 面 , 用 面 向 对象 的设 计 利
h a o d to n lss T e ee n o e u e d sg n u e h u c in e t n i i t fPANDA e tc n ucin a ay i. h l me tprc d r e i n e s r st e f n to xe sbl y o i

面向对象有限元并行计算框架PANDA

面向对象有限元并行计算框架PANDA

面向对象有限元并行计算框架PANDA史光梅;何颖波;吴瑞安;莫军;李阳春;张亚林【期刊名称】《计算机辅助工程》【年(卷),期】2010(19)4【摘要】为提高我国工程数值模拟软件的开发能力,面向武器工程大规模并行计算需求,基于层次化、模块化及面向对象的现代软件设计技术,分析探讨有限元并行计算框架的设计方法,形成初步的基础开发框架PANDA 0.1版;详细描述PANDA框架的层次结构设计,并探讨该基础开发框架设计中的底层网格数据结构设计、有限元共性管理模块及并行策略等部分关键技术;简要介绍PANDA框架的扩展应用方法.研究表明:采用框架技术进行结构力学有限元程序开发,具有高效、快速和便捷等优点.【总页数】7页(P8-14)【作者】史光梅;何颖波;吴瑞安;莫军;李阳春;张亚林【作者单位】中国工程物理研究院,总体工程研究所,四川,绵阳,621900;中国工程物理研究院,四川,绵阳,621900;中国工程物理研究院,总体工程研究所,四川,绵阳,621900;中国工程物理研究院,总体工程研究所,四川,绵阳,621900;中国工程物理研究院,计算机应用研究所,四川,绵阳,621900;中国工程物理研究院,计算机应用研究所,四川,绵阳,621900【正文语种】中文【中图分类】TP311.5;TB115【相关文献】1.基于PANDA框架的并行有限元模态分析程序开发和应用 [J], 李健;郝志明;宁佐贵2.面向对象有限元并行计算框架PANDA的多物理场耦合服务 [J], 孙乐;何颖波;吴瑞安;石正军;李于锋3.面向对象有限元并行计算框架PANDA的并行机制 [J], 李于锋;张亚林4.面向对象有限元并行计算框架PANDA求解器的服务构件化设计与集成 [J], 嵇晓宇;郝志明;莫军;王柯颖5.面向对象有限元并行计算框架PANDA的应用模板 [J], 张亚林;吴锦龙;李于锋;赵晓平因版权原因,仅展示原文概要,查看原文内容请购买。

面向对象有限元并行计算框架PANDA求解器的服务构件化设计与集成

面向对象有限元并行计算框架PANDA求解器的服务构件化设计与集成

面向对象有限元并行计算框架PANDA求解器的服务构件化设计与集成嵇晓宇;郝志明;莫军;王柯颖【摘要】针对很多结构有限元程序需要使用数值方法进行系统方程组求解的共性特点,提出对数值求解部分进行构件化设计,形成求解器服务,用于面向对象有限元并行计算框架PANDA为不同应用类型的有限元程序开发提供数值算法.将美国Livermore国家实验室开发的数值求解器库HYPRE作为数值求解构件集成到PANDA框架中,利用其提供的数值解法进行结构静力有限元并行求解,获得较理想的结果.目前,PANDA框架已经能够为应用程序的开发提供较丰富的数值解法方面的选择.【期刊名称】《计算机辅助工程》【年(卷),期】2011(020)001【总页数】6页(P9-14)【关键词】并行计算框架;PANDA;有限元;软件开发;构件化软件设计;求解器服务;构件集成【作者】嵇晓宇;郝志明;莫军;王柯颖【作者单位】中国工程物理研究院,总体工程研究所,四川绵阳,621900;中国工程物理研究院,总体工程研究所,四川绵阳,621900;中国工程物理研究院,总体工程研究所,四川绵阳,621900;中国工程物理研究院,总体工程研究所,四川绵阳,621900【正文语种】中文【中图分类】TP311;O2420 引言重大工程结构与装备在服役和极端环境下高保真、高精度模拟的需求越来越强烈,越来越需要开发大型集成化CAE分析软件.要在统一的软件平台上解决几何、材料和状态非线性、不同物理场耦合、不同学科、跨越时间和空间多尺度系统分析等多种工程计算领域的前沿问题是个庞大而复杂的系统工程,构建这样的CAE分析软件系统需充分利用已有的成熟理论、算法和代码,并进行有效的管理.传统的结构化程序设计方法已很难适应这种涉及全物理场、高保真、高精度模拟所需的复杂软件系统的开发,引入面向对象的设计思想,基于构件化软件开发(Component-Based Software Development,CBSD)方法开发大型软件已成为不可逆转的趋势.[1-4]在过去的10多年中,利用面向对象的程序设计方法在不同领域的工程分析中已取得丰富的成果[5-10].经过近60年的发展,有限元法已成为工程结构分析领域的主要方法,本文基于CBSD开发思想,搭建并行自适应非线性分析框架(以下称PANDA框架)[11],为工程结构有限元程序开发提供基础支撑.有限元计算可简单地分为前处理、计算和后处理等3部分.力学工作者关心的计算部分可分为单元刚度矩阵与载荷向量、组集方程组、求解方程组、计算应变与应力等几部分.实践证明:线性系统求解是整个计算过程最耗时的部分,解决该问题应首先关注数值求解算法.[11]与此同时,不同应用类型的有限元程序往往需要使用不同的求解器库进行系统方程的求解工作,如并行稀疏直接求解需使用SuperLU和 SPOOLES 等;并行迭代求解需使用Aztec,PETSc和HYPRE等;特征值问题求解需使用SLEPc和PARPACK等;多重网格求解需使用UG和HYPRE等.这些开放源代码的数值求解器库都针对不同应用类型进行设计,并经实践验证其有效性和并行效率.如果每编制一种类型的应用程序都研究一种数值方法或研究一种数值求解器库并完成对接工作,会花费较多的精力.将数值求解部分进行构件化设计,形成求解器服务沉淀到PANDA框架中,在其中为众多的求解器库定义统一的接口,在应用程序开发过程中只需根据框架的要求调用求解函数即可实现并行求解.这样可使应用程序开发人员专注于物理力学算法的研究,不必太过关注数值算法,从而缩短程序的开发周期.本文介绍PANDA框架求解器服务构件化设计与实现,为大规模并行有限元程序的数值求解提供丰富的数值求解算法.通过构件化设计并定义统一接口,可方便集成经实践检验、广受欢迎的开源数值求解器库作为求解器构件.在并行有限元程序开发过程中,可借用这些成熟的并行数值分析软件进行有限元方程组的数值求解以缩短开发周期.作为求解器服务构件化设计的集成示例,介绍集成美国Livermore 国家实验室开发的著名并行求解器库HYPRE的基本思路和方法,为基于PANDA 框架开发的应用程序提供数值支持.1 构件化设计PANDA框架的层次结构和分层架构参见文献[12],其充分借鉴美国Sandia国家实验室开发的SIERRA框架和开源代码Tahoe,遵循面向对象、层次化和模块化的设计思想,通过高度抽象与提炼,形成一系列基础服务构件,从而为结构有限元并行程序开发提供支持.求解器服务位于PANDA框架的数值共性层.该层包括数据I/O服务、用户输入解析、成熟的计算方法和数值算法等,在科学与工程计算中具有较强的普适性,可直接支持并行有限元程序的研制.大型稀疏线性方程组并行数值求解是实现大规模并行有限元分析的关键技术之一,目前尚未有一种数值方法或一个求解器库能解决所有类型的数值求解问题,不同类型的有限元分析需在不同的求解器库和数值算法中进行选择.对数值求解部分进行构件化设计,为不同数值算法或求解器库定义统一的接口,将数值方法沉淀到框架的数值共性层,便于应用程序选择、组集适合其应用类型的数值算法.基于此便利性,应用程序开发人员可将主要精力用于物理力学问题本身的研究,只需根据应用类型的数值求解需求选择相应的求解器库和数值求解算法.PANDA框架求解器服务构件化设计架构见图1.图1 求解器服务构件化设计架构Fig.1 Component-based design architechture of solver services基于PANDA框架开发的应用程序通过有限元管理器进行有限元运行过程的管理:在求解部分通过求解器管理器针对不同问题类型实施具体的求解策略,对有限元计算流程(如问题类型、求解驱动、结果与异常处理等)进行抽象的定义,具体实现由其派生类LinearSolver(线性求解)和NLSolver(非线性求解)等进行定义(见图2),主要负责向应用程序提供数值求解方面的支持,并通过句柄操作GlobalMatrix对象,实现 PANDA框架数据对象到GlobalMatrix数据对象的传递.纯虚基类GlobalMatrix是面向第三方求解器库的抽象接口,是数据对象到第三方求解器库转换的抽象实现,针对每个求解器库需要一个具体的实现.目前,已经在PANDA框架中集成 Aztec,SPOOLES,PHG,HYPRE,SuperLU,Epetra和PSPASES等著名的开源求解器库,并将一些数值算法作为其构件沉淀到求解器服务中(如CCS和CCNS等).图2 求解器服务的构成Fig.2 Structure of solver services2 构件集成PANDA框架为并行有限元程序开发提供基础支撑,开发人员在框架的基础上定制、组装应用程序.构件化领域框架的可定制性和可扩展性体现在框架的核心结构保持稳定的前提下,在框架中提供足够多的反映应用领域易变性的热点来满足不同应用类型的特殊要求.[3]求解器服务是PANDA框架的重要扩展点之一,向结构有限元应用程序提供选择、组集不同数值解法方面的支持.由于基于继承思想和多态性机制实现求解器服务的构件化设计,尤其是使用多态性机制的虚基类GlobalMatrix为程序开发人员和用户提供方便的抽象接口函数,只需根据该类的规范编写PANDA框架与数值求解器库的接口代码就可完成在框架中集成第三方求解器库的工作.本文给出集成HYPRE的方法,作为在PANDA框架中集成求解器库成为其求解器服务构件的示例.HYPRE为应用人员提供功能强大的预条件子,同时提供一组迭代求解法(如PCG等).将其集成到框架中作为求解器构件的步骤如下:(1)从虚基类GlobalMatrix中派生出一个名为HYPREMatrix的类,它继承类GlobalMatrix的属性和方法.针对不同的求解器库需声明不同的私有成员以适应求解器库的要求,如针对HYPRE需声明HYPRE_IJMatrix A;/*HYPRE Matrix*/HYPRE_ParCSRMatrix parcsr_A;HYPRE_IJVector b;/*RHS*/HYPRE_ParVector par_b;HYPRE_IJVector x;/* Solution vector*/HYPRE_ParVector par_x;HYPRE_Solver solver,precond;其中:parcsr_A,par_b和par_x是HYPRE求解器可直接调用的数据对象,通过HYPRE提供的函数分别从A,b和x转化而来.要使Solver能识别新的求解器库,需在函数 Solver::NewSub中添加参数HYPRE_Matrix,在函数Solver::SetGlobal Matrix中设置当求解器参数选定为HYPRE_Matrix时需执行的操作.(2)为派生类HYPREMatrix添加属性和操作.虚基类GlobalMatrix抽象求解器的共性,而不同求解器在数据存储、数值算法等方面往往不同,需重定义GlobalMatrix中的虚函数以添加具体的属性和操作,这部分代码的编写工作是集成HYPRE的重点.HYPRE Matrix.cpp给出成员函数的具体实现,其中最重要的是组装函数和求解驱动函数.为实现有限元程序分析中总体刚度矩阵的并行组装和方程求解,首先需使用初始化函数Initialize传递3个形式参数:总的方程数tot_num_eq,本地管理的方程数loc_num_eq和起始方程号star_eq.Initialize函数以ilower=start_eq-1和iupper=ilower+loc_num_eq-1这2个参数记录当前管理的本地起止方程号,以参数ilower和iupper为基础创建A,b和x.组装函数完成PANDA生成的单元刚度矩阵向HYPRE的传递,并按照HYPRE软件要求的并行稀疏行压缩格式进行存储.它需要从框架中获取elMat(单刚)和eqnos(全局方程编号)2个数组.当矩阵对称时,调用函数elMat.CopySymmetric先将矩阵补全,然后统计矩阵的行和列信息,并创建临时数组记录矩阵元素,以方便调用 HYPRE求解器库中的函数HYPRE_IJMatrixAddToValues,将单刚组装成局部总体刚度矩阵.求解驱动函数向HYPRE传递线性系统的载荷向量,并完成线性系统求解、返回求解结果等工作.该函数需调用1个双精度数组result,此时存放的是线性系统的右端项.使用函数HYPRE_IJVectorSetValues将result中的值赋给右端项 b,求解线性系统获得解向量x.将x的值再赋给result,释放临时数组指针x_values.这样返回到框架和应用程序的result存放的是x.(3)设置与求解器相关的编译制导文件.PANDA框架采用编译制导文件makefile进行分级管理.需在 GlobalMatrixT 所在的目录/…/globalmatrix下创建目录HYPRE,将派生类HYPREMatrix的头文件和实现文件放入该目录;在/…/globalmatrix/makefile文件中指定编译子目录HYPRE;另外,还要在PANDA 框架主目录下的编译制导文件makefile中加入HYPRE的预编译指令、头文件目录、链接参数和库文件等信息.按照上述步骤即可完成集成HYPRE的工作,可按照Linux操作系统的要求编译和安装PANDA框架,形成可应用的PANDA框架.数值求解的2个重要步骤(组集系统总体方程组和方程组并行求解)都已在步骤(2)中实现,集成其他求解器库只需根据各自库函数实施同样的步骤即可.3 数值算例基于框架的应用程序开发工作将变得快捷、高效,只需编写程序驱动代码组装一个针对不同应用的程序即可.以结构非线性静力有限元分析为例,为Solver类定义一个派生类(如NLSolver)是重要的工作之一,在其中定义问题求解流程,需调用的模块及其接口函数均由框架提供;另一个重要工作是编写主驱动程序,根据框架提供的规范接口,编写驱动代码实现模型与数据的输入/输出、区域分解和通信初始化、问题求解等过程.以某简支受拉蜂窝梁为数值研究对象(见图3),其横截面的外轮廓为正方形,长宽比为10∶1.图3 某简支受拉蜂窝梁模型Fig.3 Model of a freely supported tensioned ceu beam使用八节点六面体单元对其进行离散,根据单元尺寸不同分为2种规模,分别为286万自由度和1 080万自由度.在图3所示蜂窝梁的左端施加简支约束,在右端表面施加10 MPa的拉力.取模型中上层圆孔的正上方节点为特征点(共计20个),使用基于PANDA的静力分析程序和ANSYS进行对比分析,其位移和第一主应力的计算结果见表1和图4.其中,基于PANDA框架开发的静力有限元分析程序采用HYPRE提供的PCG方法进行线性方程组的求解.可知,2种程序在模型中20个特征点上位移结果的平均误差约为1.6%,第一主应力的平均误差约为2.6%.表1 特征点的计算结果比较Tab.1 Computation result comparison of feature points位移第一主应力坐标/mm PANDA ANSYS误差/%/MPa PANDA ANSYS 误差/%5 0.004 0 0.004 0 0.99 138.409 141.472 2.17 15 0.012 1 0.012 2 0.82138.698 142.302 2.53 25 0.020 2 0.020 5 1.29 138.702 142.424 2.61 350.028 3 0.028 8 1.45 138.837 142.507 2.58 45 0.036 5 0.037 0 1.51 138.974 142.560 2.52 55 0.044 6 0.045 3 1.57 138.945 142.600 2.56 65 0.052 7 0.053 6 1.61 138.992 142.632 2.55 75 0.060 8 0.061 8 1.66 139.094 142.663 2.51 85 0.068 9 0.070 1 1.67 139.045 142.700 2.56 95 0.077 1 0.078 4 1.69 139.164 142.754 2.51 105 0.085 2 0.086 7 1.70 139.274 142.837 2.49 115 0.093 4 0.095 0 1.71 139.384 142.968 2.51 125 0.101 5 0.103 2 1.73 139.56 143.180 2.53 135 0.109 7 0.111 6 1.75 139.789 143.527 2.60 145 0.117 8 0.119 9 1.77 140.156 144.085 2.73 155 0.126 0 0.128 3 1.81 140.85 145.016 2.87 165 0.134 3 0.136 8 1.85 141.907 146.422 3.08 175 0.142 6 0.145 4 1.91 144.492 149.580 3.40 185 0.151 1 0.154 2 2.02 138.793 143.797 3.48 195 0.159 5 0.162 3 1.77 234.448 230.553 1.69图4 PANDA框架应用程序与ANSYS计算结果比较Fig.4 Computation result comparison of PANDA framework application and ANSYS基于PANDA框架开发的应用程序在可移植性方面的测试工作参见文献[13],在中国科学院系统科学与数学研究院、中国工程物理研究院仿真中心和中国工程物理研究院总体工程研究所的不同计算平台上均成功运行,计算效率良好.将本算例的286万自由度模型和1 080万自由度模型放在中国工程物理研究院总体工程研究所的曙光TC2600刀片服务器上进行测试,结果见表2,加速比曲线见图5.其中,1 080万自由度模型不能实现4进程以下的计算,因此,以4进程计算时间为基准进行加速比计算,可称为伪加速比.表2 不同自由度模型的测试结果Tab.2 Testing results of models with different degree of freedom进程数测试参数模型自由度1 2 4 8 16 32计算时间/s 286万4 753 2 359 1 259 580 294 166 1 080万5 125 2 497 1 284 634加速比286万1.00 2.01 3.78 8.19 16.17 28.63 1 080万4.00 8.21 15.97 32.33 图5 2种规模的加速比曲线Fig.5 Speedup curves of two different models2种规模的加速比测试结果表明:基于PANDA框架开发的静力有限元分析程序具备较好的加速比性能.在进程数少于16个时,2种规模的加速比曲线都接近斜率为1的基准线,1 080万自由度模型在32个进程的测试中仍然获得较好的加速比,286万自由度模型在32个进程的测试中加速比略有下降.4 结束语构件化领域框架极大地方便软件集成,利用CBSD思想已成功建立PANDA框架的雏形.求解器构件化设计为PANDA框架提供求解器服务方面的支撑,已成为框架的一个重要扩展点.通过多方集成,已能为基于PANDA框架开发的应用程序提供较为丰富的数值解法方面的选择.PANDA框架为工程数值模拟程序开发工作提供高性能数据结构,封装并行算法和并行数值求解技术,使应用程序开发人员和用户可专注于物理力学本质的研究.在不同计算平台上进行多种规模的数值计算表明,基于PANDA框架开发的静力有限元程序具备较好的可移植性、可扩展性和并行效率.致谢:在求解器构件化设计和数值算法的测试等方面得到中国科学院数学与系统科学研究院张林波研究员的悉心指导和热情帮助,张林波研究员还向本文作者提供PHG数值求解器库,并为相关测试提供硬件资源.参考文献:【相关文献】[1]WHITEHEAD ponent-based development:principles and planning for business systems[M].London:Addison-Wesley,2002:2-16.[2]SZYPERSKI C,GRUNTZ D,MURER ponent software:beyond object-oriented programming[M].2nd ed.London:Addison-Wesley,2002:105-178.[3]肖刚,徐俊,张元鸣,等.基于软件配置模型的构件化领域框架研究[J].计算机应用与软件,2008,25(5):90-92.XIAO Gang,XU Jun,ZHANG Yuanming,et al.Research on compenent-based domain-specific framework on software configration model basis [J].Comput Applications& Software,2008,25(5):90-92.[4]郭秋萍,焦允,王全兰.大规模系统构架建模及其开发技术[M].北京:北京航空航天大学出版社,2008:4-20.[5]AMUNDSON J F,DECHOW D,MCINNES L,et al.Multiscale,multiphysics beam dynamics framework design and applications[J].J Phys:Conf Ser,2008,125(1):1-6. [6]PATZÁK B,BITTNAR Z.Design of object-oriented finite element code[J].Adv Eng Software,2001,32(10-11):759-767.[7]FORDE B W R,FOSCHI R O,STIEMER S F.Object-oriented finite element analysis [J].Computers& Structures,1990,34(3):355-374.[8]ZABARAS N,SRIKANTH ing objects to model finite deformation plasticity [J].Eng Computers,1999,15(1):37-60.[9]ZABARAS N,SRIKANTH A.An object-oriented programming approach to the Lagrangian FEM analysis of large inelastic deformations and metalforming processes [J].Int J Numer Meth Eng,1999,45(4):399-445.[10]SILVA E J,MESQUITA R C,SALDAHHA R,et al.An object-oriented finite-element program for electro-magnetic field computation[J].IEEE Trans Magn,1994,30(5):3618-3621.[11]张向,许晶月,沈启彧,等.面向对象的有限元程序设计[J].计算力学学报,1999,16(2):216-225.ZHANG Xiang,XU Jingyue,SHEN Qiyu,et al.Object-oriented finite element programming[J].Chin J Comput Mech,1999,16(2):216-225.[12]史光梅,何颖波,吴瑞安,等.面向对象有限元并行计算框架PANDA[J].计算机辅助工程,2010,19(4):8-14.SHI Guangmei,HE Yingbo,WU Ruian,et al.Object-oriented finite element parallel computing framework PANDA[J].Comput Aided Eng,2010,19(4):8-14.[13]范宣华,吴瑞安,郝志明,等.基于Tahoe框架的某夹具并行计算[J].计算物理,2009,26(5):699-702.FAN Xuanhua,WU Ruian,HAO Zhiming,et al.Parallel computing of clamp structure in Tahoe frame[J].Chin J Comput Phys,2009,26(5):699-702.。

构建面向对象的并行有限元计算集群

构建面向对象的并行有限元计算集群

构建面向对象的并行有限元计算集群
李海江;程耿东
【期刊名称】《计算力学学报》
【年(卷),期】2006(23)3
【摘要】介绍了一种面向对象的方法来组建计算机集群进行并行有限元分析.将构成集群系统的软、硬件组件设计成不同的类层次结构,形成一个完整的集群系统类库,并以系统分析、总体设计、结点通信以及系统效率测试等过程尝试以系统化的方法来分析整个构建过程.实际结果及并行有限元分析算例表明,这样的设计策略,可以非常清晰地从整体上把握系统的实现,大大降低系统构建的复杂性,使所生成的系统具有很好的可扩展性.
【总页数】5页(P333-337)
【作者】李海江;程耿东
【作者单位】大连海事大学,道路与桥梁工程研究所,辽宁,大连,116026;大连理工大学,工程力学系,辽宁,大连,116024
【正文语种】中文
【中图分类】U651:TP311
【相关文献】
1.面向对象的船舶轴系振动有限元计算方法及系统开发 [J], 刘伟;李全超
2.面向对象有限元并行计算框架PANDA的并行机制 [J], 李于锋;张亚林
3.基于SA-AMG的弹塑性有限元计算的并行实现 [J], 张倩;张健飞
4.用面向对象的方法作有限元计算结果的可视化 [J], 袁政强;祝家麟;白绍良;李英民
5.面向对象CFD有限元计算结果可视化技术研究 [J], 刘建龙;汤广发;邓启红;孙剑因版权原因,仅展示原文概要,查看原文内容请购买。

基于PVM的网络并行有限元面向对象的设计

基于PVM的网络并行有限元面向对象的设计

基于PVM的网络并行有限元面向对象的设计
李晓军;朱合华
【期刊名称】《计算力学学报》
【年(卷),期】2005(022)002
【摘要】子结构是有限元并行计算常用的一种方法,本文采用面向对象的方法,首先对子结构进行了面向对象的设计,得到了其类层次结构图;然后针对工作站网络有限元并行计算环境,提出了基于PVM消息传递平台上的Shadow-Mirror数据传输模型,该模型在有限元并行计算数据传输时,充分发挥数据面向对象的特性,采用设置数据缓冲区、短消息合并等方法以缩短数据通信时间,并据此编制了相应的程序.计算结果表明,使用文中提出的面向对象的Shadow-Mirror数据传输模型可以得到较为理想的并行加速比,而且随着问题规模增大,并行加速比增高.本文研究内容为进一步开展基于工作站网络的并行有限元研究提供了一个可参考的基础.
【总页数】6页(P217-222)
【作者】李晓军;朱合华
【作者单位】同济大学,地下建筑与工程系,上海,200092;同济大学,地下建筑与工程系,上海,200092
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于PVM的网络并行计算在结构优化设计中的应用 [J], 唐天兵;钟诚;严毅
2.面向对象的MPI网络并行有限元程序开发 [J], 茹忠亮;张煜
3.基于网络的分布并行虚拟计算机DPVM的总体设计 [J], 梅皓;沈志宇
4.基于PVM的m-Step Jacobi PCG方法网上并行求解有限元方程 [J], 雍进军;杨一都
5.有限元分析的并行程序设计:基于网络和PVM的分布式并行环境 [J], 余天堂;姜弘道
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ab ta t sr c :Ba e o h mo en o t r e in tc n l ge s c s ir r h sd n te d r s f wae d sg e h oo i s u h a h e ac y, mo lrta in a d dua i t n z o
i p o e t e e eo m r v h d v lpme t blt o n ie rn smu ain ot r e, i ., PANDA v r in n a i y f e gn e ig i l to s f i wa .e e so 0. i 1 s
p ei n r y i l me t d T e h e ac y s u t r e i f P NDA fa w r s d t i d t e k y rl mi a i mp e n e . h ir r h t cu e d s l r n g o A me o k i eal , h e r e
e gn e n n ie r g,te d sg t o ffn t lme tp al lc mp tto rme r sd s u s d f rChn o i h e i meh d o i e e n a l e o u ain fa wo k i ic se ia t n i e r o
Obet r ne nt e me t a al o uain jc- i t f i l n r l l mp tt o e di e e p ec o
fa e r r m wo k PANDA
S ag i HI Gu n me h

HE n b ,W U i n Yi g o Ru a h MO J n u h,
P N A框架的扩展应用方法. AD 研究表 明: 采用框架技术进行结构力学有 限元程序 开发, 具有高效、
快速和便捷 等优 点.
关键 词 :并行计 算框 架 ; A D 有 限元 ; P N A; 软件 开发 ;网格 数据 结构
中图分类号 : P 1 . ;B 1 T 3 15 T 15 文献标 志码 : A
பைடு நூலகம்
a d p r l ls ae y a e d s u s d,a d t e P ND f me r x e s n a d a p iai n meh d r n aa l t tg r ic s e e r n h A A a wok e tn i n p l t t o s a e r o c o
i i ee n r g a d v lp n fsr t r c a is fnt lme tp o r m e eo me to t cu e me h nc . e u K e r s:p al lc m p tto a wo k;PANDA ;fnt lme t ot r e d v l p n ;me h d t y wo d r a le o ua in f me r r i i ee n ;s fwa e eo me t e s aa
面 向对 象有 限元 并行 计 算框 架 P N A A D
史光梅 h 何 颖 波 吴 瑞安 h 莫 军 h 李 阳春 , 张 亚林 , , , ,
( .中国工程物理研 究院 a 1 .总体工程研 究所 ;.计算机应用研 究所, b 四川 绵阳 6 10 ) 2 90

要 :为提 高我 国工程 数值模 拟软件 的开发 能力 , 面向武 器工程 大规模 并行 计算 需 求, 于层 次 基

L n c u .ZHANG l I Ya g h n Ya i n
( .a ntueo yt sE g ; .C m ue pl ao ntue 1 .Istt f s m n . b o p t A pi tnIstt, i S e r ci i
C iaAcd myo n .P yis hn a e fE g h sc .Min a g Sc un6 O a yn ih a 2 O.C ia l 9 hn )
第1 9卷 第 4期
21 0 0年 l 2月
计 算 机 辅 助 工 程
Co mpue de gn ei g trAi d En i e rn
Vo1 9 No. .1 4 De . 2 0 e 01
文 章 编号 :0 6—0 7 (00)400 ・7 10 8 12 1 0 —080
b e y i to u e . , e su y i d c t st a h rme r e h oo y i f c e t a ta d e n i e tfr il r f n r d c d nl t d n iae h tt e fa wo k tc n l g s ef in .f n o vnin o i s
tc n lge u h a e i n o a j s aa sr cu e.c mmo n g me tmo u e o n t lme t e h oo i ss c s d sg fb sc me h d t tu t r o n ma a e n d l ff ie ee n i
ojc o e t eh iu , a d te eurm ns f l g sae aa e o p t i f w ao b t r ne t nq e n h rq i e t a e cl r l l m ua o o ep n e —i d c e o r p l c tn r
化 、 块化及 面向对 象的现代软 件设计技 术 , 模 分析探 讨有 限元 并行 计 算框 架 的设计 方 法 , 成初 步 形
的基础 开发框 架 P N A0 1 ; A D . 版 详细描述 P N A框 架的层 次结构设计 , AD 并探讨 该基础 开发 框 架设
计 中的底 层 网格 数 据 结 构 设 计 、 限 元 共 性 管 理 模 块 及 并 行 策 略 等 部 分 关键 技 术 ; 有 简要 介 绍
相关文档
最新文档