MPI集群通信技术浅析

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:rette
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:简要介绍了集群系统,指出其用于并行计算的工作原理,重点介绍MPI并行环境及其通信技术,并分析了MPI并行程序中的基本模式及其采用的通信技术。最后对构建MPI并行环境的集群系统进行了展望。
  关键词:集群;MPI;通信技术;并行计算
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)23-1010-02
  The Analysis of the MPI Communication Technology Based on Cluster
  CHEN Yan, HAO Li-rui
  (The Department of Computer Science and Technology,Guilin College of Aerospace Technology,Guilin 541004,China)
  Abstract:A brief introduction of the Cluster is presented in the paper,and how to make Parallel computing based on Cluseter is pointed out.The paper emphasizes the MPI(Message Passing Interface) and its communication technology,and analyses the base models and the communication technology in the MPI parallel programs. Finally a outlook for the Cluster of MPI parellel environment is provided.
  Key words:cluster;MPI;communication technology;parallel computing
  高性能并行计算技术由于具有巨大的数值计算和数据处理能力,在国内外受到高度的重视,它在科学研究、工程技术以及军事等方面的应用,已经取得巨大的成就。并行计算就是通过把一个大的计算问题分解成许多彼此独立且又相关的子问题,然后把它们散列到各个结点机上并行执行从而最终解决问题的一种方法[1]。
  从20世纪90年代以来,昂贵而特制的并行超级计算机逐渐向工作站网站转换。随着PC处理器性价比的大幅提高,以及网络通信技术的日益完善,PC机网络成为并行处理的理想工具,从而导致了低价商品化超级计算的出现。集群系统正式顺应了这一趋势,并逐渐成为高性能并行计算的主要硬件平台。由于计算机集群系统具有开放的结构,支持它的并行编程环境需要开放的和支持异构的系统。目前最流行的基于集群的并行编程环境有两种:PVM(Parallel Virtual Machine)和MPI(Message Passing Interface)。使用标准的通信协议-MPI,可以减少设计并行程序的复杂度,提高并行程序的可移植性,保证并行程序的执行性能,于是越来越多的人采用MPI作为集群并行开发环境。
  
  1 集群系统介绍
  
  集群系统是利用高速通用网络将一组高性能工作站或高档PC机,按某种结构连接起来,在并行程序设计以及可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高效并行处理的系统。它主要利用消息传递方式实现各主机之间的通信,由建立在一般操作系统之上的并行编程环境完成系统的资源管理及相互协作,同时也屏蔽工作站及网络的异构性。目前集群系统的并行编程环境是建立在Unix或Windows操作系统之上。
  集群系统包括下列组件:1)高性能的计算结点机(PC、工作站或SMP);2)具有较强网络功能的微内核操作系统;3)高效的网络/交换机(如千兆位以太网和Myrinet);4)网卡(NICs);5)快速传输协议和服务;6)中间件层,其中包括某些支持硬件,如数字存储通道、硬件分布共享存储器及SMP技术;应用,如系统管理工具和电子表格;运行系统,如软件分布共享存储器和并行文件系统;资源管理和调度软件等;7)并行程序设计环境与工具,如编译器、语言环境、并行虚拟机(PVM)和消息传递接口(MPI)等;8)应用,包括串行和并行应用程序。
  集群系统结构如图1所示,其中W表示工作站(可利用已构建的MPI并行环境网络中的任一台PC机作为工作站),PC1,PC2,…,PCn表示各计算服务端(即已构建的MPI并行环境网络中其他的PC机)。在发起整个任务前,服务端向名字服务器登记注册自己的IP地址作为服务端的名字。用户通过工作站发布任务首先从名字服务器获取已经登记的服务器,从而获取可用的服务器资源,并将用户的计算任务S分割成子任务S1,S2,…,Sp(1≤p≤n),然后分别将子任务的数据及其处理方法分发给各个可用的服务器端;服务器端在接收到子任务之后,进行数据处理,再将处理结果返回给工作站;工作站收集了所有的计算结果后进行整合,得到最终的计算结果。
  
  2 MPI简介
  
  MPI(Message Passing Interface)是消息传递并行程序设计的标准之一,是目前最主要的并行环境。它适用于基于分布内存的并行计算机系统的消息传递模型,具有移植性好、功能强大、效率高等多种特点,而且有多种不同的免费、高效、实用的实现版本,几乎所有的并行计算机厂商都提供对它的支持,这是其他并行环境无法比拟的[2,3]。MPI于1994年产生,由于它吸收了其他多种并行环境的优点,同时兼顾性能、功能、移植性等特点,在短短的几年内便迅速普及,成为消息传递并行环境的标准,其标准已有原来的MPI-1发展到目前的MPI-2。
  MPI-1标准规定了如下规范:1)MPI是一个库,它可以被Fortran 77和C调用,从语法上说,它遵守所有对库函数/过程的调用规则,与一般的函数/过程没有什么区别,从而保证遵循这些标准的MPI程序可以在任何平台上的可移植性;2)具体的MPI库实现由硬件供应商提供,从而开发出适合各供应商硬件的最优版本,MPI-2规范对MPI-1进行了如下的扩展:动态进程;单边通信;非阻塞群集通信模式和通信之间群集通信模式;对可扩展的I/O的支持,MPI-1只定义了对Fortran 77和C语言的绑定,MPI-2将语言的绑定扩展到Fortran 90和C++;对实时处理的支持;扩展了MPI-1的外部接口,以便使环境下具的开发更易于访问MPI对象[3]。
  
  3 MPI通信
  
  在集群环境下MPI并行程序设计时使用的几种主要通信模式:阻塞通信、非阻塞通信和组通信。其中阻塞通信和非阻塞通信都属于点对点通信。点对点通信指两个进程之间的通信,这两个进程可以属于相同或不同的进程组。
  阻塞通信中,MPI的标准发送及接收函数都是阻塞的。接收者在调用函数MPI_Recv后被阻塞,直至收到匹配的消息为止;但发送者的阻塞比较复杂。当发送者调用函数MPI_Send后被阻塞,在此期间,系统会先把发送者的发送缓冲区中的内容,拷贝到系统缓冲区中,由系统发送消息。发送者的操作不必等待发送完成,只要拷贝操作成功,发送者就可返回,甚至可重用存放发送缓冲区(不是系统缓冲区)。但是,如果系统缓冲区不足,或消息过长,令拷贝失败的时候,发送者将被阻塞到消息发送为止[4]。如图2所示。
  非阻塞通信主要用于实现计算与通信的重叠,从而提高整个程序的执行的效率,非阻塞通信还可实现一些特殊的控制功能,对于非阻塞通信,不必等到通信操作完全完成便可返回,该通信操作可以交给特定的通信硬件去完成,在该通信硬件完成该通信操作的同时,处理机可以同时进行计算操作,这样便实现了通信与计算的重叠。MPI的非阻塞通信操作分开始及完成两个阶段,发送者调用函数MPI_Isend或接收者调用函数MPI_Irecv后,可执行其它计算。在发送或接收操作完成前,发送者不应该更改发送缓冲区的内容;接收者不宜使用接收缓冲区的内容。发送者(接收者)需要检测发送(接收)操作是否完成。发送(接收)操作开始时,发送者(接收者)使用请求句柄(request handler),MPI通过检查请求来决定发送(接收)操作是否完成。发送者(接收者)调用函数MPI_Test后,会马上返回,根据返回值确定发送(接收)操作是否完成。若发送者(接收者)调用函数MPI_Wait,则发送者(接收者)会被阻塞直到发送(接收)操作完成才能返回,如图3所示。
  
  组通信一般实现三个功能:通信、同步与计算。通信功能主要完成组内数据的传输;而同步功能实现组内所有进程在特定的地点在执行速度上取得一致;计算功能要对给定的数据完成一定的操作。MPI组通信和点到点通信的一个重要区别,就在于它需要一个特定组内的所有进程同时参加通信,而不是像点到点通信那样只涉及到发送方和接收方两个进程。组通信在各个不同进程的调用形式完全相同,而不像点到点通信那样在形式上就有发送和接收的区别。
  
  4 MPI并行程序设计中通信技术分析
  
  MPI并行计算的流程如下:在调用MPI例程之前,各个进程都应该执行MPI_INIT,接着调用MPI_ COMM_SIZE获取缺省组(group)的大小,调用MPI_COMM_RANK获取调用进程在缺省组中的逻辑编号。然后,进程可以根据需要,向其它节点发送消息或接收其它节点的消息,经常调用的函数是MPI_Send和MPI_ Recv 。最后,当不需要调用任何MPI例程后,调用MPI_Finalize消除MPI环境,进程此时可以结束,也可以继续执行与MPI无关的语句。
  对等模式和主从模式是MPI并行程序的两种最基本的设计模式。大部分的MPI程序都是这两种模式之一或二者的组合。掌握了这两种模式,就掌握了并行程序设计的主线。
  所谓对等模式,就是说MPI程序的各个进程的功能、地位相同或相近,MPI程序的代码也应该是相近的,所不同的只是处理的对象和操作的数据,比如MPI程序让各个进程同时对一个数组的不同部分并行赋初值,各个进程间的关系就是典型的对等关系。
  所谓主从模式,就是MPI程序的各个进程所起的作用和地位并不相同,一个或者一些进程完成一类任务,而另外的进程完成其它的任务,这些功能或者地位不同的进程所对应的代码也有较大的差别。主从模式下,由一组进程共同完成同一个计算任务,其中一个为主进程,负责其它从进程的生成、初始化,并分配负载给从进程。从进程完成实际计算后,将计算结果传动给主进程,最后由主进程收集计算结果并输出。主从式属于一种星型计算模式。
  在这两种模式中,为了增强程序的运行效率,一般采用非阻塞通信,实现计算与通信的重叠,也可以采用阻塞通信与非阻塞通信的结合。一般有以下三种组合方式:1)发送者及接收者同时使用阻塞通信,但这种方式容易出现死锁;2)发送者用非阻塞通信,接收者用阻塞通信,要求在更改发送者的发送缓冲区的内容前,需要肯定发送操作已经完成;3)发送者及接收者都用非阻塞通信,要求发送者必须肯定发送操作完成才可更改发送缓冲区的内容,而接收者必须肯定接收操作完成才可使用接收缓冲区的内容。另外MPI还提供了集体通信操作函数完成一组相关进程数据处理和通信操作,支持广播、分散、收集、多收集、多对多等进程组内多进程数据通信操作。合理的利用这些集体通信操作函数能有效的提高程序运行的效率,降低程序的复杂度,十分有利于科学计算[5]。
  
  5 发展及展望
  
  随着网络技术的发展和对集群系统和MPI的深入研究,特别是高效通信机制的开发,集群系统的通信性能将得到更大的改善,MPI通信技术更加成熟,MPI编程环境和工具也将逐步完善,将很大程度上提高大规模并行计算的效率,从而有望在集群系统上解决更多的应用问题,使并行处理系统的应用领域更加广泛。
  
  参考文献:
  [1] William G, Luck E, Skjellum A.Using MPI:Portable Parallel Programming with the Message Passing Interface[M].2nd Edition .MIT Press,Cambridge,MA,1999.
  [2] 罗省贤,何大可.基于MPI的网络并行计算环境及应用[M].成都:西南交通大学出版社,2001:104-197.
  [3] 黄旭东,林鹭.基于Linux 集群的并行环境简单架设[J].计算机应用研究,2004,(11):254-256.
  [4] Snir M, Otto S,Huss-Lederman S,et al.MPI,the Complete Reference volume 1,The MPI Core. London,England.The MPI Core. London, England.The MIT Press,1999.
  [5] 王萃寒,赵晨.分布式并行计算环境:MPI[J].计算机科学,2003,30(1):25-26.
