MPI+OpenMP混合编程技术总结.doc
内容介绍
MPI+OpenMP混合编程技术总结 ,MPI+OpenMP混合编程技术总结。欢迎下载!
MPI+OpenMP混合编程 、、 引言 MPI是集群计算中广为流行的编程平台。
但是在很多情况下,采用纯的MPI消 息传递编程模式并不能在这种多处理器构成的集群上取得理想的性能。
为了结 合分布式内存结构和共享式内存结构两者的优势,人们提出了分布式/共享内 存层次结构。
OpenMP是共享存储编程的实际工业标准,分布式/共享内存层次结 构用OpenMP+MPI实现应用更为广泛。
OpenMP+MPI这种混合编程模式提供结点内 和结点间的两级并行,能充分利用共享存储模型和消息传递模型的优点,有效地 改善系统的性能。
、、 OpenMP+MPI混合编程模式 使用混合编程模式的模型结构图如图1在每个MPI进程中可以在#pragmaomp parallel编译制导所标示的区域内产生线程级的并行而在区域之外仍然是单线 程。
混合编程模型可以充分利用两种编程模式的优点MPI可以解决多处理器问的 粗粒度通信而OpenMP提供轻量级线程可以和好地解决每个多处理器计算机内部 各处理器间的交互。
大多数混合模式应用是一种层次模型MPI并行位于顶层Open MP位于底层。
比如处理一个二维数组可以先把它分割成结点个子数组每个进程 处理其中一个子数组而子数组可以进一步被划分给若干个线程。
这种模型很好 的映射了多处理器计算机组成的集群体系结构MPI并行在结点问OpenMP并行在结 点内部。
也有部分应用是不符合这种层次模型的比如说消息传递模型用于相对 易实现的代码中而共享内存并行用于消息传递模型难以实现的代码中还有计算 和通信的重叠问题等。
、、 OpenMP+MR混合编程模式的优缺点分析
3.1优点分析 (1)有效的改善MPI代码可扩展性 MPI代码不易进行扩展的一个重要原因就是负载均衡。
它的一些不规则的应 用都会存在负载不均的问题。
采用混合编程模式,能够实现更好的并行粒度。
MPI 仅仅负责结点间的通信,实行粗粒度并行:OpenMP实现结点内部的并行,因为Ope nMP不存在负载均衡问题,从而提高了性能。
(2)数据拷贝问题 数据拷贝常常受到内存的限制,而且由于全局通信其
下载地址
进入下载页
文件大小
39.0KB
上传作者
山子
文件类型
.doc