下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MPI和PVM关键特性比较09006218孙鸿贤摘要在科学计算和其他要求苛刻计算能力的领域,大规模并行处理机(MPP )和其他分布式机 群系统发挥了至关重要的作用。由于机群结构过于庞大,消息传递机制成为并行系统处理器 通信的唯一选择。Message Passing Interface(MPI和 Parallel Virtual Machine(PVM)两种 API 为 这一机制提供了支持。本文从异构性支持,通信上下文,搜集创建进程所需资源信息的方式 与容错技术四个方面对这两种解决方案做了初步比较,指出MPI比较是开发对动态性和容 错能力要求不高的普通系统的高效工具。虽然MPI有成为消息传递模型
2、的事实标准的趋势, 但目前而言,对于对动态性和容错性要求很高的系统,PVM仍然是最理想的选择。关键词MPI PVM异构性上下文资源信息容错能力简介PVM 是由美国 Oak Ridge National Laboratory ,University of Tennessee 和 Emory University 合作开发的。它的核心是虚拟机概念。即从用户角度,由网络连接的一系列异构主机表现为 一个统一的并行机。相对于性能方面的考虑,PVM的设计更加注重可移植性。这主要出于 两个原因:相对于节点处理机和局部存储的连接速度,网络的速度非常之慢,这本身就极大限 制了系统可能达到的性能。PVM自始至终都
3、在注重于节点的异构性,容错性,可扩展性。为在这些方面有满意 的表现,不得不在性能上有所牺牲。然而,MPI标准是MPI论坛的产物。该论坛的参与者是一些高性能计算的专家,包括具 体实现者,终端用户等MPI标准的目的是要统一各厂商的消息传递接口,使得并行程序能 够在不同厂商的系统之间不需更改地移植。MPI的设计目标之一就是高性能,但是据一些研 究表明,MPI的性能并没有比PVM有较大的提高。MPI的主要特点有:提供了丰富的点对点通信函数集。这极大减轻了程序员的负担。对PU组间的通信,提供了大量的聚集函数的支持。引入通信上下文及通信器(Communicator)的概念,使得并行编程更加安全。可以设定通
4、信网拓扑结构。提供派生数据类型和处理物理不连续数据的能力考虑到科学计算领域的实际需要,我们从异构tt(heterogeneity)支持,通信上下文 (Context),进程创建所需资源信息(Dynamic Resource Information)以及容错能力(Fault Tolerance)四个角度对两者进行比较。异构性支持由于单一类型的节点机组成的集群有时候不适应问题的需要,为达到更高性能,必须依 赖异构机器组成的系统。典型的,如著名的伯克利分布式计算平台(Berkeley Open Infrastructure for Network Computing),就是由成千上万从大型机到桌面机
5、器组成的功能超 强的计算网络。PVM的实现具体考虑了节点间的异构性,即PVM可以在不同结构节点组成的并行系统 上流畅运行。比如一些节点是IBM的机器,另外一些是NEC的机器,他们体系结构约定不 同(比如机器字长或大小端约定不同),PVM仍然可以通过给pvm_send/recv提供数据类型参 数和pvm_pack/unpack函数参数来达到通信目的。长久以来人们对MPI异构性支持能力的认识不够准确。很多人认为,MPI编写的程序只 是在同种规格节点的集群上可以无缝移植。比如,在IBM并行系统上运行的MPI程序在NEC 的系统上可以顺利运行。但是,这个程序在IBM和NEC节点的混合系统上无法执行。这
6、一 观念其实是错误的。MPI论坛给定的MPI设计目标之一就是鼓励实现异构系统。然而部分硬 件制造商为了自己的商业利益考虑,其MPI实现只支持自己的产品。人们在使用他们的产 品时,就形成了上述错误观念。其实MPI的很多实现,包括MPICH和LAM,是完全支持PVM 式的异构系统的。通信上下文MPI最重要的贡献在于引入了通信器的概念。通信器可以被看作是context对一组进程 的绑定。Context划分通信空间,使得一个context间发送的信息不可能被另一个context的 进程所获得。这使进程间点对点通信和进程组间通信更加安全。考虑下面的情形两个完全相同的进程都在使用同一个库函数进行消息传递。
7、用户代码和库选择用来标记 消息的标签也是完全一样的。如果没有Context,那么信息接收的时序就是错的。这要求操 作系统提供除了 senderlD, message tag之外的第三个标签,用来区分库函数消息和用户消息。受MPI-1的启发,PVM3.4中也添加了上下文概念。这里有两个问题:第三个标签该如何 产生?如何分发到各个处理单元? PVM和MPI采取了不尽相同的策略。本质上MPI的交互模型是静态的。它设置一次并行计算中所有进程所对应的通信器为 MPI_COMM_WORLD,并且假定该通信器中进程总数n不变。MPI程序中进程标号固定,为 0n-1。程序的推进过程中需要不断地由现有的cont
8、ext派生出新的context。这一过程被设 置为所有进程的Barrier Synchronization。这样做有几大特点:不需要单独的服务器来分配context,只需要各个进程间的互斥同步就可实现只要一个或多个进程终止,那么通信中的整个上下文状态都将失效派生过程通过一个函数调用就可实现但是由于MPI没有系统观念,不同进程组间的通信很有可能使用相同的上下文tag。MPI 得架构下,为每个进程组都提供不同的上下文难度实在太大MPI由此提出组内通信器(inter communicator)概念,使不同进程组可以安全的使用相同的上下文。MPI的上下文对程序员 透明,由其在操作中的作用来定义。对MP
9、I来说,提供全局范围内不同的上下文会损伤可 扩展性。PVM系统是一个统一的虚拟机器,在各个节点机上驻留了一系列后台程序(daemon), 可以统一完成操作。所以PVM系统很容易实现全局上完全不同的上下文,这样,就不需要 引入繁琐的inter-communicator。而且系统将上下文对应成一个用户可见的整数(context id)。 因此,PVM的上下文模型更为简单和一般。这种方式的主要优点是新产生的进程可以使用已存在的context和另一程序组进行通信。当整个大型机的程序出错时,这对错误处理有很 大作用。但是PVM的这种做法很影响程序的模块化和可扩展性。考虑两个并行程序,它们希望 能相互通信
10、。PVM方式要求这两个进程在同一个虚拟机上。假若把两个PVM系统强行合并 到一起,虽然产生的context id在各自系统内是完全不同的,但是两个系统间完全可以产生 相同的context id。这也说明了 PVM系统不可合并,缺乏可扩展性。PVM系统还会遇到的一 个问题是用户强行指定context id,这也会造成无穷无尽的潜在问题。而MPI系统context 表示对程序员不可见,通过牺牲编程灵活性保证了可扩展性和实现的模块化和封装性能。获取资源信息在并行机中,在那个节点创建新的进程取决于当前机群的资源信息。PVM和MPI收集 和处理这些信息的方式是不同的。PVM系统提供了一个分布式操作系统,
11、通过pvm_reg_tasker 一类函数,便于和资源信 息系统交互。而MPI根本不存在Distributed OS的概念,它的方法是通过MPI对象MPI_Info 与任何提供Distributed OS功能的系统交换资源信息。对PVM和MPI方式的不同系统,如何与给定配置的系统,如运行AIX 5L OS的IBM刀片 服务器进行交互呢? PVM机群的策略是通过两个系统都支持的功能子集来运作。而MPI系 统则通过具体提供一个与资源系统交换信息的接口来达到目的。这具体体现为 MPI_COMM_Spawn 函数的 info_for_resource_manager参数。作为一个虚拟机系统,PVM机群
12、可以通过pvm_config来动态配置系统资源。但是在极 大规模,动态性非常强的系统(考虑BONIC)中,这可能带来问题。比如用户程序先用 pvm_config获取资源信息,处理后发出pvm_spawn命令创建子进程,但是在这两个操作之 间恰好有另一用户程序执行了 pvm_delhost操作,这就使系统环境发生变化,甚至创建子进 程失败。这非常类似于OS中的WAR竞争情况,但却无法通过锁机制加以解决。MPI系统采 用聚合操作的方式解决这类问题,使产生进程和获取资源信息不可中断地被完成,这就避免 了竞争条件。容错能力在大规模科学计算中,系统的容错能力是至关重要的。想像一下一个运行了一周的数值 仿
13、真程序在最后一刻因为某个不重要的进程的失败而突然终止,前功尽弃是多么可怕。更严 重的是,一个小错误可能经过很长时间之后才使得任务终止,而期间可能产生了很多不可用 的结果,但是我们确无从区分出它们,这样我们已做的工作就毫无意义了。PVM系统把机群整体看做一台虚拟机,正在运行的任务在机器状态变化或任务终止时 会在机器上登记特殊的事件信息。想要接受消息的进程将会受到这一信息,对出现的意外情 况作出相应处理。事实上这一机制经常被专门用来进行资源配置,平衡计算负载,启用新资 源。发送这一类消息的时序需要特殊考虑。比如,机器退出机群的消息发出后需要立即收回; 然而新节点加入机群后,为了避免浪费资源,不能将
14、add_new_node消息悬挂太长时间,这 时可取的方法可能是对其他节点逐一通告(polling)o而MPI系统的容错能力相对而言非常差,其原因是MPI-1模型本质上是静态的,全局通 信器MPI_COMM_WORLD的SIZE不变,进程永远驻留。很根本的一点是,由于通信上下文 的改变是由不同进程的同步来实现的,某个进程的突然终止或出错会使得系统通信环境进入 一个没有意义的状态。然而进入这一混乱状态以后计算过程或许还会进行,产生大量无用结 果,这是对资源的极大浪费。由上面的比较可以看出,PVM适合于动态性和容错能力需求很强的场合,但模块化程 度不高,抽象层次低,工具较少。而MPI API工具函数较多,适合于开发一般的并行系统。 PVM从单一系统的角度理解通信,MPI从进程交互角度去给消息传递建模。MPI的动态特性 在MPI-2中已经有所体现,FT-MPI(Fault-Tolerant MPI)是一个重要的发展方向。参考文献:Sourcebook of Parallel Computation, Jack Dongarra, Ian Foster et al. Elsevier Science, 2003Goals Guiding Design, William Gro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 走进小学活动方案样本(3篇)
- 二零二五年度二手房交易税费计算合同样本3篇
- 二零二五年度办公大楼智能化系统运维合同2篇
- 2025年度涂料涂料工程招标代理服务合同范本3篇
- 2025年三年级上学期英语教师工作总结范文(2篇)
- 煤矿综掘综合防尘管理制度(3篇)
- 自学书法系统课程设计
- 轮形课程设计
- 二零二五年度个人住房装修贷款保证合同3篇
- 2025年高一班级工作计划(二篇)
- 东风集团新能源汽车培训
- 2024-2030年中国广电技术行业现状分析及未来发展趋势预测报告
- 钢构楼板合同范例
- 造影剂过敏的护理
- 苏教版六年级上册分数四则混合运算100题带答案
- 潜水员潜水作业安全2024
- 以案促改心得体会
- 2024年公文写作基础知识竞赛试题库及答案(共130题)
- 2023-2024学年浙江省丽水市莲都区教科版三年级上册期末考试科学试卷
- 失禁性皮炎病例护理查房课件
- 期末复习试题 (试卷)-2024-2025学年四年级上册数学人教版
评论
0/150
提交评论