清华大学综 合 论 文 训 练Word格式文档下载.docx
《清华大学综 合 论 文 训 练Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《清华大学综 合 论 文 训 练Word格式文档下载.docx(35页珍藏版)》请在冰豆网上搜索。
本文主要实现了LIGO中数据监测工具箱在由不同网格中间件搭建的网格上的运行,并在网格使能层上对其运行进行了一些改进,最后还从运行数据监测工具箱的视角对由不同网格中间件搭建的网格的性能进行了比较。
关键词:
网格网格使能层网格中间件依赖并行
ABSTRACT
Inthe1990s,theconceptofgridcomesout.Fromthattime,gridhasbeenhailedasthethirdtideofinformationtechnologyaftertheInternetandWebbecausegridisanewtypeofnetthatcanbringuswithcapabilityofprocessingmassdata,storingmassfileandsoon.Atthesametimealmost,todetectthegravitationalwavethatAlbertEinsteinpredicted,NationalScienceFoundationstartedaprojectnamedLaserInterferometerGravitational-waveObservatory(LIGO).Thisprojecthashighdemandsindata'
stransferring,processingandstoring,andgridcanmeetthesedemandswell.
ThispapermainlyrealizestherunningofLIGO'
sDataMonitoringTool(DMT)ingridbuiltbytwodifferentgridmiddleware,andmakessomeimprovementtotherunningingridenablinglayer,atlast,comparestheperformancebetweenthegridsbuiltbytwodifferentgridmiddlewareintheviewofexecutingtheDataMonitoringTool.
Keywords:
GridenablinglayerGridmiddlewareDependenceParallel
目录
第1章序言1
1.1LIGO简介1
1.1.1LIGO工作情况1
1.1.2LIGO中的数据监测工具箱1
1.2网格技术介绍2
1.2.1网格技术的起源及发展2
1.2.2网格技术的应用及意义2
1.2.3网格的特点[8]3
1.2.4网格的结构[9]4
1.2.5网格中间件6
1.3问题提出及解决方案6
1.3.1数据监测工具箱在网格运行的限制6
1.3.2网格中间件的不足7
1.3.3解决方案7
1.4本文工作7
1.5文章结构8
第2章网格中间件及DMT样例程序9
2.1Globus简介9
2.1.1Globus的组织结构[11]9
2.1.2Globus的组件[11]10
2.1.3安全机制GSI11
2.1.4Globus安全认证机制12
2.1.5GridFTP[13]14
2.2Condor简介15
2.2.1Condor组织结构16
2.2.2Condor的特点16
2.2.3CondorPool17
2.2.4Condor的任务提交及运行18
2.3DMT样例程序Rmon20
2.4相关技术22
2.5运行开发平台23
第3章基于网格中间件的Rmon运行24
3.1基于网格中间件的Rmon简单运行24
3.1.1基于Globus的Rmon简单运行24
3.1.2基于Condor的Rmon简单运行25
3.2网格使能层上Rmon的运行26
3.2.1改善Rmon的依赖性26
3.2.2实现Rmon在Globus上的并行计算28
3.2.3实现Rmon在Condor上的并行计算31
3.3Globus和Condor的性能比较32
第4章结论及展望33
4.1基于网格中间件的Rmon运行结论33
4.2展望33
插图索引35
参考文献37
致谢39
声明………………………………………………………………………........40
附录A外文资料的调研阅读报告41
第1章序言
1.1LIGO简介
1916年,艾伯特·
爱因斯坦预言了引力波的存在,并将引力波作为广义相对论的重要组成部分:
电荷被加速时会发出电磁辐射,同样有质量的物体被加速时就会发出引力辐射。
1974年,约瑟夫·
泰勒和拉塞尔·
赫尔斯间接证明了引力波的存在。
为了找到引力波存在的直接证据,1990年,由美国国家自然科学基金(简称NSF)出资,美国麻省理工MIT和加州理工Caltech共同启动了激光干涉引力波天文台项目(LaserInterferometerGravitational-WaveObservatory,简称LIGO)[1],并成立了LIGO科学合作联盟(LIGOScientificCollaboration),来自全球40多个研究机构的500多名研究人员参与并共享着分布在美国和欧洲的3000个高性能CPU及超过1000TB的存储资源[2]。
1.1.1LIGO工作情况
LIGO用一个名为激光干涉仪的设备来探测时空中的重力波。
LIGO共建造了三个这样的激光干涉仪,其中两个在美国,另外一个在德国。
LIGO需要至少两个相距遥远的探测器,对它们进行同步操作才能去除错误的信号并确认重力波是否经过了地球[3]。
LIGO的这三个天文台,每秒总共能从2000多个感应器频道中产生7至9M的数据,而LIGO需要低延迟地对数据进行分析,因为只有这样,才能给天文学家提供足够的预警时间去观测重力波产生的方位所发生的天文事件。
而为了能够实时地同时处理这些分散在三个相距遥远的天文台的数据从而找到引力波存在的证据,LIGO运用网格技术搭建了自己的一套网格系统,名为LIGODataGrid[4]。
1.1.2LIGO中的数据监测工具箱
顾名思义,数据监测工具箱(DataMonitoringTool,简称DMT)是一个为更好地监测LIGO实时产生的数据而特别开发的软件包。
DMT包括若干个库,定义了相关的工具和环境,能够支持对LIGO的天文台进行连续的数据监测。
1.2网格技术介绍
对于不同的人来说,网格这个概念有着它不同的意义。
用一个形象化的视角来看待网格,可以认为电力网格与它相似。
一方面,由纵横交错的电缆连接起来的电网和由铺设在全球各地的光纤、网线等连接起来的互联网颇有几分相似之处:
电器对应着计算机,插座对应着网卡,电线对应着网线;
另一方面,就犹如人们可以通过墙上的插座获取电力,而不用考虑电力在何处通过何种方式生产出来一样,网格的目标也是如此。
它的最终目的是让用户能方便快捷地存取和使用分布在因特网上海量的资源(计算能力,存储能力,数据,应用程序以及其他资源)而不用了解这些资源存放在何处,资源的存放形式和环境如何。
对于终端用户而言,这些计算能力,应用程序等等就像是一个巨大的虚拟计算机所提供的[5]。
1.2.1网格技术的起源及发展
网格技术由80年代开始的远程计算和分布式计算机的应用研究发展而来。
1992年,美国国家超级计算应用中心的CharlieCatlett和LarrySmarr提出了元计算(Metacomputing)的概念。
他们为了在网络上构筑虚拟计算机环境、执行大规模平行计算处理而开展研究。
1995年,美国伊利诺伊大学的TomDeFanti和阿贡国家实验室的RickStevens等人根据I-Way计划,进行了最早的大规模元计算实验。
这一计划通过高速广域网连接了全美地区17家计算中心,实施了虚拟现实实验等很多应用验证。
以I-Way计划为开端,1996年美国阿贡国家实验室的IanFoster和南加利福尼亚大学的CarlKesselman的研究组启动了Globus计划,开发用于高性能分布式计算的中间件。
1998年,表示“网格技术”概念的蓝图出现了[6]。
1.2.2网格技术的应用及意义
计算与理论和实验并列,已经成为第三种重要的科学研究方式。
并且计算将理论和实验连接起来,成为二者间的桥梁。
通过计算,能够完成许多单纯靠理论或实验无法完成的科学研究。
比如工程结构仿真,有限元分析,天气预测,股票预测等等,计算已经在各个研究领域取得了重要的地位。
既然计算具有重要的地位,而网格中很重要的也是最本源的一种应用就是整合提供强大的计算能力。
因此,网格计算大有用武之地。
在过去几年里,网格处理能力(每秒可以处理的位数)和微处理器的速度(依赖于集成电路中晶体管的数量)之间出现了一个巨大的差距[7],如图1.1所示。
图1.1网格处理能力与微处理器能力的比较
如图中所示,网络处理能力现在每9个月就要翻一番,而摩尔定律指出每个集成电路中晶体管的数量每18个月就会翻一倍[7]。
这样就出现了这样一个问题:
与网络能力的发展相比,处理器的发展速度要慢很多。
比如从1986年到2000年,计算机的处理速度提高了500倍,网络的速度提高了约340,000倍。
估计从2001年到2010年,计算机的处理速度将提高60倍,而网络的速度将提高4000倍[8]。
目前的PC已经比10年前的超级计算机还要快,而大量的计算机在许多的情况下其计算能力是闲置的,因此可以共享利用其计算能力。
网格除了在前边提到的计算领域能施展本领外,在其他诸多领域也有很好的应用,比如网格能实现更为广泛深入的资源共享。
最近几年P2P(PeerToPeer)技术很流行,它能实现用户直接连接到其他用户的计算机,从而进行资源的共享和交换,资源可以是计算能力,文件,网络连接能力,打印机等等。
而网格则比P2P更进一步,除了能进行各种资源的共享外,还提供了P2P所不具备的安全信任机制。
1.2.3网格的特点[8]
网格主要有以下4个特点:
1.分布与共享
网格目的就在于集成共享分散在各处的计算机资源,因此分布性是网格的最主要的特点。
网格的分布性首先指的是网格的资源是分布的,且分布的网格一般涉及的资源类型复杂,规模较大,跨越的地理范围较广。
因为网格资源是分布的,因此基于网格的计算就注定是分布式计算而不是集中式计算。
而分布式计算里边则需要解决诸如资源与任务分配和调度,数据的传输等等问题。
分布在各处的网格资源是可以充分共享的,这也是网格的目的所在。
共享的内涵非常广泛,不仅仅指可以提交任务到远程主机上运行,还可以指中间结果,数据库,专业模型库以及人才资源等方面的共享。
分布式网格硬件在物理上的特征,而共享则是在网格中间件支持下实现的逻辑上的特征,两者对于网络来说都是十分重要的。
2.自相似性
网格的局部和整体之间存在着一定的相似性,局部往往在许多地方具有全局的某些特征,而全局的特征在局部也有一定的体现。
3.动态性与多样性
网格是动态搭建的,任何主机或资源可以随时加入或退出网格。
此外网格上的资源是异构的,具有多样性。
同一个网格中,可以存在不同硬件体系结构的计算机系统和不同类别的资源。
动态性和多样性就要求了网格系统能够解决这些不同结构、不同类别的资源之间的通信和互操作问题,从而能够使得新的资源能够加入网格并与原来的资源融合在一块。
4.自治性与管理的多重性
网格上的资源,首先是属于某一个组织或者个人的,因此网格资源的拥有者对该资源拥有最高级别的管理权限,网格应该允许资源拥有者对他的资源有自主的管理能力,这就是网格的自治性。
但网格创建的本意是用来共享资源,因此在获得资源拥有者允许的情况下,网格的资源需要受到网格的统一管理。
这就是网格管理的多重性的表现。
1.2.4网格的结构[9]
目前对网格的体系结构有多种看法,其中五层沙漏结构最具代表性。
参照该结构使用网格中间件来提供一组计算服务,构成沙漏的瓶颈部分,即最中间的那层。
从该层向下可屏蔽资源的异构性、动态性和分布性;
向上可以提供基于Web服务的、透明的、可视化的网格计算环境。
从功能上看,该体系结构可以划分为以下四层:
应用接口层、中间件层、抽象接口层和资源层,如图1.2所示。
图1.1网格的五层沙漏模型
其中网格计算资源是网格提供计算服务的基础,最终所有应用都要调用到网格的部分或是全部计算资源上来运行。
抽象接口层则综合了网格计算模式下的计算服务功能,包括科学计算服务、并行计算服务、工程计算服务、应用接口层为用户提供了多样化的使用接口。
网格中间件是网格计算的核心所在,为用户提供具有统一编程接口的虚拟平台,支持复杂应用问题的求解和资源的共享,它一般由抽象接口层和中间件层两部分组成,将分布于网格中的各个异构平台上的各种资源整合在一起,协同完成一个任务。
1.2.5网格中间件
网格中间件(GridMiddleware)是一种在网格中应用的中间件(中间件,顾名思义,网格中间件位于操作系统与用户的应用软件中间。
总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件)。
网格中间件是整个网格体系的核心部分,它能完成如下几个功能[9]:
1.资源动态监测
2.屏蔽节点异构
3.优化资源选择
4.协同计算
网格中间件的种类很多,其中Globus和Condor是两种具有代表性且使用较为广泛的网格中间件。
1.3问题提出及解决方案
前边提到了LIGO的数据监测工具箱DMT,由于LIGO实时产生的数据是放在网格上进行处理,因此为了监测LIGO的数据,DMT也需要放在网格上运行。
但是DMT在网格上的运行存在问题和不足,下边将逐一介绍,并简要说明解决方法。
1.3.1数据监测工具箱在网格运行的限制
DMT目前只有Unix/Linux下的版本,它有以下一些特征:
1.DMT采用C/C++编译而成。
2.DMT的编译需要包含一些特有的头文件并链接到一些特定的专业动态链接库。
3.DMT的运行同样需要链接一些特有的动态链接库。
4.为了监测数据,DMT必然要读取数据。
5.DMT也需要输出监测结果。
6.由于LIGO数据是动态连续产生,因此DMT也要实时读取,输出结果。
由上述的这些特征,可知DMT在网格上运行大致有如下几条限制:
1.前边提到DMT的编译和运行均需要链接到一些特有的动态链接库,而Linux下的动态链接库与Windows下的动态链接库(DynamicLinkLibrary,简称dll)有所不同,Windows下的动态链接库能够被编译进二进制程序中,而Linux下的动态链接库则不能被编译进程序中,除非动态链接库的源程序公开,但这个往往很不现实。
因此DMT若想在由各个具有不同Unix/Linux操作系统的计算节点组成的网格上运行的话,就面临着动态链接库的版本随操作系统的不同而有所差异的问题,这也就是通常所说的程序的可移植性问题。
但很
2.DMT若想在某台机器上运行,首先数据得在该机器上,因此必须考虑到数据实时传送以供DMT读取的问题。
3.DMT的结果也得考虑如何实时显示。
1.3.2网格中间件的不足
目前的网格中间件仍然不够完善,如前边图1.2所示,从网格中间件所抽象出来的层次不够高:
有太多的技术细节需要被关注。
比如,若提交到网格上的程序依赖于一些特殊的动态链接库,只能预先人工在目标机器上安装好,程序才能运行,而目前的网格中间件还不能做到解决库的依赖性问题。
再比如为了提高程序在网格上的计算速度,就需要程序同时在多台计算机上运行,而这涉及到数据分发,并行计算的问题,而这些功能网格中间件目前也不能直接支持。
网格中间件的这些不完善的地方,带来了这样的问题:
1.由于关注过多的技术细节,降低了工作效率。
2.LIGO中提交DMT到网格运行的物理学家们对于网格中间件很不了解,因此不仅工作效率降低,还有可能出现任务执行失败的情况。
1.3.3解决方案
屏蔽网格中间件的技术细节,在网格中间件和最终用户之间增加一层,称为网格使能层(GridEnablingLayer)。
它的作用相当于中间人的角色,接受终端用户的命令,并解释这些命令,交给网格中间件执行。
这样就给LIGO用户使用网格提供了一个友好的接口。
1.4本文工作
为了解决前边提出的问题,本文的主要工作为:
第一步:
熟悉一些常用的网格中间件的基本原理及其使用。
第二步:
实现DMT样例程序在网格中间件上的运行。
第三步:
在网格使能层上进行一些初步的开发,提供一个易用的接口给用户。
第四步:
对不同网格中间件的性能进行分析,比较其表现,为DMT挑选网格中间件。
1.5文章结构
本文的剩余章节安排如下:
第2章将对两种典型的网格中间件进行介绍,同时还介绍DMT样例程序Rmon,并说明测试开发环境。
第3章将详细说明Rmon在网格中间件上的运行,并介绍在网格使能层上所做的一些开发,并对Globus和Condor的性能进行了比较。
第4章给出结论,分析所做开发的缺陷。
简要总结本文工作,并提出将来可供改进的方向。
第2章网格中间件及DMT样例程序
2.1Globus简介
1996年,Globus作为一个开源的软件项目而启动了。
目前Globus已经发展到GlobusToolkit4.0版本,包括IBM和Microsoft在内的一些公司都公开宣布支持Globus,且Globus已经被应用到数十个网格计算项目,比如欧洲数据网格(EuropeanDataGrid),美国的网格物理网络(GridPhysicsNetwork)和地球系统网格(EarthSystemGrid)[10]。
Globus是一种能让人们在不牺牲本地主机控制权的情况下安全地分享计算能力,数据库和其他工具的一种网格中间件。
Globus提供安全机制,资源监测,发现和管理以及文件管理的功能。
这些功能被打包成了一系列的模块,用户可以选择所需的模块搭建网格,进行开发。
2.1.1Globus的组织结构[11]
Globus在底层安全机制之上有三个主要组成部分,如图2.1所示。
图2.1Globus的组织结构
下面分别介绍这三个主要组成部分:
1.资源管理
提供资源分派,任务提交(远程运行可执行文件且返回结果),管理任务状态和进展。
Globus并没有提供任务调度的功能,因此不能自动找到合适的资源并发送任务到合适的机器上。
因此Globus需要第三方的调度能力。
2.数据管理
提供在机器间传输文件并管理这些传输的功能。
3.通信
该组成部分提供搜集和查询网格上各种信息的功能,Globus的通信部分基于LDAP协议(LightweightDirectoryAccessProtocol)。
所有的这些都建立在网格安全基础架构(GridSecurityInfrastructure,简称GSI)之上。
GSI提供包括单一/交互认证,加密通信,授权等安全措施。
2.1.2Globus的组件[11]
对于前边提到的每个组成部分,Globus都提供了一个相应的组件来实现,如图2.2所示。
图2.1Globus的组件
其中:
1.GRAM/GASS
资源管理部分最主要的组件,GridResourceAllocationManager(GRAM)和GlobalAccesstoSecondaryStorage(GASS)。
2.MDS(GRIS/GIIS)
基于LDAP协议(LightweightDirectoryAccessProtocol),GridResourceInformationService(GRIS)和GridIndexInformationService(GIIS)组件能搜集和分发网格上的信息。
这两个组件统称为MonitoringandDiscoveryService(MDS)。
被搜集的信息可以是关于机器的静态信息,也可以是显示目前CPU或者硬盘活动情况的动态信息。
3.GridFTP
GridFTP(GridFileTransferProtocol)是安全、高性能地传输数据中的关键组件。
4.GSI
以上提到的三个组件都建立在底层的GridSecurityInfrastructure(GSI)之上。
GSI基于SSL(SecureSocketLayer)协议,公钥加密(PublicKeyEncryption)和X.509认证标准。
2.1.3安全机制GSI
若想用Globus搭建网格并在上边提交任务,仅仅安装完Globus是不够的,还需要Globus认证颁发证书。
前边已经提到Globus的所有组件都建立在安全机制GSI之上,而GSI则采用了公钥加密技术。
众所周知,公钥加密是不对称加密,使用一个对其他用户保密的私钥和一个可以对其他人公开的公钥。
用公钥加密的数据只能用对应的私钥解密,而用私钥签名的数据只能用对应的公钥验证。
下边简要介绍一下GSI的具体功能[12]:
1.认证
GSI包含能够提供单一登录环境的底层结构和工具。
通过执行grid-proxy-init命令,在用户私钥的基础上,一个临时的代理被建立起来,该代理有一定的时间限制。
此代理能够提供认证并且能够用来生成可信任的远程连接信息并能允许服务端在用户的认证上做决定。
值得注意的是,在用户通过Globus组件提交任务或者传输数据之前必须生成一个代理。
2.授权
认证只是安全问题中的一部分。
这一部分是授权。
授权指的是一旦用户被成功认证,他们应该被授予哪些权限。
在GSI中授权由一个映射控制,它将被认证的用户与请求被接收的本地机器上的一个用户对应起来。
由操作请求(例如请求运行一个任务)发出的代理信息包含一个独特的名字,这个名字能够代表被认证的用户。
在接收请求的机器上有一个文件能够映射该名字到本地的某个用户。
通过以上的这种机制,网格上的用户要么能在网格中的每个系统上拥有一个用户ID,要么能被指派到一个虚拟组当中。
比如,一个特定区域内所有被认