当前位置:首页 > MPI并行程序设计
MPI并行程序设计
(Message Passing Interface)
一、相关内容
a)并行计算机分类
存储方式:共享内存、分布式内存、分布式共享内存。
PE PE PE
分布式内存并行计算机 共享内存并行计算机
分布式共享内存并行计算机
? 对于共享内存的并行计算机,个个处理单元通过对共享内存的访问来
交换信息,协调各处理器对并行任务的处理。这种共享内存的编程实现起来相对简单,但共享内存往往成为性能特别是扩展性的重要瓶颈。 ? 对于分布式内存的并行计算机,由于不存在可公用的存储单元,各个
处理器之间通过消息来交换信息,以协调和控制各个处理器的执行。这就是消息传递并行编程模型所面对的并行计算机的存储方式。由于这种类型的并行计算机有很好的扩展性和很高的性能,它的应用非常广泛。
? 分布式共享内存的计算机结合了前两者的特点,是一种重要的发展方
向。通过提高一个局部节点内的计算能力,使它成为所谓的“超节点”,
1
PE PE PE M M M 互连网络 共享内存 PE PE PE PE PE PE 互连网络 不仅提高了整个系统的计算能力,而且可以提高系统的模块性和扩展性,有利于快速构造超大型的计算系统。
b)并行语言的产生方式
? 设计全新的并行语言
? 扩展原来的串行语言的语法成分,使它支持并性特征 ? 不改变串行语言,仅为串行语言提供可调用的并行库
c)消息传递并行编程模型
消息传递即各个并行执行的部分之间通过传递消息来交换信息、协调步伐、控制执行。几乎所有共享和分布存储的并行计算环境均支持进程间的消息传递通信;
基于消息传递的并行程序的两种执行模式: ? SPMD模式:单程序多数据流
并行应用程序代码 可执行代码
运行 复制多份并独立执行,形成多个独立的进程 进程一(内存)进程二(内存)进程三(内存)消息传递(交换数据、同步、归约)协同 2
? MPMD模式:多程序多数据流,除初始启动多个可执行代码,其余
与SPMD模式一致;
MPI程序一般是SPMD程序,当然也可以用MPI来编写MPMD程序,但是,所有的MPMD程序,都可以用SPMD程序来表达,二者的表达能力是相同的。
二、MPI概述
a)什么是MPI
消息传递并行编程模型的事实上的标准、一个库
MPI是目前应用最广的并行程序设计工具,几乎被所有并行计算环境(共享和分布式存储并行机、机群系统等)和流行的多进程操作系统(UNIX、Windows NT)所支持,基于它开发的应用程序具有很好的可移植性;
优点:移植性好、功能强大、效率高
b)语言绑定和具体实现
MPI是一个库不是一门语言,要使用它,必须和特定的语言结合起来:FORTRAN、C。和这两种语言绑定是很成功的策略,它们使用面广,熟悉、会用这两种语言的人很多。Fortran90 、C++与MPI-2绑定。
免费的MPI实现:Mpich、Chimp、Lam
c)MPI程序的框架结构
3
2.进程间通信; 头文件mpif.h 相关变量声明 进入MPI系统,形成通信 MPI_INIT( ) 域MPI_COMM_WORLD MPI_COMM_RANK ( ) MPI_COMM_SIZE ( ) 应用程序实体: 1.计算部分; MPI_FINALIZE ( ) 退出MPI系统 End 4
共分享92篇相关文档