其他文献
摘要:无线自组织网络由不需要任何基础设施的一组具有动态组网能力的节点组成,因此网络可以通过节点路由发现机制转发分组,并进行路由维护。这种网络适应了军事和商用中对网络和设备移动性的要求,而引起了人们的关注,并在20世纪90年代以后获得了广泛的研究和发展。文章对DSR(动态源路由协议)的路由发现过程进行了优化,并采用OPNET仿真软件对基于DSR协议的Ad Hoc网络的路由开销和时延等关键参数进行了仿
期刊
摘要:函数的应用是Excel2003的精华部分,针对大学生计算机文化基础教学过程中经常遇到的情况,以大部分教材中没有讲述的RANK函数和SUMIF函数为例,详细分析了Excel2003中函数的应用过程及需要引起注意的问题,具有重要的实际应用价值。  关键词:Excel2003 ;函数 ;应用  中图分类号:TP317文献标识码:A文章编号:1009-3044(2008)23-999-03  Det
期刊
摘要:详细介绍了IPv4IPv6转换网关的设计与实现过程;首先介绍转换网关的工作流程,其次介绍地址转换和协议转换设计,最后分析了DNS ALG设计。  关键词:IPv6;IPv4;转换网关  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-883-02  Design and Implementation of IPv4/IPv6 Translation Gate
期刊
摘要:将IEEE 802.11b技术应用于工控网络,必须对无线网关进行有效监控。文章介绍了无线网关接入工业以太网的原理和的功能,对SNMP(SimpleNetworkManagementProtocol)管理模型及协议体系结构进行了分析,详细阐述了SNMP在嵌入式无线网关系统上的实现过程,并给出了测试结果。  关键词:嵌入式Linux;SNMP;无线网关;管理模型  中图分类号:TP393文献标识
期刊
摘要:XML的应用变得日益广泛,XML数据库技术也得到了迅速发展,当越来越多的数据资料以XML为标准格式进行存储时,却由于其格式的不同导致了传统的数据库及查询语法无法适用。分析了一种全新的XML查询语言XQuery,并对FLWOR表达式进行了重要阐述。   关键词:XML查询;XQuery;表达式  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)23-865-02  
期刊
摘要:文章整合JOSSO1.6+Struts2.0.11.1+Spring2.5.2+Hibernate3.2.6GA实现了一个具有较强扩展性、与其他系统的低耦合性、跨平台性以及较高的安全性等优点的开放式的Web单点登录平台。借助于该平台,只需对现有Web应用进行简单配置,就能实现多个Web应用的单点登录,重点介绍JOSSO的原理和单点登录的实现过程。  关键词:JOSSO;Web;单点登录;St
期刊
摘要:由于互联网所具有的广泛性和开放性,决定了互联网不可避免地存在着信息安全隐,进行身份认证就是必须的安全措施。本论文比较分析了常见的身份认证的方式的优缺点,并在此基础上讨论了USB Key认证方式的原理、特点,以及PKI体系的认证过程,重点上从软件设计和硬件设计两个角度完成了基于PKI体系下的USB Key认证客户端,对于提高身份认证技术的安全性具有一定的借鉴意义。  关键词:身份认证;UEB
期刊
摘要:网站压力测试是网站应用程序性能测试必不可少的一项工作。现以一个用ASP.NET 开发的校园网站为例,详细介绍Web网站的压力测试参数,及如何使用WAST(Microsoft Web Application Stress Tool) 对Web网站性能进行压力测试。  关键词:Web 网站;压力测试;WAST  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)23-
期刊
摘要:税务部门,承担着地方财政收入的征收任务,社会经济日新月异的发展对税务工作信息化的要求也不断提高。比较了传统人工大厅申报纳税以及网上申报与现在开发的采用B/S结构的与纳税人交互系统,详细分析并探讨了使用J2EE技术来实现与纳税人各种交互的基本原理、方法和机制,同时,通过横向比较几种开发B/S结构系统的技术,突出了采用J2EE开发与纳税人交互系统的优点。并使用数据流驱动整个系统的运作,分层设计底
期刊
摘要:基于VTK开发包提出了一种交互式获取三维CT数据任意切片的方法。首先由CT图像序列构造出三维体数据,并实现了体数据切片的显示,然后利用VTK的交互功能实现体数据任意切片信息的获取和显示。结果表明该方法有助于医生从不同截面对同一组织进行观察和诊治。  关键词:三维CT数据;切片;交互式控制;VTK  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-1012-0
期刊