基于MPI的不可压缩NS方程并行计算方法的研究
CFD并行计算技术的研究进展
2007年第26卷增刊化l:进展CHEMlCALINDUSTRYANDENGINEERfNGPROGRESS。
l5‘CFD并行计算技术的研究进展吴明一1.王红星2.秦玉波2,李鑫钢1,一,徐世民1’2(1天津人学化T学院,天津300072:2天津人学精馏技术国家丁程研究中心,灭津300072)摘要:综述了并行计算技术在计算流体动力学(CFD)中的研究及应用进展,介绍了CFD并行化的关键技术研究近况,包括网格处理技术、并行化算法技术以及并行计算平台的研究进展.最后讨论了CFD并行技术的发展方向。
关键词:cFD;并行计算ResearchprogressofCFDparaIlelcomputingWUMingyi\.wANGHon晷xin营.QINYttb孑。
LIxinga’t毒。
,xUShimi矗3(。
SchoolofChemicaIEngineeringandT色chnology,TianIjinUnivers时,Tianjin300072,China:2NationalEngineeringResearchCenterforDiStillationTechnology・Ti州inUniVersity,Ti柚jin300072,China)Absn翟ct:Researcha11d印plicationofCFDonparallelccHn口puterSarereViewed,andthekeytechn0109y,suchas伊idmanagement,parallelprocessingmethod粕dparalleIcomputingplatfomareintroduced.ThedeveIopmentofCFDparallelcomputingisaIsodiscuSsed.Keywords:CFD:p啪llelcomputing计算流体力学(CFD,Computationalfluiddynamics)是指利用数值方法通过计算机求解描述流体运动的数学方程,揭示流体运动的物理规律,研究定常流体运动的空间物理特征和非定常流体运动的时一空物理特征的学科。
MPI并行计算性能的研究
4.1.3二维快速傅里叶变换(FFT)的并行计算 二维傅里叶变换,就是进行两次一维FFT计算,即 首先进行行变换,然后再对行变换的结果进行列变 换.并行实现快速傅里叶变换算法的思路就是把行 变换和列变换的计算任务分配到各个节点并行完 成.并行傅里叶变换的过程为:各节点进行行变换 一各节点把行变换的结果发送给根进程一根进程 对行变换结果进行转置运算一根进程把转置结果 发送到所有计算节点一各计算节点再进行行变换 一各节点把变换结果发送到根进程一根进程进行 转置一得到最后结果.
LI Jiu—Kail¨。ZHUJunl,NING Jiao-Xianl
(1.College of Physics Science and Technology,Sichuan University,Chengdu 610064。China; 2.Institute of Atom and Molecular Physics,Sichuan University,Chengdu 610065,China)
该算法并行计算的计算量大而通信量很小,各 节点具有很少的相关性是相对独立的.此类问题具 有理想的并行性,编程容易实现,加速比也接近理 想值,并行效率接近于1.测试结果如图3所示.
丑 删R口
l
3 5 7 9 11 3
15 17 19
节点数量(台)
图3 Mandelbrot并行计算 Fig.3 Parallel cmputing of Mandelbrot
C.式中Z蚪,是复数Z=口+b/(其中i=F 1)
的第忌+1次迭代,乙是第忌次迭代,C是确定该 点在复数平面中位置的复数值.Z的初值为0.迭 代将一直进行下去,直至Z的幅值大于100(这表 明Z最终将变为无穷大)或是迭代次数已达到某 种任意规定的限度.记录每个点的迭代次数.
基于MPI的二维泊松方程差分并行实现与测试
( cd m f ud m na a dItri il aySine , ri Istt A a e yo n a et n eds pi r c cs Ha n ntue F l n c n e b i o ehooy Hab 50 0, hn ) f cnlg , ri 10 8 C ia T n
中 图分 类 号 :P 1 T 39 文献标识码 : A 文 章 编 号 :6 2— 9 6 2 1 )6— 84— 3 17 0 4 【0 1 0 0 5 0
A i pl a a lli plm e a i n o wo- i n i na sm e p r le m e nt to ft d me so l po s o qu to a e t o i e e e is n e a i n nd t s f d f r nc
lle ce c e f in y i
随着 高速 网络 和 多核 处理 器技 术 的发 展 , 群 集 系统 获得 了很 好 的性 能 . 由于性 价 比高 和可 扩展 性 好 的特 点 , 群 正 逐 渐 成 为 主 流 的并 行 平 台. I 集 MP
( esg as gIt ae 消 息传递 是 一种 典型 的 M saeP si ne c ) n f r
较 常 用 的方 法有 有限 差分 法 、 有限 元法 和 有限体 积
法. 用差 分方 法解 P i o os n方程 , 的结果 就 是方 程 s 解 的准 确解 函数 在 节点 上 的近 似 解 , 种 方法 主要 是 这 集 中在依 赖 于时 间 的 问题 . 其 他 两 种 方 法 相 比 , 与 有 限差分 法 简单 , 易并 行 . 此 我们 用 有 限差 分 方 因 法 求解 P i o 程 . 文抛 开复 杂 的理 论 问题 , o sn方 s 本 在
大气数值模式中的谱元素方法及其并行计算
大气数值模式中的谱元素方法及其并行计算张理论1 宋君强1 李晓梅2(1.国防科学技术大学计算机学院 长沙 410073)(2.指挥技术学院电子工程系 北京怀柔 100416)zll0434@摘要结合并行计算的研究应用现状,分析了谱模式并行计算中存在的问题,提出了解决问题的对策-谱元素方法。
分析谱元素方法的概念和计算特点,给出谱元素并行计算的优势所在。
针对两维浅水波模拟进行谱元素离散,给出了并行计算结果。
研究表明是谱元素法是一种很有并行潜力的有效模式计算方法。
关键词大气数值模式,谱变换方法,谱元素方法,并行计算1引言大气科学尤其数值模式的发展进步紧紧依赖于并行计算,这一点已经成为大气科学和并行计算两个领域的共识。
在考评一个已有的数值模式或者发展新的数值模式时,应该也必须考虑到其并行计算性能。
为此,对于并行计算和数值模式的现状特别是二者间的适应程度进行分析研究,是一项很有必要的工作。
本文论述了并行计算与谱数值模式的研究与应用现状,分析了其中存在的问题,给出了一种基于非重叠区域分解的谱元素方法,分析了其计算特点及在数值模式中的典型应用。
文章安排如下:第二节论述了当前并行计算的主要技术特点;第三节分析了谱模式的特点,指出了其在并行计算中存在的问题;第四节给出了基于非重叠区域分解的谱元素方法,结合浅水波方程,给出谱元素方法的一个应用实例;第五节为数值实验,指出了谱元素方法的优越性。
最后一节为结论。
2并行计算技术并行计算汇集了从硬件到数学方法等众多学科的精华,以实现高计算性能为目的。
并行计算的进展在并行软件和并行计算机两个方法均呈现不平衡性[1],总的看来:软件落后于硬件,数据传输速度落后于数据处理能力。
在硬件方面,微处理器增长遵循Moore定律,存储器技术的改进速度仅不及处理器增长速度的百分之一。
并行通信系统的两个重要技术指标,即传输带宽和启动时延的改进速度相差近十倍,启动时延长期居高不下,它是并行系统设计的技术难点,更是应用软件设计中所要关注的焦点之一。
高超声速流动CFD并行计算研究
万方数据万方数据否则网格将发牛错误。
图2网格拓展及数据交换方式3.4边界条件(1)远场边界条件。
根据当地边界法向速度的正负判断来流是人流还是出流,对于入流边界,所有流动参数均由自由来流确定;对于出流边界,所有流动参数均由内场外插得到。
(2)壁面边界条件。
对于粘性流动,不可穿透的壁面边界应满足无滑移条件:‰=0,‰一0,‰=0壁面压力可通过法向动量方程的简化形式计算为:a,t,一0a竹壁面气体温度由等温壁或绝热壁条件决定,即:L一∞钉毗(等温壁)或I嚣L=o(绝热壁)(3)对称边界条件。
对称边界条件要求对称面两侧的速度切向分量相等,法向分量相反,其他值相等即可。
(4)对接边界条件。
对于对接边界,可根据网格拓扑关系,寻找对应点的流场点,将相邻区的网格内点上的单元物理量通过消息传递赋给当前区的边界外点(即网格延拓得到的虚拟网格)。
这样,通过边界点的传递,在整个迭代过程中保证了分区之间的消息传递。
4算例计算结果与分析这里采用文献E93中给出的圆柱体表面压力系数的结果进行算法的验证。
圆柱体半径为0.038m,其高超声速来流条件为:地=16.34,L一52K,如一82.95Pa,T,o=294.4K。
初始计算网格为三维单分区网格,网格节点总数目为301×101×11,用到的边界条件有远场条件、壁面条件和对称面条件,如图3所示。
图3初始网格及边界条件设定针对单区域的初始网格,沿i方向分别进行2分区、4分区的蕈新划分,并分别在数量不同的Pc机上进行流场数值计算,得到的计算结果如图4~图7所示。
首先考察计算所得流场是否准确。
由图4~图6中的108图41分区网格及压力计算等值线图图52分区网格及压力计算等值线图图64分区网格及压力计算等值线图图7不同分区的Cp计算结果对比压力等值线图可以看出,不同分区得到的流场形式几乎完全一致,在分区交界面上的等值线无间断,保证了物理龟的连续;而通过图7中压力系数的对比,可见不同分区计算值能够很好地吻合,充分验证了边界数据处理方法的合理性和正确性。
基于 MPI + OpenMP 混合编程的水声探测系统效能并行计算方法
F a n Pe i q i n Da Li a ng l o n g Li Yu y a n g Zh o u Ya n x i a
( N a v y S u b m a r i n e A c a d e m y, Q i n g d a o 2 6 6 0 7 1 , S h a n d o n g, C h i n a)
特点 , 可以将上述两种 编程模 型相结合 , 实 现 MP I +O p e n M P的
0 引 言
水声探测 系统 探测效能反映 的是 水声探测装备 、 海洋环境 、
混合编程模型 。
混合编程模 型可以充分利 用两 种编程 模式 的优 点 : M P I 可 以解决多处理器 间的粗 粒度通信 , 而O p e n MP提供 轻量级线 程 ,
时效性 的要求。
关键词
中图分类号
声纳 探测效 能 机群 并行计算
T P 3 1 1 文献标识码 A D O I : 1 0 . 3 9 6 9 / j . i s s n . 1 0 0 0 - 3 8 6 x . 2 0 1 3 . 1 2 . 0 3 0
P ARALLEL CoM P UTI NG T ECHNoLoG Y FoR E FF I CI ENCY oF UNDERW ATER ACoUS TI C DETECTI o N S YS TEM BAS ED oN HYBRI D MP I+OPE NM P PRo GRAM M I NG
k i n d o f e ic f i e n c y c o mp u t a t i o n mo d e l ,a n d s t u d y t h e p a r ll a e l c o mp u t i n g me t h o d f o r u n d e r w a t e r a c o u s t i c d e t e c t i o n s y s t e m e f f i c i e n c y w h i c h i s b a s e d o n h y b r i d MP I+ P o e n MP p r o g r a mmi n g i n c o mb i n a t i o n w i t h t h e h i g h p e r f o r ma n c e c o mp u t i n g p l a t f o r m. C o mp u t a t i o n r e s u l t s h o ws t h a t t h e p a r ll a e l i s e d p r o ra g m c a n b e t t e r me e t t h e r e q u i r e me n t i n r e a l — t i me p r o p e t r y b y t h e c o mp u t a t i o n o f u n d e wa r t e r a c o u s t i c d e t e c i t o n s y s t e m e ic f i e n c y . Ke y wo r d s S o n a r D e t e c t i o n e f f i c i e n c y C l u s t e r P a r Ml e l c o mp u t i n g
非结构动网格分区并行计算方法
非结构动网格分区并行计算方法程兴华;刘巍;张理论【摘要】针对包含运动边界的非定常流动问题,基于弹簧近似法设计了一套非结构动网格分区并行计算流程,引入了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]。
基于MPI与OpenMP混合并行计算技术的研究
基于MPI与OpenMP混合并行计算技术的研究李苏平,刘羽,刘彦宇(桂林理工大学信息科学与工程学院,广西桂林541004)摘要:针对多核机群系统的硬件体系结构特点,提出了节点间MPI消息传递、节点内部OpenMP共享存储的混合并行编程技术。
该编程模型结合了两者的优点,更为有效地利用了多核机群的硬件资源。
建立了单层混合并行的Jacobi求对称矩阵特征值算法。
实验结果表明,与纯MPI算法相比,混合并行算法能够取得更好的加速比。
关键词:混合编程模型;多核机群;MPI; OpenMPTP312:A:1672-7800(2010)03-0050-031 MPI与OpenMP混合模型MPI( Message Passing Interface)是消息传递并行编程模型的代表和事实标准,可以轻松地支持分布存储和共享存储拓扑结构;OpenMP是为共享存储环境编写并行程序而设计的一个应用编程接口,是当前支持共享存储并行编程的工业标准。
在SMP机群系统中,混合编程模型已经有一些成功的应用,对于多核PC机群的混合编程模型研究才开始起步。
在多核PC 机群中,结合MPI与OpenMP技术,充分利用这两种编程模型的优点,在付出较小的开发代价基础上,尽可能获得较高的性能。
按照在MPI进程间消息传递方式和时机,即消息何时由哪个或哪些线程在MPI进程间传递进行分类,混合模型可以分为以下两种:(1)单层混合模型(Hybrid master- only)。
MPI调用发生在应用程序多线程并行区域之外,MPI实现进程间的通信由主线程执行。
该混合模型编程易于实现,即在基于MPI模型程序的关键计算部分加上OpenMP循环命令#pramgma omp par-allel- -即可。
(2)多层混合模型(Hybrid multiple)。
MPI调用可以发生在应用程序多线程并行区域内,进程间通信的可由程序任何区域内的任何一个或一些线程完成。
在该模型中,当某些线程进行通信时,其它的非通信线程同时进行计算,实现了通信与计算的并行执行,优化了进程间的通信阻塞问题。
基于MPI的二维泊松方程差分并行实现与测试
基于MPI的二维泊松方程差分并行实现与测试苑野;杨东华【摘要】消息传递是一种广泛应用于集群环境下的并行编程模型.针对简单二维Poisson方程的第一边值问题的典型差分格式,在MPI并行环境下,使用五点差分离散和雅可比迭代法实现了此类方程的并行求解.实际测试表明此类方程在一定问题规模下,其并行算法具有很好的加速比和并行效率.%Message-passing is a widely used cluster environment for parallel programming model. With a simple two-dimensional poisson equation for the first boundary value problem of the typical difference scheme, this paper used five-point difference discretization and the implementation of the Jacobi iterative method for solving such equations in MPI parallel environment. Actual tests showed that such equations in a certain scale of the problem, the parallel algorithm of it had good speedup and parallel efficiency.【期刊名称】《哈尔滨商业大学学报(自然科学版)》【年(卷),期】2011(027)006【总页数】4页(P854-856,861)【关键词】Poisson方程;消息传递接口;有限差分;加速比;并行效率【作者】苑野;杨东华【作者单位】哈尔滨工业大学基础与交叉科学研究院,哈尔滨 150080;哈尔滨工业大学基础与交叉科学研究院,哈尔滨 150080【正文语种】中文【中图分类】TP319随着高速网络和多核处理器技术的发展,集群系统获得了很好的性能.由于性价比高和可扩展性好的特点,集群正逐渐成为主流的并行平台.MPI(Message Passing Interface)消息传递是一种典型的并行编程模型.由于集群是一种典型的分布式存储系统,因此MPI消息传递系统已经成为目前集群上最重要的并行编程环境之一. 在科学计算中经常要数值求解各类偏微分方程.Poisson方程广泛应用于电学、磁学、力学、热学等多个领域,因此解决Poisson方程的计算问题成为了高性能计算领域中的一个最基本问题.目前比较常用的方法有有限差分法、有限元法和有限体积法.用差分方法解Poisson方程,解的结果就是方程的准确解函数在节点上的近似解,这种方法主要是集中在依赖于时间的问题.与其他两种方法相比,有限差分法简单,易并行.因此我们用有限差分方法求解Poisson方程.本文抛开复杂的理论问题,在高性能集群环境下,针对矩形区域上二维Poisson方程边值问题的五点差分格式,使用雅可比迭代法和MPI消息传递接口模型对一类简单的Poisson 方程给出了其差分方程组的并行实现解法,并定量的对该类解法的并行化性能进行了测试.1 MPI技术消息传递是一种广泛应用的并行编程模型.MPI(Message Passing Interface)是1994年5月发布的一种消息传递接口,它定义了用C和Fortran编写消息传递应用程序所用到的核心库例程的语法和语义,具有很多特点.首先,MPI提供了一个易移植的编程接口和一个可靠的通信接口,允许避免内存到内存的拷贝,允许通信重叠,具有良好的通讯性能;其次,它可以在异构系统中透明使用,即能在不同体系结构的处理器上运行;再者,MPI提供的接口与现存消息传递系统接口(如PVM、NX等)相差不大,却提供了更大的灵活性,能在更多的平台上运行;最后,MPI是一个标准,它没有规定底层必须如何实现,故给实现该标准的厂家带来了更大的灵活性,使MPI可扩展性更好.1.1 最基本的MPIMPI是个复杂的系统,它包含128个函数(1994年标准),1997年修订的标准MPI-2已经超过200个,目前常用的大约有30个,然后使用其中的6个最基本的函数就能编写一个完整的MPI程序,6个函数如下.MPI_INT MPI 初始化MPI_FINALIZE结束MPI计算MPI_COMM_SIZE确定进程数MPI_COMM_RANK确定当前进程标识MPI_SEND发一条消息MPI_RECV 接受一条消息1.2 组通讯MPI提供了强大的组通讯功能,可以满足进程间的组通信.组通信一般实现3个功能:通讯、同步和计算.通讯功能主要完成组内数据的传输,分为3种,即一对多通讯,多对一通讯和多对多通讯;而同步功能实现组内所有进程在特定的地点在执行进度上取得一致;计算的功能比较复杂,要对给定数据完成一定的操作.组内通信函数主要包括5类:同步(Barrier)、广播(Bcast)、收集(Gather)、散发(Scatter)和规约(Reduce).1.3 通信体通信体是由一个进程组和进程活动环境(上下文)组成.其中进程组就是一组有限和有序进程的组合;进程活动环境是系统指定的超级标记,它能安全地将相互冲突的通信区分开.通信体提供了MPI中独立的安全的消息传递,不同的通信库使用独立的通信体,保证了在同一通信体的通信操作互不干扰.2 Poisson方程简介2.1 Poisson方程的定义Poisson方程是数学中的一种偏微分方程,即为其中:Δ代表的是拉普拉斯算子,而f和Δ可以是在流形上的实数或复数值的方程.当流形属于欧氏空间,而拉普拉斯算子通常表示为▽2,因此Poisson方程通常写成在二维直角坐标系统中,Poisson方程可以写成2.2 二维Poisson方程的差分离散考虑区域Ω=(0,a)×(0,b)上的Poisson方程的第一边值问题将Ω沿着x,y轴方向均剖分为m,n等分,沿x方向上的步长记为,沿y方向上的步长记为,剖分节点记为(x,y)(i=1,…,m-1,j=ii 1,…,n-1).用μij表示μ 在节点(xi,yi)的差分近似解,则离散后的差分方程为其边界为令),整理后可得其中对于格式(3)~(7),可以使用各种迭代法求解,常用的有逐次超松弛迭代法、共轭梯度法、预条件共轭梯度法、交替方法及多重网格方法等,其中雅可比迭代法以其简单实用和易于并行实现一直受到人们的重视.格式(3)~(8)的雅可比迭代格式为其中:3 实例数据测试与结果分析下面研究一类简单的Poisson方程,当此时Poisson方程的解析式为我们用区域分解法,在每个子区域用五点差分离散及雅可比迭代法并行求解此类方程.本文的硬件测试环境是16个节点的惠普高性能集群,采用千兆以太网互联,每个节点有2颗Intel Xeon 2.66G处理器,16G内存,72G SAS磁盘,NFS共享文件系统,软件环境是Red hat Enterprise Linux 4.6操作系统,内核版本为2.69-67,采用的C编译器为Intel C++12.0,MPI的版本为Intel MPI 4.0.表1为所测试问题的规模及其串行计算的执行时间.一般情况下,问题的串行计算执行时间比其并行计算的单机执行时间短,这主要是因为并行计算的单机时间中包含了并行化所带来的开销.表1 题规模及串行程序执行时间问题规模顺序执行时间400×400 3.0000e+00 800×800 4.9000e+01 1600×1600 2.0000e+02表2为所测试问题的规模及多处理机程序执行时间.对并行算法的性能测试主要是通过加速比和并行效率.我们以问题的多处理机执行时间与单处理机系统执行时间的比值作为多机加速比,把并行算法的加速比与CPU个数之间的比值定义为并行效率.图1为不同问题规模下的多机并行加速比.图2为不同问题规模下的并行效率. 表2 不同问题规模下多处理机程序执行时间问题规模并行执行时间4 node 9 node 16 node 400×400 2.5862e+00 3.0134e+00 3.2024e+00 800×8007.5078e+00 4.9370e+00 4.7353e+00 160×1600 5.2700e+01 1.8333e+01 9.2666e+00由图1可知,当矩阵为400阶时,问题的规模较小,随着节点数目的增多,加速比持续下降,且在节点数node=4时,获得最大加速比为1.16;当矩阵为800阶时,问题规模比较大时,其加速比均大于1,且几乎成线性增长;当矩阵为1 600阶时,问题规模较大,其加速比随节点的增加,表现为先逐渐变大,然后迅速减小.当node=9时,获得最大加速比为2.9655,且node=16时的加速比大于node=4时的加速比,但由图2可知其并行效率下降了61.6%,可以预测,当节点数继续增加时,其加速比和并行效率将会持续降低.由图2可知,当问题规模比较小时,矩阵规模小于800阶,随着节点数的增加,并行效率逐渐降低,但问题规模越大其并行效率也越高.4 结语通过上述实验数据可知,此类Poisson方程的并行效率和加速比很难得到非常理想的值,主要原因在于:问题规模的大小,如果问题规模较小(如:矩阵为400阶或800阶),并行计算的任务量较小,几个处理器就足够了,若处理器太多,则难以实现最佳负载平衡同时处理器也得不到充分利用.反之,如果问题规模较大(如:矩阵为1 600阶),则需要更多的处理器.但随着处理器个数的增加,并行算法的加速比在峰值后呈现下降趋势,并行效率也在下降.参考文献:[1]陈国良.并行计算—结构·算法·编程(修订版)[M].北京:高等教育出版社,2003.[2]王同科,谷同祥.Poisson方程差分格式的SOR方法中最优松弛因子的回归分析方法[J].工程数学学报,2005,22(3):474-480.[3]陆金莆,关治.偏微分方程的数值解法[M].北京:清华大学出版社,2004.[4]章隆兵,吴少刚,蔡飞,等.PC机群上共享存储与消息传递的比较[J].软件学报,2004,15(6):842-849.[5]胡明昌,史岗,胡伟武,等.PC机群上JIAJIA与MPI的比较[J].软件学报,2003(7):1187-1194.[6]张武生,薛巍,李建江,等.MPI并行程序设计实例教程[M].北京:清华大学出版社,2009.[7]都志辉.高性能计算并行编程技术-MPI并行程序设计[M].北京:清华大学出版社,2001.。
基于MPI的不可压缩N-S方程并行计算方法的研究
_
t @ o al o j ht i m u m . t
U Ni g, n LUO J . h n . sa c o p r l l o ui g lo ih o ic mp esbe i s e gRee r h n a al c mp t ag rtm e n f n o rs il N - e u t n a e Ol PI S q a o b sd i i M .
李 宁 罗纪生 1 . , 2
L i g , UO J- h n I N n L i s e g・
1 津 大学 力 学 系 . 津 30 7 . 天 天 002 2南 开 大学 天 津 大学 刘 徽 应 用 数 学 中心 , 津 3 0 7 . 天 00 2 1 eat n o c a i ,i j nvri ,i j 00 2 C ia . p r t fMehnc Ta i U i sy Ta i 30 7 ,hn D me s nn e t nn
MP 不 是 一 个 独 立 的 自包 含 系 统 。 是 建 立 在 本 地 并 行 程 I 而
a c r t d r l b e, a h r n t e c l ua i g t n r u l n s we a a t l o lr e s a e s i ni c c mp t g c uae a ei l i c n s ot h ac lt i n a t e n me e omo sy a d i l d p a e t a g — c c e t o u i . l b l i f n
维)
C m ue n i eig ad A pi t n o p t E gn r n p l ai s计 算 机 工 程 与 应 用 r e n c o
MPI并行编程入门
S SISD
S I
MISD
M 指令个数
SMP- Symmetric MultiProcessing
多个CPU连接于统一的内存总线 内存地址统一编址,单一操作系统映像 可扩展性较差,一般CPU个数少于32个 目前商用服务器多采用这种架构
聚集方式:
归约
扫描
通信模式
一对一:点到点(point to point) 一对多:广播(broadcast),播撒(scatter) 多对一:收集(gather), 归约(reduce) 多对多:全交换(Tatal Exchange), 扫描(scan) , 置
换/移位(permutation/shift)
Work Pool
P1
P2
并行算法
• 并行算法设计基本原则
– 与体系结构相结合——线性结构,二维网络结 构……
– 具有可扩展性——并行算法是否随处理机个数 增加而能够线性或近似线性的加速
– 粗粒度——通常情况,粒度越大越好 – 减少通信——减少通信量和通信次数 – 优化性能——单机计算效率和并行效率
流水线计算示意图
并行化分解方法
– 分而治之方法:
• 以一个简单的求和问题为例,说明什么是分而治之方法。假设在q = 2*2*2个处理机上计算:
可以将计算依次分解为两个小的求和问题,用下图简单的描述(图中给出 的是处理机号)。在图中,从上至下是分解的过程,从下至上是求部分 和的过程。这就是有分有治的一个简单过程,也既是一种分而治之方法。
sp (q) q
–
并行计算技术(PDF)
联想高性能服务器事业部
联想深腾1800高性能服务器
学计 软 应 调 计 软 发 术 术 务
2
科学研究方法
1. z 论 2. 实验 3. 计 计 学 计 学 学 学 学 计 学 计 学 计 学 计 动 学 学 计 计 电 学 学 计 计
算量子力学、……
3
如何解决大规模科学计算问题
计算容量需求:如何实现大网格、大分子数等科学计算 – 算法和数据结构优化 – 并行计算 计算速度需求:如何在尽可能短的时间内完成计算 – 算法和数据结构优化 – 系统硬件、软件的发展 – 应用软件调优 – 并行计算
4
并行机的发展
(W SMP(¤pó MPP(¤j 规 ccNUMA(¤@¨s 统 联 级计 )G CRAY, 银 )G T3E,榔 储 I 1000,HP
98
278
292
293
299
486
9
联想深腾1800高性能服务器
学计 软 调 计 应 软 发 术 术 务
10
优化设计层次
问题定义 系统结构 算法 数据结构 代码调优 系统软件 系统硬件 计算机 计算机 软件工程师 软件工程师
科研 科研 工作者 工作者
HotSpot BottleNeck
11
计算机 计算机 硬件工程师 硬件工程师
44
精确到指令级的分析
45
谢谢
46
线程
共享内存和资源 OpenMP
21
并行计算设计方法
– 划分计算和数据 – 计算之间的数据共享 组 – 合理组织各任务来提高性能 – 分配任务(分布式、共享)
22
设计并行程序
The Problem
并行计算技术综述_王磊
务被加载到哪个结点上去运行,PVM 就允许用户指
定任务被加载的结点,这样就方便了用户编写并行
程序。 2. 3 OpenMP 简介[3,6]
OpenMP 是一种面向共享内存及分布式共享内
存的多处理器多线程并行编程语言,它也是一种能
够用于显示指导多线程、共享内存并行的应用程序
编程接口。OpenMP 的编程模型以线程为基础,通
MPP 提供了另外一种进行系统扩展的方式,它 由多个 SMP 服务器通过一定的节点互联网络进行 连接,协同工作,完成相同的任务。其基本特征是由 多个 SMP 服务器节点通过互联网络连接而成,每个 节点只访问自己的本地资源( 内存、存储等) ,是一 种完全无共享( Share Nothing) 结构,因而扩展能力 最好,理论上其扩展无限制。在 MPP 系统中,每个 SMP 节点也可以运行自己的操作系统、数据库等。 但和 NUMA 不同的是,它不存在异地内存访问的 问题。
TTotal = Tcomm + Tserial 其中,TTotal 、Tcomm 、Tserial 分别表示程序总用时、通信用 时和串行 部 分 用 时。而 通 信 用 时 一 般 可 作 如 下
分解:
n
m
∑ ∑ Tcomm = nts ÷ Bi / ω ÷ Ti ÷ TCi
i =1
i =1
其中,n 为点对点通信次数,m 为群集通信次数,ts
收稿日期: 2012 - 05 - 16 作者简介: 王磊( 1984 - ) ,男,助教,硕士研究生,主要研究方向为
并行计算。
NUMA 即非一致访问分布共享存储技术,它是 由若干通过高速专用网络连接起来的独立节点构成 的系统,各个节点可以是单个的 CPU 或是 SMP 系 统。在 NUMA 中,Cache 的一致性有多种解决方案, 需要操作系统和特殊软件的支持。
雷达散射截面并行计算中的MPI实现技术研究
面三角面元法、曲面四边形面元法,经过分组得到各子
散射体组,根据各组中心间距离,将两组关系分为近区
组和远区组,近区组采用矩量法计算,远区组采用聚
收稿日期:2008.12.17
修订日期:2009.06.30
基金项目:973基础项目(61320)
作者简介:刘战合(1977一),男,陕西富平人,博士研究生,,研究方向为飞行器隐身设计与计算。
以上主要物理量的处理采用本地存储的方法,即 在本地计算结点上,仅存储本地需要的数据。对于右 端激励矢量、转移因子、未知电流矢量等,均是全局变 量,因此在所有节点上,均需全部存储,但处理方法不 同,转移因子和右端激励矢量始终在各个节点上存储 不变,而未知电流矢量由于每次迭代过程会发生改变, 可采用广播操作MPI—Bcast()在迭代时实时更新数 据。
万方数据
.110.
航空计算技术
第39卷 第4期
合、转移、配置的步骤来实现矩矢相乘的求解。 多层快速多极子法是快速多极子法在多层分组结
构实施,聚合过程先在最细层进行,发散过程先在最高 层进行,并通过移置和插值完成其他层的聚合和发散, 而转移仅在每层中的部分组间进行。经过处理,原来 的积分方程求解变为线性代数方程组的求解问题,采 用共轭梯度算法来求解该方程组。
程序,可用于飞行器等目标RCS计算分析。为提高通信效率、增加程序的鲁棒性,提出了优化的通
信措施,分析了点对点通信、阻塞通信、非阻塞通信的使用优缺点,针对RCS计算,组建了完整的通
信方法,从而有效防止死锁的发生。算例证明,程序能胜任于电大尺寸的RCS散射计算,具有较高
基于MPI的不可压缩N-S方程并行计算方法
冲通信模式 、 同步通信模式 、 就绪通信模 式等 。MP 提供 了与 c I
和 Fra ot n语言 的绑定 。 r
2 本 文问题 的描 述
对不可压缩流 动的连续 方程和 N v r tks ai . oe 方程进行 无量 eS 纲化后 的控制方程 为 :
丝 :0
d
。
然而 , 由于湍流运动 的复杂性 , 使得数值计算在大 雷诺 数情
0 4 26 文献标识码 A
PARALLEL CoM PUTI NG ALG oI UTHM oF CoM PRESS BLE S D I N-
E QUAT oN B S D oN M P I A E I
W a g L a s e g Xio Ho gi n in h n a n l ‘ Gu n mi g n o Mi g n ( ea m n o e a i l ni e n ,i j i —e a yVct n l e nl yI tu ,i j 0 9 , h a Dp r e t t fM c n a E g e i T n nS oG r n o i a Tc o g s t e T n n 0 1 1 C i ) h c n rg a i n m a o h o n it a i 3 n
和消息接受等 。MP 支持 以下四种通信模式 : 准通信模式 、 1 标 缓
0 引 言
随着 计算机运行速 度 的大幅提 高 , 算流 体力学 ( F 得 计 C D) 到 了蓬勃 发展 , 这也促进 了航空 航天 技术 的发展 。数 值计算 已 经成 为与理论分析和实验 研究 并列 的研究 流体 问题 的方 法 , 直 接数 值模拟 ( N ) D S 方法 目前是 数值 研究湍流运动 的有效工具 之
用mpi设计一个并行计算程序的大体思路
用mpi设计一个并行计算程序的大体思路引用冷冰川的[资料]用mpi设计一个并行计算程序的大体思路转载地址:这个是我去年做的一个mpi并行计算的软件设计。
贴出来给大家一个参考,用mpi做东西的同学们可以讨论一下。
我们使用的并行计算环境是mpich2,这是mpi的一个实现。
mpi本身是基于信息传递的,所以各个工作节点虽然是异步的,但是通过消息,可以在一定程度上同步各个节点,进行控制。
设计上,比较自然的是把节点分成两类,一个控制节点和多个计算节点,控制节点负责分配任务,对任务执行情况进行监控,对各个计算节点得到的部分结果进行合并和优化。
计算节点比较简单,只是执行被分配到的部分计算任务,然后把结果返回给控制节点。
是否需要节点分类取决于计算任务的性质,现实生活中的多数计算任务都是需要把部分结果进行合并的。
所以节点分类是一个好的设计,至于控制节点的数目不一定局限于一个,可以做成多个,但是就我的具体应用来看,没有这个必要。
另外一个设计的要点在于消息的设计。
本身mpi支持传递消息参数有很多种,但是为了更好的通用性和较小的对并行计算平台依赖性,我还是选择了xml作为消息数据的格式,这样我们只需要传递字符串消息就可以了。
这样做的好处是显然的,缺点在于消息的发送方需要编码数据,接受方需要解码数据,效率可能略低。
另外对于错误消息和正常消息在设计上有所区分。
搞清楚以上两个设计点,基本的设计就出来了。
消息部分:基本的消息类层次结构应该是BaseMessage-StringMessage-XmlMessage-具体的Message其中BaseMessage只有一个功能,就是可以指定接收或者发送的目的方。
另外它还定义了消息内容的接口。
子类要实现这些接口来提供不同格式的消息内容。
代码:classBaseMessage{public://返回消息的的源或目的intFrom()const;int To()const;//设置消息的源或目的void From(int from);void To(int to);//取消息的内容virtualconstchar*Content()const=0;//设置消息的内容virtual bool Content(constchar*content)=0;//取消息的长度virtual int Length()const=0;.};StringMessage比较简单,就是字符串消息。
基于EBE技术的有限元并行算法的研究与实现的开题报告
基于EBE技术的有限元并行算法的研究与实现的开题报告一、选题背景和意义随着科学技术的不断发展,工程、科学等领域对计算机仿真与模拟的需求日益增加。
若要对大型系统进行模拟计算,则需要一套高效的计算模型。
基于有限元方法的模型则成为了一种流行的计算模型。
有限元方法(Finite Element Method, FEM)是一种基于物理场理论,通过离散化、变分等数学方法,建立包括结构、流固耦合等物理问题在内的一系列计算模型。
随着计算机技术的发展,有限元方法已经得到了广泛的应用。
在实际应用中,大规模的有限元模型会对计算机的硬件和软件造成极大的压力,需要借助于高性能计算和优化策略进行求解。
有大量的研究集中在如何提高有限元方法的效率和精度,如使用更高精度的数值方法、减少离散化误差、改进系统的并行算法等。
而基于位势理论、色散方程理论等理论的等效边界元方法(Equivalent Boundary Element Method, EBE)是一种另外的计算模型,它可以将物理场的求解问题转化为界面问题的求解,从而在某些领域有一定的应用价值。
混合有限元和等效边界元方法(Hybrid Finite Element and Equivalent Boundary Element Method, HyFEM-BEM)则将有限元和等效边界元方法相结合,将物理场的求解问题转化为混合边界值问题的求解。
该方法较之于传统有限元和等效边界元方法更加简便,尤其是对于大型工程求解问题具有很好的应用前景。
因此,本论文将研究基于EBE技术的有限元并行算法,旨在提高混合有限元和等效边界元方法的效率和精度。
二、研究内容本文将研究基于EBE技术的有限元并行算法,包括以下内容:1.介绍等效边界元方法和混合有限元和等效边界元方法,介绍并行计算机的特点和有限元方法的并行算法。
2.设计并实现基于MPI和OPenMP的有限元并行算法,实现并行计算机的高效利用。
3.利用混合有限元和等效边界元方法求解大型结构振动问题和热传导问题,比较本文提出的有限元并行算法和传统的有限元算法和等效边界元方法的效率和精度。
基于MPI+FreeFem++的有限元并行计算
基于MPI+FreeFem++的有限元并行计算摘要:有限元方法是一种灵活而高效的数值求解偏微分方程的计算方法,是工程分析和计算中不可缺少的重要工具之一。
在计算机技术的快速发展使得并行机的价格日益下降的今天,并行有限元计算方法受到了学术界和工程界的普遍关注。
讨论了基于MPI+FreeFem++的有限元并行计算环境的构建,阐述了在该环境下有限元并行程序的编写、编译及运行等过程,并通过具体编程实例,说明了MPI+FreeFem++环境下的有限元并行编程的简单和高效。
关键词:有限元方法;并行计算;MPI;FreeFem++0 引言有限元方法是20世纪50年代伴随电子计算机的诞生,在计算数学和计算工程领域里诞生的一种高效而灵活的计算方法,它将古典变分法与分片多项式插值相结合,易于处理复杂的边值问题,具有有限差分法无可比拟的优越性,广泛应用于求解热传导、电磁场、流体力学等相关问题,已成为当今工程分析和计算中不可缺少的最重要的工具之一。
有限元方法的“化整为零、积零为整”的基本思想与并行处理技术的基本原则“分而治之”基本一致,因而具有高度的内在并行性。
在计算机技术快速发展使得并行机的价格日益下降的今天,有限元并行计算引起了学术界和工程界的普遍关注,吸引了众多科研与工程技术人员。
但要实现有限元并行编程,并不是一件容易的事,特别是对于复杂区域问题,若从网格生成、任务的划分、单元刚度矩阵的计算、总刚度矩阵的组装,到有限元方程组的求解以及后处理,都需要程序员自己编写代码的话,将是一件十分繁琐的事情。
本文探讨了构建基于MPI+FreeFem++的有限元并行计算环境,在该环境下,程序员可避免冗长代码的编写,进而轻松、快速、高效地实现复杂问题的有限元并行计算。
1 FreeFem++简介FreeFem++ 是一款免费的偏微分方程有限元计算软件,它集成网格生成器、线性方程组的求解器、后处理及计算结果可视化于一体,能快速而高效地实现复杂区域问题的有限元数值计算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图l超松弛迭代示意图
5 实例验证 根据提出的方法,笔者针对不可压缩流体力学具体问题,
采用Fortran90语言,分别编写了串行、并行程序,在曙光 TCl700集群服务器下计算,系统为Linux。该算例所模拟的问 题为:对于不可压缩流体.在平板边界层中,入El处加入一个三 维波的扰动源.该扰动源在入口处随时间而有规律的变化,之 后三维波向下游传播,其幅值随空间而增长。
参考文献:
[1】Assaf I,Chen M,Katzberg J.Steel production schedule generation[J]. International Journal of Production Research,1997,35(2):467_477.
2本文问题描述 不可压缩直接数值模拟的基本方程是Navier—Stokes方
程、连续性方程,对方程进行适当的无量纲化后,其形式:
詈m田)牡坷p+去叻
(1)
V·H=0
f2)
其中U是速度,P为压力,Re是Reynolds数,V是Hamilton算 子,V2是Laplace算子。
在z方向采用Fourier谱展开。因此z方向为周期性边界
图2、图3为同一结果的两张图,所不同的是图2为',= 0.76,z=1处的串行、并行扰动空间演化情况(DNS—B表示并行 的结果.DNS—C表示串行的结果).而图3为y=0.76处串行、并 行整体扰动空间演化情况。从两张图可以看出,并行计算的结
(上接3页) 为了简化问题,本文将板坯排序问题转化为约束满足问题处 理,利用问题的约束条件过滤变量的值域,收缩搜索空问,降低 计算复杂性。应用基于域和费用值的动态变量选择和值选择启 发式算法以及改进的节点互换算法确定整板顺序。仿真实验证 明,约束满足+基于改进的节点互换算法具有理想的计算时间 和优化效果。(收稿日期:2006年11月)
基金项目:国家自然科学基金(the National Natural Science Foundation of China under Grant No.10232020)。 作者简介:李宁(1978一),男,博士研究生,主要研究方向为流体力学、并行计算;罗纪生(1954一),男,教授,博士生导师,主要研究方向为流体力学。
程的第一个数据补充为0,将第m个进程的最后一个数据也补
充为0,形式如下:
0
ao
oo
b1 01
01
A=
和
b,1 6k1 cpl b。%c。
bo ao
oo
A=
bl ol
bpl an_1 cpl b。 %0
下面介绍具体的计算方法。 步骤1将矩阵分成m部分。任取其中一个部分,表示如 下:
6『,(m)
A=
ห้องสมุดไป่ตู้
:
●
MPI不是一个独立的自包含系统,而是建立在本地并行程 序设计环境之上.其进程管理和I/O均由本地并行程序设计环 境提供。MPI实现主要包括MPICH、LAM、CHIMP几种。MPI子 集由6个基本函数组成:MPI初始化、MPI结束、获取进程的编 号、获取制定通信域的进程数、消息发送和消息接受。MPl支持 以下四种通信模式:标准通信模式、缓冲通信模式、同步通信模 式、就绪通信模式。
6”三
1 c’y
1 c■
6哆’
1 c?
肌ai…:髻,c,;…:霉。
n
口
最后.进行向上消元的计算。
6,,,≯’
C
6,,,,
(
A=
:
●
6,,,:
6”二m’
C舢。椭,;∥。㈣。
其中:6『『,三:6”:圳■c 7三,ctt。(m)=--Ct■c’:;6”譬6『,:…圳乞
.c’■c,’譬m)一cu。(m。’.c 7一(i-o,…,n一2)。
万方数据
李 宁.罗纪生:基于MPI的不可压缩N-S方程并行计算方法的研究
2007,43(9)
9
条件。x,y方向采用紧致差分格式。因此,本文在x,y方向采用 并行计算。时间的离散方法和空间的离散方法的详细情况见文 献[21。
针对非线性项、粘性项、散度和梯度,都需要求解三对角矩 阵。设所要求解的三对角方程组为:A·x=f,其中,A为三对角矩 阵,并且是非奇异的。那么,如何并行求解三对角矩阵呢?
经过向上、向下消元之后,方程变为:
6f『,≯’
菇
6,,,:莉
戈
:
●
6…三
石
6■
舢。椭.;^、^。 膏㈤。:“㈨。 眩"㈠坛一
当每个进程单向点数超过30个的时候,60’一o,c咿’一o(证明
bo ao Co
.·
b1Ⅱl。l
(3)
b,1%一l
-.,.—,【 矗五;厶
步骤2首先,进行向下消元的计算(上标m表示第m个 进程)。
1130 200 300 400 500
图2串行、并行计算结果比较图(y=0.76。z=l处
4并行局部超松弛迭代的基本原理 针对上面提到的问题.本文采用了一种局部超松弛迭代的
方法,即每个时间步计算的开始.将各个进程边界上的数据传递 给相邻的进程(注意角点的数据),然后进行超松弛迭代,也就是 说,除去边界上的点,其余的点都采用超松弛迭代法,从实际数 值计算的结果来看,只是迭代的次数相对增加一些.对计算结果 没有影响。值得注意的一点,为了配合方程的边界条件,对迭代 的方向本文也进行了研究,结论为:从戈',平面中心开始,向四个 角点迭代,收到的效果较好。超松弛迭代示意图如图1所示。
那么,如何在并行中采用超松弛迭代法呢?
6”∥ 1 c,:m)
…
3并行求解三对角矩阵的基本原理
假设采用m个进程,第1个进程和第m个进程的形式分 别为:
Ⅱ0
co
r
b1 ttl A=
●●●
们¨ 加乩
和
C卜l :
an
C“
bo ao
bl 孙m “
●
A= :
¨ %一1 cJ卜l
_:
b。 %
为了取得形式上的一致,以便计算起来通用方便,将第1个进
(m+1)
x。弓,一c。’oo
相应各个进程的戈≯’、*,都可以求解出来。
步骤4代回到式(4)中,因为由第m和第m一1个进程,求
出了戈≯’,由第m和第m+1个进程求出了*∥,因此可得:
z∥乏…一6…:….戈∥-c∥t算≯(湖,…,叫)
(7)
求出了各个进程每个点的值。
O.00l O O.0()0 5
0
o
是甲.D o 2移o,G o 2。o,。r
’1
松弛迭代法求解嘲,可得:
露1=(1叫碗+∞ A…p。+l印:,。)+B(pp沪+l,+ppⅢ。)芬。 2(A+曰)+6
。:霉撕乩…∽。 o ol
其中:A=1/Ax2,B=I/Ay,山为松弛因子,b为系数,为已知项。
其次,各行都除以该行的主对角元素,使主对角线的值为1。
步骤3将c’,’传递给下一个进程,将6…≯’传递给上一个
进程,任取一个组合为例,可得如下二元一次方程组:
b,。H B雌,]
㈤
万方数据
10
2007,43(9)
Computer E,画船er机g and Applications计算机工程与应用
。。,∥’≯…·b…∥
‰5i了碡万
(6)
(m) 』m)
,(m)
Abstract:For the present CFD,when we try to solve large—scale science computing problems,such as the N—S equaion,we have to calculate a lot of things and it takes a lot of time to get all the calculations done.To solve the problem,a parallel computing algorithm called MPI,which includes the solution of tridiagonal matrix and SOR,is proposed.This method has been proved to be accurate and reliable,it can shorten the calculating time enormously and is well adaptable to large—scale scientific computing. Key words:CFD:N—S equation;MPI;parallel computing
文章编号:1002—8331(2007)09—0008—03 文献标识码:A 中图分类号:0246
近几十年,随着计算机运行速度的快速提高,计算流体力 学得到了蓬勃的发展,而这也促进了航空、航天技术的发展。显 然,数值计算已经成为与理论分析和实验研究并列的研究流体 流动问题的方法。然而,由于流体流动的复杂性,使得流场数值 计算的工作量非常巨大,特别是采用空间模式,以至于利用目 前运算速度最快的计算机仍然无法仔细模拟大多数工程流场。 因此,计算流体力学工作者们一直在寻求更好的算法来大规模 地提高计算速度。并行计算就是在这种背景下应运而生的。
另外。针对压力函数P,其满足的方程为Helmhohz方程:
6,∥ o 怖o
耐 o%
6 7y
m
∥ 、莹,
C
A2 :
6’三 6,:m)
Ⅱ <n 耐o
}ⅡC 刚。 哪
m
●吒
采用蠢黧篡…酗Helmhohz掘一超…∥≤。,G,:m,栽。,6,:。刊乞,每∥=8:。一 采用五阶中心差分格式离散上面的
2一。¨可,。-28-一 方程,并采用超
基于Linux环境下的MPI并行计算,以其准确、可靠、高效 的优点,备受计算流体力学工作者的青睐。本文所要阐述的问 题即是采用MPI并行求解N—S方程。