欢迎来到天天文库
浏览记录
ID:39466326
大小:89.00 KB
页数:5页
时间:2019-07-04
《MPI和PVM关键特性比较》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MPI和PVM关键特性比较09006218孙鸿贤摘要在科学计算和其他要求苛刻计算能力的领域,大规模并行处理机(MPP)和其他分布式机群系统发挥了至关重要的作用。由于机群结构过于庞大,消息传递机制成为并行系统处理器通信的唯一选择。MessagePassingInterface(MPI)和ParallelVirtualMachine(PVM)两种API为这一机制提供了支持。本文从异构性支持,通信上下文,搜集创建进程所需资源信息的方式与容错技术四个方面对这两种解决方案做了初步比较,指出MPI比较是开发对动态性和容错能力要求不高的普通系统的高效工具。虽然MPI有成为消息传
2、递模型的事实标准的趋势,但目前而言,对于对动态性和容错性要求很高的系统,PVM仍然是最理想的选择。关键词MPIPVM异构性上下文资源信息容错能力简介PVM是由美国OakRidgeNationalLaboratory,UniversityofTennessee和EmoryUniversity合作开发的。它的核心是虚拟机概念。即从用户角度,由网络连接的一系列异构主机表现为一个统一的并行机。相对于性能方面的考虑,PVM的设计更加注重可移植性。这主要出于两个原因:(1)相对于节点处理机和局部存储的连接速度,网络的速度非常之慢,这本身就极大限制了系统可能达到的性能。(2)P
3、VM自始至终都在注重于节点的异构性,容错性,可扩展性。为在这些方面有满意的表现,不得不在性能上有所牺牲。然而,MPI标准是MPI论坛的产物。该论坛的参与者是一些高性能计算的专家,包括具体实现者,终端用户等。MPI标准的目的是要统一各厂商的消息传递接口,使得并行程序能够在不同厂商的系统之间不需更改地移植。MPI的设计目标之一就是高性能,但是据一些研究表明,MPI的性能并没有比PVM有较大的提高。MPI的主要特点有:(1)提供了丰富的点对点通信函数集。这极大减轻了程序员的负担。(2)对PU组间的通信,提供了大量的聚集函数的支持。(1)引入通信上下文及通信器(Commu
4、nicator)的概念,使得并行编程更加安全。(2)可以设定通信网拓扑结构。(3)提供派生数据类型和处理物理不连续数据的能力考虑到科学计算领域的实际需要,我们从异构性(heterogeneity)支持,通信上下文(Context),进程创建所需资源信息(DynamicResourceInformation)以及容错能力(FaultTolerance)四个角度对两者进行比较。异构性支持由于单一类型的节点机组成的集群有时候不适应问题的需要,为达到更高性能,必须依赖异构机器组成的系统。典型的,如著名的伯克利分布式计算平台(BerkeleyOpenInfrastructu
5、reforNetworkComputing),就是由成千上万从大型机到桌面机器组成的功能超强的计算网络。PVM的实现具体考虑了节点间的异构性,即PVM可以在不同结构节点组成的并行系统上流畅运行。比如一些节点是IBM的机器,另外一些是NEC的机器,他们体系结构约定不同(比如机器字长或大小端约定不同),PVM仍然可以通过给pvm_send/recv提供数据类型参数和pvm_pack/unpack函数参数来达到通信目的。长久以来人们对MPI异构性支持能力的认识不够准确。很多人认为,MPI编写的程序只是在同种规格节点的集群上可以无缝移植。比如,在IBM并行系统上运行的MP
6、I程序在NEC的系统上可以顺利运行。但是,这个程序在IBM和NEC节点的混合系统上无法执行。这一观念其实是错误的。MPI论坛给定的MPI设计目标之一就是鼓励实现异构系统。然而部分硬件制造商为了自己的商业利益考虑,其MPI实现只支持自己的产品。人们在使用他们的产品时,就形成了上述错误观念。其实MPI的很多实现,包括MPICH和LAM,是完全支持PVM式的异构系统的。通信上下文MPI最重要的贡献在于引入了通信器的概念。通信器可以被看作是context对一组进程的绑定。Context划分通信空间,使得一个context间发送的信息不可能被另一个context的进程所获得
7、。这使进程间点对点通信和进程组间通信更加安全。考虑下面的情形:两个完全相同的进程都在使用同一个库函数进行消息传递。用户代码和库选择用来标记消息的标签也是完全一样的。如果没有Context,那么信息接收的时序就是错的。这要求操作系统提供除了senderID,messagetag之外的第三个标签,用来区分库函数消息和用户消息。受MPI-1的启发,PVM3.4中也添加了上下文概念。这里有两个问题:第三个标签该如何产生?如何分发到各个处理单元?PVM和MPI采取了不尽相同的策略。本质上MPI的交互模型是静态的。它设置一次并行计算中所有进程所对应的通信器为MPI_COMM_
8、WORLD
此文档下载收益归作者所有