MPI+OpenMP混合编程技术总结
更新时间:2024-06-16 07:32:01 阅读量: 综合文库 文档下载
MPI+OpenMP混合编程
一、 引言
MPI是集群计算中广为流行的编程平台。但是在很多情况下,采用纯的MPI消息传递编程模式并不能在这种多处理器构成的集群上取得理想的性能。为了结合分布式内存结构和共享式内存结构两者的优势,人们提出了分布式/共享内存层次结构。OpenMP是共享存储编程的实际工业标准,分布式/共享内存层次结构用OpenMP+MPI实现应用更为广泛。OpenMP+MPI这种混合编程模式提供结点内和结点间的两级并行,能充分利用共享存储模型和消息传递模型的优点,有效地改善系统的性能。
二、 OpenMP+MPI混合编程模式
使用混合编程模式的模型结构图如图1在每个MPI进程中可以在#pragma omp parallel编译制导所标示的区域内产生线程级的并行而在区域之外仍然是单线程。混合编程模型可以充分利用两种编程模式的优点MPI可以解决多处理器问的粗粒度通信而OpenMP提供轻量级线程可以和好地解决每个多处理器计算机内部各处理器间的交互。大多数混合模式应用是一种层次模型MPI并行位于顶层OpenMP位于底层。比如处理一个二维数组可以先把它分割成结点个子数组每个进程处理其中一个子数组而子数组可以进一步被划分给若干个线程。这种模型很好的映射了多处理器计算机组成的集群体系结构MPI并行在结点问OpenMP并行在结点内部。也有部分应用是不符合这种层次模型的比如说消息传递模型用于相对易实现的代码中而共享内存并行用于消息传递模型难以实现的代码中还有计算和通信的重叠问题等。
三、 OpenMP+MR混合编程模式的优缺点分析
3.1优点分析
(1)有效的改善MPI代码可扩展性
MPI代码不易进行扩展的一个重要原因就是负载均衡。它的一些不规则的应用都会存在负载不均的问题。采用混合编程模式,能够实现更好的并行粒度。MPI
仅仅负责结点间的通信,实行粗粒度并行:OpenMP实现结点内部的并行,因为OpenMP不存在负载均衡问题,从而提高了性能。 (2)数据拷贝问题
数据拷贝常常受到内存的限制,而且由于全局通信其可扩展性也较差。在纯的MPI应用中,每个结点的内存被分成处理器个数大小。而混合模型可以对整个结点的内存进行处理,可以实现更加理想的问题域。 (3)MPI实现的不易扩展
在某些情况下,MPI应用实现的性能并不随处理器数量的增加而提高,而是有一个最优值。这个时候,使用混合编程模式会比较有益,因为可以用OpenMP线程来替代进程这样就可以减少所需进程数量,从而运行理想数目的MPI进程,再用OpenMP进一步分解任务,使得所有处理器高效运行。 (4)带宽和延迟限制问题
减少结点间的消息但是却增加了消息的长度。在简单的通信中,比如,在某时仅允许一个结点发送/接收一条消息,消息带宽是没有影响的,整个延时会降低因为此时消息的数量少了。在更复杂的情况下,允许消息并发的发送/接收,长消息数量的减少会产生不良影响。 (5)通信与计算的重叠
大多数MPI实现如:MPICH和LAM,都是使用单线程实现。这种单线程的实现可以避免同步和上下文转换的开销,但是它不能将通信和计算分开。因此,即使是在有多个处理器的系统上,单个的MPI进程不能同时进行通信和计算。MPI+OpenMP混合模型可以选择主线程或指定一个线程进行通信,而其它的线程执行计算的部分。
3.2 缺点分析
虽然在很多情况下,使用OpenMP+MPI混合编程模式的程序效率更高。但是它也存在着一些不足,比如对于纯MPI应用,每个参与通信CPU可以饱和结点间的带宽而MPI+OpenMP若分出一个线程进行通信则难以做到。同时,OpenMP也要产生系统开销如:线程fork/loin,为了达到同步清洗cache,空间局部性会更糟糕。采用混合编程模型的程序能否取得更高的效率取决于以下几种因素:采用混合编程模型的程序往往有着更小的通信开销,是否可以用轻量级的线程来代替重量级的MPI进程来实现并行化,还包括其它一些因素,比如MPI进程数量限制,MPl进程负载均衡问题,数据拷贝的内存限制因素。在面对实际应用的时候,一定要考虑MPI和OpenMP这两者的结合是否能够提供一个更加优化的并行平台,怎样利用两者实现并行化。
四、 结语
OpenMP+MPI这种混合编程模型相比于单纯的MPI消息传递编程模型更能充分利用多处理器计算机集群的体系结构特点,在某些情况下可以有效的改善集群的性能,它为多处理器构成的计算机集群提供了一种不错的并行策略,但是这种编程模式并不能适应所有的代码。因此,在实际的应用中,是否选择混合编程模式还需要针对实际情况而定。
正在阅读:
MPI+OpenMP混合编程技术总结06-16
网络营销主要做什么08-13
法律工作者学习科学发展观心得体会04-03
中国白色家电行业市场现状调查及投资前景分析报告2016-2021年08-30
SSD590C直流调速器弱磁升速操作方法及参数设定11-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 混合
- 编程
- 总结
- OpenMP
- 技术
- MPI
- 北京现代汽车常见故障案例分析
- C语言概念题
- 复习作业5
- 书店管理系统的设计与实现(初稿) - 图文
- TS24301-R8学习总结(1)
- Matlab的离散点曲线导数曲率数值模拟方法
- 省级学会在科学道德和科研诚信建设中的作用
- 2009年国家司法考试试卷三及答案解析
- 油料加注工理论初级
- 语文借生日
- 懂得6个为什么,餐饮店长就能做
- 第一章 古典文献的物质形态
- 最新北师版五年级语文下册第四单元测试题及答案
- 2018年全国两会政府工作报告全文word版
- 浙江省温州市2018届高三9月高考适应性测试(一模)数学试题+Word版
- 汽车连锁4S店各岗位员工KPI绩效考核管理办法 汽车销售服务公司KP
- 小学数学继续教育试题答案
- 2011年理工类职称英语新增文章1
- 浅谈学校管理文化
- 网络安全等级保护2.0-通用要求-表格版