GRAPES四维变分同化系统MPI和OpenMP混合算法研究

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:hongxingdehong
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文阐述了MPI和OpenMP的编程模式,并在此基础上利用MPI和OpenMP混合并行的方式,即:在节点内应用OpenMP共享存储、在节点间应用MPI进行消息传递的模式,对我国自行研发的数值天气预报系统GRAPES(Global/Regional Assimilation and Prediction Syste)进行测试,。结果表明,混合并行算法比原来的单纯的MPI模式有更加理想的并行效率和加速比。
  关键词:混合编程;MPI+OpenMP
  中图分类号:TP301.6 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02
  1 引言
  在高性能计算技术研究领域,机群系统具有良好的可扩展性与高性价比,受到越来越多的大学及科研机构的青睐。随着多核技术以及现代网络技术的发展,越来越多的集群采用多核处理器作为核心部件,基于多核技术的集群已经成为高性能计算领域的主流平台,集群下最常用的并行编程模式的消息传递接口MPI(Message Passing Interface)被广泛应用与分布式以及共享内存系统,成为目前并行编程的标准。但在很多情况下,采用单纯MPI消息传递编程模式并不能取得理想的性能。针对多核机群系统既有分布式存储又有共享存储的特点,MPI+OpenMP混合模式更贴近于多核机群的体系结构,结合消息传递与共享存储两种编程模式的优点,优化节点内部通信,在节点间应用MPI消息传递、节点内部应用OpenMP共享存储则能取得更理想的结果。
  2 MPI和OpenMP编程模式
  2.1 MPI编程模式
  MPI不是一种编程语言,而是一个消息传递的接口,它以实际可用的、可移植的、高效的和灵活的特点被广泛用于消息传递的并行程序。MPI是一个接口库,它支持C语言和FORTRAN语言。
  MPI适用于共享和分布式存储的并行计算环境,它的显式并行有着很好的性能和可移植性,通常用在聚集通信的优化实例中。然而它也存在着不足:应用的开发、分解、调试都很困难,有时候还要对代码作大量的修改。为了减少通信开销和延迟,通常使用粗粒度模型。
  在MPI的整个传递过程中,需要指定数据的传递类型,再数据到达传到目的进程后还需要对数据进行转换和匹配。消息传递的整个过程如下图所示:
  2.2 OpenMP编程模式
  OpenMP是作为共享存储标准出现的,是为共享存储环境编写并行程序而设计的一个应用接口。
  OpenMP的工作模式采用的是“Fork/Join”模式。其并行执行示意图如下:
  程序开始的主线程是串行,当在需要并行的时候(这时候程序中应该有相应的OpenMP指令语句),多个线程开始一起工作。若当前的并行块结束(仍旧由相应的OpenMP指令语句来控制)时,又重新回到单一的主线程。这就是共享存储标准的并行模式—Fork/Join式并行模式。
  2.3 混合编程模式
  MPI和OpenMP编程模式的相结合充分利用了共享存储编程模型和消息传递编程模式的优点,提供节点内和节点间的两级并行,很好的映射多处理器计算机组成的集群体系结构。
  使用混合编程模式的结构如上图所示,MPI位于顶层而OpenMP位于底层。每个MPI进程都可以在#gragma omp parallel编译制导的区域内产生多线程的并行,而在区域外仍是单线程。首先对问题进行MPI分解,每个MPI进程被分配到一个节点上,进程间使用消息传递交换信息;然后在每个MPI进程中,使用OpenMP制导指令创建一组线程,并分配到不同处理器上并行执行。
  同单纯的MPI模型相比,MPI和OpenMP混合模型使用快速的共享内存访问代替节点间的消息传递模式,不仅解决了处理器间的粗粒度通信,还解决了各个处理器内部的交互,有效的降低通信的开销。此外,一般情况下随着MPI进程个数增加,并行性能会下降。而混合模式由于MPI进程数等于节点个数而不是MPI模型中的处理器的个数,这样在保证解决问题的处理器数量不变的情况下大大减少了进程数。因此混合模式有更强的可扩展性。
  3 混合并行的实现
  混合并行是实现时需要注意的:
  3.1 对OpenMP中私有变量private和共享变量shared的设定。共享变量所有线程都能访问,而私有变量是只有拥有该线程的变量才能访问。为了提高catch性能,同时避免假共享问题,在实验中应尽可能采用私有变量。
  3.2 在线程执行中使用!$OMP BARRIER制导语句来控制线程的行为。防止由于负载不均衡导致线程步调不一致出现错误结果。
  实验测试的实例为我国自主研发的新一代数值天气预报系统GRAPES的有限区域切线模式。它的主要计算过程是一个典型的Helmholtz方程。这里不再对方程求解做过多赘述。实验平台为国家气象局高性能计算集群IBM-Cluster1600,编译器为XLfortran,编译优化级别为3。在集群上对单纯MPI程序和MPI+OpenMP混合并行程序进行测试。为了方便起见,只启动 了1、 2、 4、 6、8个节点数去运行程序。对于用单纯MPI实现的程序,每个节点上有两个进程;而对于用MPI+OpenMP实现的程序,每个节点上创建一个进程,每个进程内有两个线程。程序在集群上分别测试三次,取三次测试的平均值来计算加速比和运行效率。在集群的8个节点上分别运行MPI实现的程序和MPI+OpenMP实现的程序,当对于用MPI实现的程序,每个节点为2个进程,一共16个进程并行执行。当对于用MPI+OpenMP实现的程序,每个节点1个进程,每个进程中分配两个线程,一共8个进程,16个线程并行。
  设定计算网格为37×31×15,水平格距1.0°,积分步长600 s,积分1600步;   4 结果与分析
  这两种计算规模在不同处理器规模下的并行加速比与并行效率如下:
  从以上结果不难发现:使用MPI+OpenMP混合并行实现的程序的优势要明显高于单纯用MPI实现的程序。当单纯MPI实现的程序并行效率下降到90%以下时,使用混合并行方式实现的程序的并行效率要比单纯用MPI实现的程序高5%到10%。
  5 结束语
  本文充分利用MPI和OpenMP各自的特点,在节点间消息传递、节点内共享存储从而实现MPI+OpenMP混合并行,并对GRAPES切线模式做出尝试,同时与单纯用MPI实现的程序的结果作对比,并得出了较为明显的结果。这说明这以混合算法在这一领域是可行的、是有一定意义的。接下来的工作就是继续挖掘并行计算的潜力,使GRAPES切线模式的计算效率有进一步提高,争取在原有基础上再提升10%。
  参考文献:
  [1]张平,李清宝,赵荣彩.OpenMP并行程序的编译器优化[J].计算机工程,2006(24):24-26.
  [2]冯云,周淑秋.MPI+OpenMP混合并行编程模型应用研究[J].计算机系统应用,2006(2):33-35.
  [3]陈勇,陈国良,李春生,何家华.SMP机群混合编程模型研究[J].小型微型计算机系统,2004,25(10).
  [4]吴兆明.MPI+OpenMp混合编程模式研究与效率分析[J].南京工业职业技术学院学报,2009,9(4).
  [5]蔡佳佳,李名世,郑锋.多核微机基于OpenMP的并行计算[J].计算机技术与发展,2007,17(10).
  [6]孙洪迪,高柱.基于OpenMP技术的多核处理器程序的开发实现[J].北京工业职业技术学院学报,2010,09(1).
  [7]Hybrid Programming:Combining MPI with OpenMP Brown CCV ParaIlel Programming Workshop Spring2005 www c“brown edu/Events/Hybrid -ma05pdf
  [8]MichoeIJ Quinn paralleI programming in c with MPI and OpenMP [M]McGraw—Hill higer education
  [9]许彦芹,陈庆奎.基于SMP集群的MPI+CUDA模型的研究与实现[期刊论文]-计算机工程与设计.2010(15).
  [10]于方,郑晓薇,孙晓鹏.基于SMP集群的三维网格多粒度混合并行编程模型[J].计算机应用与软件.2009(3).
  [11]张军,万剑怡.多核集群系统上的混合编程模型研究[J].计算机与现代化.2009(5).
  [12]李肯立,杨进,彭成斌,秦云川.基于MPI+OpenMP混合模型的并行地震数据处理支撑库的研究[J].计算机工程与科学,2007(12).
  [13]向文,刘青昆,于方,郑晓薇.基于LAM-MPI和OpenMP的机群编程环境配置与应用[J].大连民族学院学报.
  [作者简介]
  樊志杰(1985- ),男,河南郑州市中牟县人,硕士,主要研究领域:GRSPES四维变分同化系统;赵文涛(1969- ),男,教授,湖南长沙人,博士生导师,主要研究领域为:GRSPES四维变分同化系统,氢氧火箭发动机燃烧理论。
