




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第22卷第10期计算机应用与软件 Vol.22,No.10 2005年10月Computer Applications and Software Oct. 2005基于Scilab的分布式并行计算方法的研究张志立1,2张冬1齐德昱11(华南理工大学计算机科学与工程学院 广东 广州 5106402(许昌学院网络中心 河南 许昌 461000摘 要文章利用Scilab构建分布并行计算的支撑环境,为实现分布并行计算提供了新方法。设计了Netbutterfly Grid ComputingSystem(NGCS,讨论了NGCS的体系结构,任务分布、系统通信和容错机制等关键问题。最后给出网格计算环境下基
2、于Scilab的一个分布并行计算实例,实验的结果是令人满意的。关键词分布并行计算网格计算 Scilab Globus toolkitTHE RESEARCH OF DISTRIBUTED PARALLEL COMPUTING METHOD ON SCILABZhang Zhili1,2 Zhang Dong1 Qi Deyu11(College of Computer Science and Engineering, South China Univ. of Tech., Guangzhou Guangdong 510640, China2(Center of Network, Xuchang
3、 University, Xuchang Henan 461000, ChinaAbstract The paper focuses on the implements of distributed parallel computing on Scilab, a wide-used grid environment. Netbutterfly Grid ComputingSystem(NGCS is designed, Some of key issues, such as the architecture of NGCS, job distributing, system communica
4、tions and fault tolerance are analyzed anddiscussed. And a new science computing method is advanced. Finally, an example on grid computing environments is presented. The experiment shows that its theresults are satisfying.Keywords Distributed parallel computing Grid computing Scilab Globus toolkit1引
5、 言随着计算机和互联网技术的出现和迅速发展,科学与工程计算获得了广泛的应用,它是计算机在科学与高技术领域应用的必不可少的工具,并且已经成为科学研究的一个重要的方向,是20世纪最重要的科技进步之一。利用Internet上现有的计算资源开发分布式并行计算系统有着巨大的潜在价值, 现有并行计算的实现主要有两种方式:(1并行计算机方式:并行计算机可分为紧耦合和松耦合方式两类。实现这种传统并行计算的问题是代价太高,难以实现,不适合一般的应用。(2网络并行计算系统方式:由一组互联的同构或异构计算单元和相关资源组成,可被用户视为单一的计算环境来完成并行计算1。其最典型的代表是PVM。这类系统最严重的问题是只
6、考虑处理机能力的异构,很难解决操作系统、协议等方面的异构性。网格是刚刚兴起的计算环境,它支持高性能计算和高度的资源共享2。用网格实现大规模分布并行计算是必然的趋势,将为大规模科学与工程计算开辟一个新的领域。然而,目前的一些网格环境,如OGSA/Globus,距离直接支持分布并行计算还很遥远,对于一般用户来说,廉价易用的分布式并行计算环境是进行大规模科学计算最有效的实现平台。因此,讨论在现有网格环境下如何实现分布并行计算仍然是十分必要的。基于Scilab3运算引擎,以OGSA/Globus为背景,我们设计开发了网格环境下分布式并行计算工具Netbutterfly Grid Computing S
7、ystem(简称NGCS,分析了分布并行计算存在的关键问题,并提出了相应的解决方法。2基于Scilab的分布并行计算2.1NGCS的分布并行计算结构如图1所示,由多个提供网格服务的网格计算节点组成一个虚拟的并行机,它可以完成由网格客户提交的并行计算任务。每个网格计算节点即并行计算的一个节点,提供一个或一些可以并行执行子任务的并行网格服务。作为对运算资源的完整封装,网格计算节点用来完成具体的计算任务,它使用Scilab作为算法描述语言,可以降低使用者描述科学计算问题的难度。计算服务层(虚拟并行机抽象了计算能力,当计算任务被接受时,它就会自动寻找适合的计算资源来完成。应用层主要是用图1 NGCS层
8、次结构图 24 计算机应用与软件 2005年来对计算服务进行有效使用和管理,处理多应用协调等问题、通过网格中间件Globus Toolkit并行地调用网格服务实例等。与传统意义上的并行机和网络并行实现方式相比,其最大的优点是,充分利用互联网上的资源实现大型问题的分布并行计算,可以解决处理机能力、操作系统等方面的异构性,可以利用网格基础设施作为分布并行计算的编程环境,及其实现的简单性。2.2NGCS设计架构(1NGCS应用结构模型如图2所示,数据容器主要存放并行程序和应用数据;运算容器包括N个资源节点,为系统提供计算能力;资源目录服务包括运算资源服务和数据资源服务;NGCS运行时节点把编辑好的任
9、务提交到数据容器,数据容器与运算容器进行交互完成任务,在此过程中数据容器和运算容器通过目录服务来发现所需资源,直到运算完成。 图2 NGCS应用结构模型(2服务器系统设计NGCS在物理实现上采用了核心服务器组结构,客户端即是资源提供者又是资源调用者,系统内的计算资源来自于对客户端资源的有效聚集。NGCS的服务器采用可扩展的集群设计,各个模块可以分别运行。服务器组结构如图3所示。它的优点是可扩展性好,负载量大,可以适当冗余,可靠性高。服务器主要完成的工作是任务和资源的组织和调度。(3客户节点设计NGCS的客户节点包括任务接入界面和Scilab网格计算虚拟机。任务接入界面是用户申请进入NGCS的接
10、口,用户通过任务接入界面把任务提交到 NGCS系统;Scilab网格计算虚拟机是NGCS的运算节点,它为系统提供运算能力。客户节点分任务模式和计算模式。前者为节点向系统提交计算任务并等待系统完成的过程,后者为节点向系统提供计算服务。由于每个客户节点是用Globus Toolkit构建的网格节点,所以,它支持从微机到巨型机的任何机种, 从Windows到Unix和Linux以及将来可能出现的任何操作系统,极大的便利了异种机间的网络并行,从而可以充分地利用现有的网络资源进行分布并行计算。2.3系统编码设计本系统采用了Scilab语言作为科学计算脚本描述语言。Scilab是由法国国立自动化研究院(I
11、NRIA和ENPC开发的“开放源码”软件,使用Scilab作为应用脚本语言有利于计算任务的快捷描述和使用者的快速掌握,从而提高了使用者对科学计算问题的描述效率。由于NGCS的应用程序采用了解释执行的方式,使得NGCS的应用脚本可以在不同平台的NGCS节点直接运行,在不同操作系统节点中共同运行一个并行程序,具有良好的异构扩展特性。为了使Scilab适用于网络化的并行计算,系统增加了远程数据读写指令NGCS_RD和NGCS_WR,去掉了磁盘操作等可能危害客户机的危险指令。整个运算程序的入口是main.ngcs 文件,其它程序作为过程被调用。Main.ngcs是一个描述任务流的文件,语法上只有2个关
12、键字NGCS_CX和NGCS_END。NGCS_CX: 程序的条件执行,当表达式X为真时,系统并行执行NGCS_CX语句内的所有函数;NGCS_END:运算结束,此条指令一般用来结束系统任务,系统执行到此语句时对所分配资源进行释放,应用完成。当表达式X为真时,整个运算任务结束,向任务提交者发出结束标志,注销资源节点缓冲区。2.4关键技术问题的讨论(1任务并行传统的并行计算模型一般都是基于数据并行的,数据并行的并行度较高但难于处理不规则问题,而基于功能并行的计算模型,对非规则问题的处理能力较好。NGCS并行调度语言,对任务关系进行描述,将人们对问题的分解自然的对应为程序中的各级任务,并行编程自然
13、、清晰;同时,任务并行综合了数据并行和功能并行的优势,在支持较高并行度的前提下,能够有效地处理不规则问题,可以较方便地将串行程序改写为并行程序。系统把数据和操作封装成不同的任务以实现并行化:当多个任务具有相同操作、不同数据时实现数据并行;当多个任务具有不同操作时实现功能并行4。每个任务被分布到一个网格节点。基于Scilab的分布并行计算可以扩展并行计算环境到以GLOBUS网格节点为并行计算节点的广域网络中,这样,可并行计算的任务能被分布到网格上多个计算资源上,系统的性能将大大提高。(2系统通信系统通信涉及两个方面:一个是并行计算节点之间的通信,主要是完成并行计算的各网格计算节点上的网格服务之间
14、的数据通信和同步信息交流;另一个是网格服务与客户之间通信。可以用来实现网格服务之间通信和网格服务与客户的通信。通信机制有两种实现方法:Pull方法和Push方法5。其中Push方法允许数据和通知一起传输,这种通信方式效率高,对于并行计算这种性能优先的需求来说,可以采用这种方式。此外,由于现有的网格服务是基于TCP/IP协议这种底层通信方式,因此,通信效率较高。为了实现NGCS在Internet下的通信,NGCS采用了SOAP1.2标准并对其进行封装。SOAP v1.2为在一个松散的、分布的环境中使用XML对等地交换结构化和类型化的信息提供了一个简单且轻量级的机制6。SOAP本身并不定义任何应用
15、语义,它只是定义了一种简单的机制,通过一个模块化的包装模型和特定格式编码数据的重编码机制来表示应用语义。SOAP 的这项能力使得它可被很多类型的系统用于从消息系统到 图3 NGCS服务器组第10期张志立等:基于Scilab的分布式并行计算方法的研究 25RPC(Remote Procedure Call的延伸。NGCS扩展了Scilab,对Soap进行了封装,在Scilab中加入了SOAP_EG的数据操作指令NGCS_ SOAPEG,使得用户可以访问系统各数据缓存中的数据信息,实现了分布式内存对用户的透明性。NGCS_SOAP指令NGCS_ SOAPEG(Type,Name有两个参数:Type
16、决定了系统执行的操作类型:数据读取或者数据写入;Name为需要处理的变量的名称,由以字母打头的字符串表示,当前面加“*”时表示为数据指针操作,前面无“*”时表示值操作。(3容错机制理想状态下网络具有以下特征:较短的通信延时、较高的通信带宽、极小的错误率、较好的可扩展性。而现实情况是难以容忍的延时、有限的带宽、随机可能的出错,因此建立基于互联网的分布并行运算系统必须有一套与之相对应的容错机制来适应。该计算环境是由分布的若干台计算机用Internet连接而成,每台计算机是自治的,所以系统比较可靠。一个单元或资源的故障不影响其他资源的正常功能。理论上,可以通过全局的检查点实现网格的容错7,但实现难度
17、大,可行的方法是通过应用程序本身来实现容错功能。由于所提出的分布并行计算环境是基于Globus toolkit的,而Globus可以使用监听心跳的措施来跟踪并行计算机失效的情况,从而达到容错的目的。(4安全问题由于采用SOAP进行底层通信,NGCS应用可以部署的范围大为扩大,但在运行过程中暴露节点地址在所难免,节点安全问题和数据安全问题成为制约系统部署的主要问题。目前采用的策略是有限的不可传递的信任原则,节点对主控系统的信任以任务为单位分配,并且任务脚本不能访问节点的文件系统,只能对系统规定的内存进行读写。3实例测试3.1问题分析与编码实现为了验证NGCS系统的有效性,下面设计了一个数据耦合计
18、算任务:N 皇后问题,一个N 皇后问题可被分解为N 个N-1粒度的问题,即N个可并行计算的任务。计算任务使用NGCS 描述,部署在一个局域网内,成为一个可执行并行计算的科学计算环境。然后对不同数目有效节点情况下任务执行的加速比进行了比较。下面是用Scilab编写的简化后的部分网格服务实现算法和网格客户应用算法程序。N的并行宏语言描述NGCS.MAIN(略。3.2测试环境与结果要使用NGCS进行分布并行计算必须具备如下条件:(1具备NGCS服务器系统,并且系统内至少具有两个可用客户节点;(2 合理的NGCS应用任务编码;下面设计了一个有五台计算机组成的异构网络环境的应用系统来验证其有效性,主机1
19、上配置了NGCS的资源目录服务和协同服务,主机2为用户应用接入节点,主机3、4、5为运算资源节点。给出了求解问题的实际(理论运行时间结果(略,图4是该问题实际(理论加速比的测试结果。实验结果表明:随着问题的规模增大, 在网格分布计算环境下的并行求解速度比单机求解的速度得到了很大的提高。随着有效运算节点数目的增加系统任务求解的速度也在不断得到提高,但由于网络带宽和传输延迟等因素,运算节点增加和任务求解速度加速并不能严格按照理论值进行,在有效节点增加的同时,任务加速度要略小于新增的节点单独计算能力之和。 图4 实际和理论求解性能加速比4结论本文提出一种基于网格计算环境的分布并行计算实现新方法,实现
20、了Scilab科学计算任务在Internet环境下的分布并行计算;它充分利用网络上分散的、闲置的、异构的资源获得计算能力,屏蔽用户服务细节,简化使用难度,使任务在处理节点上自动分配与调度,无需考虑任务和处理节点的对应关系,进一步减少了用户编程细节;同时,NGCS实现了系统动态负载平衡,提高了程序的执行效率,并简化了并行计算的实现,为在异构广域网络上实现超大问题的大规模分布并行计算提供了一种新途径。最后给出分布并行计算的实例,对分布并行计算进行了有益的尝试,为科研工作者提供了一个简捷易用的高性能计算平台。参 考 文 献1G. Pfister, In Search of cluster, Second Edition, Pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论