第32卷场互3.2第11期№ll计算机工程ComputerEngineering文章编号t1000__3428(2006)11—0242-_03文献标识码,A2006年6月June2006中田分类号tTP316.8・工程应用技术与实现・Beowulf并行计算系统的研究与实现祝永志1,王国仁2(1.曲阜师范大学计算机科学学院,日照276826;2.东北大学信息与工程学院,沈阳110004)摘要:由高档微机或RIsc工作站通过高速局域网连接而成的集群系统的实现,使高性能计算机从研究与应用领域走进普通领域。该文介绍了如何在Linux操作系统下基于分布式存储结构构造一个由普通微机组成的Beowulf并行计算系统的方法。通过编制的并行计算算法对该Beowulf系统进行了并行效率的实际测试,测试结果表明该Beowulf系统具有很高的并行计算效率和并行加速比。关健词:消息传递接口;Beowulf;并行计算;LinuxStudyandImplementationofBeowulfParaUelComputingSystemZHUYbngzhil,WANGGuoren。(1.College2.FacultyofofComputerScience,QufuNormalUniversity,Rizhao276826;andInfb咖ationScienceEngineering,NortheastemUniversity,Shenyangthroughlocalintemet’sto1100()4)lAbstractlclustersystem,realizedbyseniorandcomputerorRlsCworkstationspaperaconnection,hasputt|leh培hcharacteristicunderLinuxcomputersfromresearchpractiseonareatothecommonarea.ThisintroduceshowestablishBeowulfclustersystemincommonPCwhichisbasedBeowulfdistributedmemorystmcture.Testsusingsystemcouldrunparallelcomputingalgorimmmeasurethepamllelefficiencyofthissystem.ResultsshowthatthisBeowulfhighparaUelcomputingemciencyandparaUelspeedup.1Keywords】Messagepassinginterface;Beowulf;Parallelcomputing;Linux1概述随着人类科学技术的发展进步,高科技领域的计算越来越复杂,高性能并行计算的规模也呈指数级递增。同时,人们对于计算的需求空前提高,它的应用朝着如下几点趋势发展:地理上高度分散,数据量庞大,信息流化,数据通信和管理的处理工作量甚至超过了传统的数据计算处理的工作量等。高性能并行计算机大致可分为4类:(1)多向量处理系统;(2)基于共享存储的多处理机;(3)基于分布存储的大规模并行处理系统;(4)基于RIsc工作站或高档微机通过高速互连网络连接而成的集群计算机系统。第(1)和第(3)类系统由于研制费用及成本较高等因素,其市场受到一定的。第(2)类系统由于受到结构,处理器数目不可能做得很大。集群计算机由于具有投资风险小、可扩展性好、可继承现有软硬件资源和开发周期短、容易编程等突出特点,目前已很快成为并行处理的热点和主流,在国内外受到普遍重视。近年来,随着微机性价比的提高和以太网等局域网技术的成熟和硬件成本的降低,以及消息传递标准和相应软件的发展,为用一组微机建立并行计算集群(常称为Beowulf系统)辅平了道路。本文将介绍笔者所构造的一个Beowulf并行计算系统,该系统由16台普通微机组成,它们由100Mbps高速交换式以太网相连接,每台微机上运行RedhatLinux2Beowulf集群系统倚介集群,是由一组的计算机系统构建的一个松耦合的多处理机系统,系统中各进程借助网络实现通信、共享内存传递信息,从而实现分布式并行计算。一组廉价的微机协同工作可以达到超级计算机的性能。目前,集群已经成为各高性能计算机厂商的研究热点。20世纪90年代末期,Linux操作系统不断走向成熟,它的健壮性不断增强,并且提供了GNu软件和标准化的PVM、MPI消息传递机制,最重要的是Linux在普通Pc机上提供了对高性能网络的支持,这样就大大推动了基于Linux的集群系统的发展。1994年,DonaldBecker等人构建了一台由以太网连接的拥有16个Dx4处理器的集群。他们称此集群计算机为Beowulf。Beowulf系统将一些松散的计算资源——普通的Pc机做成一个集群,实现以前只能由并行计算机完成的高性能计算。Beowulf系统所具有的价格优势是传统的并行计算机所无法比拟的。通常在BeowuJf集群上运行的软件是“nux操作系统、并行虚拟机(ParallelVirtualMachine,PVM),和消息传递接口(MessagePassingInterface,MPI)。一般由服务结点来控制整个集群。服务结点是集群的控制台和对外的网关。在规模较大的集群中可以有多个服务结点,如专门用集群中Beowulf的一个结点作为控制台或统计整个集群的运行状态。通常,除服务结点外,集群中的其他结点都是哑成员,即Beowulf基金项目:国家自然科学基金资助项目(60072014)作者倚介:祝永志(1964一),男,硕士、副教授,主研方向:网络与分布式系统;王国仁,博导、教授收藕日期:2005—11-2】E—mail:rizhaozyz@126.com8.o操作系统,采用MPI的MPIcH最新版本:MPIcH1.2.5.2作为并行计算的支撑环境。最后,利用MPI的并行函数库,用Vc++6.0编写了一个以高斯列主元素消去法求解线性方程组的并行程序,实际测试了该Beowulf系统的并行计算加速比及其并行效率。万方数据一242~它们不与外界交互。这些成员结点由服务结点来管理,执行服务结点分配的任务。Beowulf集群中的成员结点以及内部连接是集群专用的。从这一点来看,Beowulf更像是一台完整的机器,而不是一个由许多计算机组成的松散的群体。3Beowulf集群系统的硬件和软件构造目前在集群环境中应用较多的是消息传递模型。在消息传递模型中,各个并行执行的部分之间通过传递消息来交换信息、协调步伐、控制执行。消息传递通常是面向分布式内存的,但也适用于共享内存的并行机。消息传递为编程者提供了更灵活的控制手段和表达并行的方法,灵活性和控制手段的多样化是消息传递并行程序能提供高执行效率的重要原因。消息传递模型一方面为编程者提供了灵活性,另一方面它也将各个并行执行部分之间复杂的信息交换和协制的任务交给了编程者,这在一定程度上增加了编程者的负担,这也是消息传递编程模型编程级别低的主要原因。在当前所有的消息传递软件中,最流行的就是并行虚拟机PVM和消息传递接口MPI。MPI是一个显示的消息传递模式,任务通过发送消息进行相互通信。其最大的优点是高性能,点到点通信函数模型、可操作数据类型都比PVM丰富,群组通信的函数库也更大,但是不如PVM灵活。MPI和PVM都提供了一套函数集,且各有所专。它们能运行在所有的并行平台上,包括PVP、sMP、MPP(massivelyparallelprocessor)、工作站和Pc组成的集群系统,并已经在windows平台上实现,提供了对c、Fortran和Java语言的绑定。为满足科研和研究生教学的需要,构建了一套Beowulf并行计算系统,该系统采用由微机及高速以太网络组成的分布式、同构、对等集群结构形式,由16台微机组成。以太网结构简单、构造容易,可以低廉的价格获取较高的局域网数据传输性能,因而成为多数Beowulf并行计算系统的选择。Beowulf并行计算系统的微机操作系统多为uniX、Linux、windowsNT/2000/xP。它们都具有很强网络支持功能和可靠性,其中Linux作为著名的开放操作系统,可以在Internet网上免费下载,被现有大多数Beowulf系统作为操作系统。安装好Linux后,对“nux进行网络配置。在所有的结点微机上安装TcP/IP网络协议,并将所有的结点微机设置为同一工作组,结点微机定义不同的网络名以便区分。再将结点微机上计划安装MPI软件和存储并行程序的硬盘分区或将文件夹设置为共享文档。3.1MPl环境下的开发工具MPI是目前一种比较著名的应用于并行环境的消息传递标准。MPI有多种版本,包括MPloverInfiniBand、LAM、运行在TcP/IP上的MPIcH1.2.5.2。其中,MPIoverInfiniBand吞吐量最高、延迟最小,LAM功能最丰富,而MPIcH具有更好的兼容性。MPIcH是MPll.2标准的一个完全实现,也是目前应用最广的一种并行及分布式环境。MPIcH除包含MPI函数库之外,还包含了一套程序设计以及运行环境。MPIcH的第一个版本提供了非常合理的性能及可移植性。从1993年开始,MPIcH被不断地改进以提供增强的性能和可移植性。2003年1月发布了MPIcH1.2.5版本,发布于2003年9月的MPIcH1.2.5.2版本可从fcp.mcs.anl.gov免费下载。MPICH的主要特点如下:(1)与MPll.2标准完全一致;(2)支持MPMD(multipleprogrammultipledata)编程和异构集群;万方数据(3)对MPI-l中函数,MPI一2标准中实现了c++绑定;(4)支持Fortran77和Fortran90绑定,包括mpifh和MPI模块;(5)支持windowsNT平台,并且开放源代码;(6)支持的环境非常广泛,包括sMP集群和大规模并行计算机;(7)包含了并行程序设计环境组件,包括并行性能可视化工具(upshot和jumpshot)及正确性和性能测试工具等。3.2系统组成(1)每台微机的硬件配置为:1)主板:华硕A7V8x;2)处理器:AMDAthron2000+;3)内存:1GB;4)硬盘:40GB。(2)网络设备:1)交换机:16口100Mb/s;2)网卡:100Mbps自适应网卡×16;.3)超五类双绞网络线缆、接头:适量。(3)系统和软件配置:每台微机上运行RedhatLinux8.0操作系统,采用MPIcH.NT1.2.5.2作为并行计算的支撑环境。4性能测试与分析加速比是并行计算的一个重要评测性能的概念。它指的是并行程序相比相同算法的串行程序所获得的性能提高的倍数。根据Amdahl定律,加速比:sp:兰up—W5+Wp,P(1)~1,其中ws是应用程序中的串行分量,wp是可并行化部分,P是并行系统中处理器数。可见对一定的计算负载,可将其分布在多个处理器上,通过增加处理器数以加快执行速度,从而达到了加速的目的。但当P一>。。时,s。=l/,(其中f_ws/w,w是计算负载)。这意味着随着处理器数目的无限增大,并行系统所能达到的加速之上限为1/f。实际上并行加速不仅受限于程序的串行分量,而且也受并行程序运行时的额外开销影响。衡量并行系统性能另一个技术指标——并行效率。P个结点的并行效率为:Ep_詈(2)理想状态下,加速比接近于P,并行效率接近于100%。本文的测试题目之一是,以高斯列主元素消去法求解线性方程组。算法思路是,首先寻求系数矩阵(含等号右侧列)第一列中绝对值最大的数,称为主元,选取该行作为参照行,将其运行的第一个元素消为零,然后对剩余行依次重复该操作,直到系数矩阵通过换行变为一个上三角矩阵。该过程谓之消元,消元之后就可以很方便地解出未知数的值。并行程序设计方法:方法1:由一个节点负责分发计算任务给各个节点运行,一个任务的工作是消去矩阵的一行。方法2:将计算按节点个数划分任务,每个任务负责消去矩阵的一块,而不仅仅是一行。两个计算节点采用方法2的高斯程序在不同问题规模下的cPu利用率如表l。裹lcPu利用事与问鼍规模比照衰问题规模105010020010001500cPu利用率(%)544842356269从表1看出,随着问题规模的增大cPu利用率先递减后递增,这是因为当问题规模较小时,程序的通信量并不大,一243—与用户时间相比,系统时间占了较大比例。当问题规模增大后,用户需要的计算量不断增大,用户时间上升的较快,而系统时间较慢。另一方面,只有当计算量超出通信量时,并行程序才能发挥它的作用,并且,计算通信量越大,并行程序的性能越高,并行效果越好。问题规模较小而采用并行方法求解有时会适得其反,尤其在分布环境下。本文的测试题目之二是,以3.2节所述的Beowulf系统对2000阶的线性方程组求解问题进行实测。得出的结果印证了上述结论的正确,见图l、图2。由图1还可以看出理想状态加速比接近P,由图2看出理想并行效率接近loo%。5结束语近年来,随着微机的性能价格比的提高以及以太网等局域网技术的成熟与硬件价格的下降,用一组微机建立并行计算集群(Beowulf系统)得到了广泛应用。由于Beowulf系统不但可以获得较高的计算能力,同时具有极为优越的性价比,根据国内外经验,Beowulf系统的性价比是传统超级计算机的3—10倍。构建实用、高效的基于Linux和MPI的Beowulf并行计算系统和相关资料较少,本文所构建的系统经过实际测试取得了很高的并行效率且有很高的性能价格比,为Beowulf系统的成功创建提供了很好的例证和经验。参考文献lKorchM,RauberT.EvaluationofIrregularonTaskP001sfortheImplementationofParallelAlgorithms[C].ProceedingsoftheInternationalConferenceParallelPmcessingWorkshops,2002.-J——理想并行效率圈1Beowulf系统的加速比舅试结果2陈星,黄卡玛.构建基于windows和MPI的Beowulf并行计算j——、、飞/实测并行嫂率_|系统[J】.计算机工程与应用,2003,39(11):59—61.3StevensR.UnixNetworkSocketsandProgmmming(Volume1):NetworkingAPIsXTI(SecondEdition)[M].Prentice-Hall,Inc.,1998.4李贵明,俞国扬,罗家融.基于Linux的Beowulf集群的实现fJ】.计算机工程,2003:29(11).5都志辉.高性能计算并行编程技术[M].MPI并行程序设计.北京:+L¨七L■{士纠士士叫_-r(处理清华大学出版社,2001.6王韬,李晓明.sMPcluster:如何开发两级并行[J】计算机工程与科学,2002,24(4).(上接第241页)PF-Rcs采用两级仲裁级别,首先是以角色为对象静态分配的仲裁等级,是在用户注册时指派的;其次是对同一角色的用户成员仲裁等级,采用动态循环方式进行分配,用户仲裁级别初始值是由访问w曲时的顺序决定的。2.3工作模式(1)阻断模式:断开PF—Rcs与本地系统的控制连接,终l业务处理模型,增强了客户端的运算功能,在多层的数据服务支持下,构建了可扩展的、安全的、交互性好的分布式应用,为大型科学实验装置部署开放的远程控制应用提出了一种可行的解决方案。参考文献CerfV止PF—Rcs远程控制功能。此时,所有访问PF—Rcs的用户被强制进入Browse状态。(2)连接模式:这种模式定义松耦合控制连接方式,实现PF—Rcs与本地控制系统进行数据交换。PF—Rcs所提交的远程控制方案,经过仲裁后的最终控制方案提交到本地控制系统,经过该系统的校验、纠错处理,以及0perator(实验运行组)的分析后,再投入到装置控制逻辑单元,该模式具有数据安全性好、可靠性高的控制特点。(3)自动模式:PF—Rcs无须与本地控制系统进行数据交换,仲裁后的最终控制方案直接投送到装置控制逻辑单元。这种模式自动化程度高,运行速度快,但是可能存在潜在的数据安全问题,如果网络传输中出现数据错误,就没有机会进行数据的校验、纠错,会造成实验控制的失败。接口有效地组织和维护PF-Rcs的运行,通过构建有关管理机制,大大地增强了远程控制的安全性和可靠性。76432logiesGNationalCollaboratories:ApplyingforScientificInfomlationTechno-D.C.:NationalResearch[M].Washington,AcademyPress,1993.LuoJR.PoloidalFieldControlSystemfortheHT-7USuperconducting4f51:1445一1455.Tbkamak[J].P1asmaScienceand’rechnology,2002,Schmidtv'HowJ.RemotePanicipationtheT色chnicalInfrastructureforJETFacilitiesUnderEFDA[J].FusionEngineeringandDesign,20叭,57(2):1039一1044.CasperTA,JongRA,MeyerWH,eta1.SupponandDeVelopmentEngineeringforRemoteCollaborationsinandFusionResearch[J】.FusionDes远n,2000,48(1):23l一237.5OomensAAM.TheTECRemote【J】.FusionTENGEngineeringcontrolRoomPr硝ectatTExTORandDesign,1999,43(3):357-361.BasedonFei.RemoteContmlSystemIntemet[J].ComputerIntegratedLuoManufacturingSystems,2004,lO(2).L,WangDataHPFJR,ZhuZ,eta1.’rbwardsSteady—stateoperationalControlSystemsofthe3结论通过托管技术实现的计算逻辑,改变了传统的B/s结构DesignformeandHT-7U【J].NuclearFusion,2003,43f9):862-869.一244一万方数据