文档介绍:第十四章分布存储系统并行编程
国家高性能计算中心(合肥)
分布存储系统并行编程
基于消息传递的编程
MPI并行编程
PVM并行编程
基于数据并行的并行编程
HPF并行编程
国家高性能计算中心(合肥)
基于消息传递的并行编程
1 消息传递库
2 消息传递方式
国家高性能计算中心(合肥)
1 消息传递库(Message-Passing Libraries)
建议: 一个终端用户在开发新的消息传递应用时使用MPI或PVM. 原因是:
MPI和PVM都是公用软件, 易于得到
多数厂家支持
国家高性能计算中心(合肥)
CMMD: 是一个用于Thinking Machines CM-5系统的消息传递库, 其特点是基于主动消息(Active Message)机制在用户空间实现通信以减少通信延迟;
Express: 是一个支持点到点和群集通信以及并行I/O的程序设计环境;
Nx: 是为Intel MPP(例如, Hypercubes和 Paragon)开发的微核系统. 现在已由用于Intel/Sandia ASCI TFLOPS 系统中的新的微核系统PUMA代替.
Fortran-M: 是对Fortran77的扩展, 它在设计上既支持共享存储也支持消息传递, 但当前只实现了对消息传递的支持. 该语言提供了许多机制用于支持开发行为确定、模块化的并行程序.
P4(Parallel Programs for Parallel Processors) : 是一组宏和子程序, 用于支持共享存储和消息传递系统中的程序设计, 它可以移植到许多体系结构上.
其它的消息传递软件系统还有Vertex, PARMACS, Zipcode, UNIFY和PICL等.
1 消息传递库(Message-Passing Libraries)
国家高性能计算中心(合肥)
在当前所有的消息传递软件中, 最重要最流行的是MPI和PVM, 它们能运行在所有的并行平台上, 包括SMP和PVP. 二者已经在Windows NT 和Windows 95这样的非Unix平台上实现. 程序设计语言支持C, Fortran和Java.
在国产的三大并行机系列神威、银河和曙光上都实现了对MPI和PVM和支持.
1 消息传递库(Message-Passing Libraries)
国家高性能计算中心(合肥)
MPI(Message Passing Interface) 简介
1 消息传递库(Message-Passing Libraries)
目标: 是提供一个实际可用的、可移植的、高效的和灵活的消息传递接口标准. MPI以语言独立的形式来定义这个接口库, 并提供了与C、Fortran和Java语言的绑定. 这个定义不包含任何专用于某个特别的制造商、操作系统或硬件的特性. 由于这个原因, MPI在并行计算界被广泛地接受.
国家高性能计算中心(合肥)
MPI的实现
建立在厂家专用的环境之上
IBM SP2的POE/MPL,
Intel Paragon的OSF/Nx
公共的MPI环境:
CHIMP Edinburg 大学
LAN(Local Area puter) Ohio超级计算中心
MPICH Argonne国家实验室与Mississippi州立大学
MPICH是MPI在各种机器上的可移植实现,可以安装在几乎所有的平台上:
PC
工作站
SMP
MPP
COW
1 消息传递库(Message-Passing Libraries)
国家高性能计算中心(合肥)
PVM(Parallel Virtual Machine) 简介
开发时间: 始于1989年
开发单位: 美国Tennessee大学、Oak Ridge国家实验室和Emory大学联合研制
特点: 具有较好的适应性、可扩展性、可移植性和易使用性等特点, 源代码可以免费获取, 现已被用户广泛采纳.
现状: 目前对它的研究和开发工作仍在各大学和研究机构进行. 尽管已经有越来越多的人开始使用MPI, 但PVM仍然是做并行处理最流行的软件之一. 随着它的不断流行, 已经被移植到PVP, SMP, MPP, 工作站和PC组成的机群系统.
1 消息传递库(Message-Passing Libraries)
国家高性能计算中心(合肥)
PVM和MPI间的主要差别:
(1)PVM是一个自包含的系统, 而MPI不是. MPI依赖于支持它的平台提供对进程的管理和I/O功能. 而PVM本身就包含这些功能.
(2) MPI对消息传递提供了更强大的支持.
(3) PVM不是一个标准, 这就意味着PVM可以更方便