其他文献
自从泰勒的著名文章《实践中的相机抉择和政策规则》1993年发表之后,他的分析便深深的影响着货币经济学家和实践者们对政策争论的思考。其成功之处在于,用简单的货币规则抓住了
20世纪80年代以来,跨国公司为了应对激烈的市场和技术竞争,在全球竞争中巩固和发展核心竞争力,除了大力推进以自主研发和并购方式获取新技术外,还纷纷寻求与其竞争对手结成基于相
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
期刊
本文报告67例不同类型再生障碍性贫血(AA)进行自身或异体胎肝细胞悬液输注(FLT)有效率达76%。提示FLT是治疗各种类型AA的有效方法之一,特别是难治AA。同时观察到自身FLT疗效
基于真实场景的虚拟漫游技术不仅可以在2D基础上实现3D,而且可以获得实境漫游的体验.作者利用普通相机进行拍摄,经过拼接融合得到全景图,再基于flash cs5编写代码,最终得到低
改革开放以来的二十多年,中国实行的主要是“引进来”的开放战略,在发展的进程中,逐步由单一重视“引进来”战略转向了“引进来”和“走出去”并重的开放性的经济发展战略。“引
生态环境是人类赖以生存的基础。但是,在我国经济快速发展的过程中,由于自然、经济、社会和历史等方面的原因,生态环境状况不断恶化。在这种情况下,生态补偿机制作为保护生态环境
本文对我国银行业市场结构与绩效进行了分析。文章通过对市场集中度的研究确定出了当前我国银行业市场结构的基本类型,计算并比较了这一时期我国主要银行的经营绩效,利用DEA模
本文报道15例急性非淋巴细胞白血病患者,获得完全缓解后长期生存5年以上。并对治疗、年龄、血象、髓象等因素略加讨论。 This article reports 15 patients with acute non-
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