P2P-Grid环境下基于聚集的并行资源调度模型研究
2008-07-16
作者:叶从欢
摘 要: 在混合式P2P结构的基础上提出了P2P-Grid模型,把同类同属性资源聚集到资源组,并建立资源组目录树。给出了一种可以避免Grid-Peer" title="Grid-Peer">Grid-Peer内部任务扎堆现象的资源调度" title="资源调度">资源调度算法和Grid-Peer调度算法。
关键词: P2P-Grid模型 Grid-Peer算法 资源组 资源调度 并行资源调度模型
目前,对结合P2P与Grid二种分布式计算技术的新型网络结构P2P-Grid方面的研究很少,且对P2P-Grid环境下资源调度机制的研究也不多见。P2P-Grid是作者针对现阶段不同地区网络之间的通信速度远远低于集群或局域网内部的通信速度以及网络环境下资源分布不均匀的情况,在混合式P2P结构的基础上提出来的。
在局部范围内把地理位置彼此相近的资源构造成规模适当的网格系统" title="网格系统">网格系统,这些网格系统可看作是P2P-Grid的Grid-Peer(相当于混合式P2P结构中的Super-Peer),并使用P2P技术组织这些Grid-Peer资源。充分利用二者各自的资源调度优势,在Grid-Peer集中式" title="集中式">集中式高效资源调度与Grid-Peer具备健壮性、可靠性和可用性的分布式资源调度之间达成一种平衡机制,并在各Grid-Peer之间以及Grid-Peer内部分类的资源组之间形成对资源的多点并行调度机制,可有效地避免单一网格系统瓶颈的产生。
Gondor的匹配器使用集中式方式组织资源,负责资源提供者和资源请求者之间需求的匹配。Adriana Iamnitchi等人使用P2P模式分布式组织资源,并使用请求向前搜索的策略发现资源。中科院的织女星网格项目研究了基于路由转发模型的资源发现方法和面向资源发现的VEGA体系结构。
1 P2P-Grid模型
网格的特点及其最终面向最普通的计算机用户的目标,决定了网格系统不宜采用传统的集中式资源管理模式。普通计算机位于互联网的边缘,且P2P技术处理这类资源已经比较成熟。为把这类数量庞大的资源整合到网格系统中,结合P2P和Grid的互补性,可采用P2P-Grid模型[5][6]组织网络环境下的资源。该P2P-Grid模型依据银行系统的运作模式,采用“分而治之”的思想,把“单一网格系统”分割成若干处于对等地位的“小规模网格”系统,本文称为Grid-Peer。每个Grid-Peer可使用不同网格技术管理所在域的资源,就如同P2P系统中计算机的操作系统可以互不相同。
2 Grid-Peer中基于聚集的资源组织[6]
2.1 基本概念
定义1 资源属性值域[4]:R表示某资源任一属性值所有可能取值为实数的集合,R上的值域定义为VA={x|r1≤x<r2,x∈R,r1∈R,r2∈R},则令VA=[r1,r2],VA为R的子集,表示VA由所有介于r1(可以等于r1)和r2之间的实数组成。
定义2 资源组:记录资源属性值在某个资源属性值域范围内的资源集合的域。
定义3 计算能力" title="计算能力">计算能力:计算资源在单位时间内运算的次数。
定义4 CPU==[1G,2G]:CPU的主频取值在1GB~2GB范围内。
定义5 Mem==[64M,128M]:内存容量取值在64MB~128MB之间。
定义6 预留资源:及时分配给在某个特定的时间段内到来的任务,或某个资源出现故障时,准备运行迁移过来的任务的资源。
定义7 备份资源:正在运行任务的资源出现故障时,替换该资源继续运行任务的资源。
定义8 任务扎堆:任务总是优先占用被调度次数最多的资源的现象。
性质1 同一资源组中资源具有的计算能力属于规定该资源组CPU属性值域的集合。
性质2 同一资源组中资源具有的存储容量属于规定该资源组的内存属性值域的集合。
性质3 同一资源组中的资源可以互为备份资源。
2.2 基于聚集的资源组目录树
资源的组织方式决定资源的发现、资源匹配和资源调度等其他的资源管理技术。而资源管理器为用户选择资源、匹配资源请求与具体资源的方法有很多种,不同的方法会影响资源的利用率和系统开销。本文采用分布式与层次式结合的资源组织方式组织P2P-Grid环境下的资源。把计算资源按照接入到互联网的方式和属性分为HPC(高性能计算机)、PC(桌面计算机)和LAN(局域网)三类。每类再根据资源属性进行细分并确立多个资源组。资源组中聚集的资源计算能力和存储能力相当。
LAN资源的组织形式如图1(其他二类资源的组织类似)。
3 资源调度
3.1 并行资源调度模型
P2P-Grid的目标是把网络边缘上的计算机利用起来,形成具有无穷处理能力的若干个虚拟超级计算机,即Grid-Peer。在Grid-Peer中,相对于要调度的任务而言,资源同样需要调度。为完成用户提交的任务和满足用户提出的要求,把Grid-Peer中所有可用资源(计算资源、存储资源和网络资源)进行匹配,使用合理的资源分配方式和资源调度策略。调度策略是一些调度规则和算法 ,使应用能够按照规则找到最优资源。其实质是将n个相互独立的任务分配到m个异构可用资源,使得总任务的完成时间最小且资源得到充分利用。
资源调度的方式有集中式调度和分布式调度二种。
(1)集中式调度:在网格中只有一个调度中心,负责调度网格中的所有资源。其优点是调度系统知道网格中的所有资源,对于一个应用可以产生高效的资源调度方案。缺点是:当网络比较大时,调度系统便很难掌握所有的资源,因此调度系统会成为瓶颈。例如,调度系统因为错误出现故障,就会影响整个网格系统。集中式调度比较适合小型网格。
(2)分布式调度:有多个调度中心,各中心是平等的。优点是健壮性、可靠性和可用性比较高。缺点是调度中心之间的通信量比较大,由于不能掌握网格中所有资源,很难找到全局最优的资源分配方式。
由于P2P-Grid把单一网格系统拆分成多个小型网格系统(Grid-Peer),因此减小了网格系统规模,并且Grid-Peer内部可以使用集中式的资源管理方式。Grid-Peer使用P2P技术进行信息交互、实现资源共享,构成的P2P-Grid系统是一个分布式系统。因此,P2P-Grid系统是分布式和集中式系统的结合。作者结合集中式调度和分布式调度的优点,设计了P2P-Grid环境下的基于聚集的并行资源调度模型。对整个P2P-Grid而言,每个Grid-Peer可同时调度资源,形成一种多点调度。同样,在Grid-Peer内部,资源调度系统可基于聚集的资源组并行地调度各资源组中的任务。把单一网格系统拆分重组成为P2P-Grid系统后,每个Grid-Peer系统所管理的资源数目比原来少了,从而解决了因为单一的网格系统规模太大,难以掌握所有资源状态以及属性信息这一问题。原先单一网格系统负载由许许多多Grid-Peer分担,不仅可解决系统任务请求时出现的瓶颈问题,也可快速发现任务所需资源,提高该任务的QoS。另外,可减小由于单一网格系统出错而导致整个系统崩溃的概率。
拆分重组后的P2P-Grid系统中的每个Grid-Peer也是一个网格系统,其规模也会直接影响到Grid-Peer之间信息交流时的通信量。如果规模过小,P2P-Grid系统过于分布,必然会造成Grid-Peer之间任务频繁地迁移,在网络中产生大量的数据包。数据包过多,还可造成网络拥塞,使P2P-Grid性能急剧下降。因此,设计P2P-Grid模型时应把Grid-Peer规模设计成大小适中,既可以利用集中式调度机制高效产生资源调度方案,也可充分利用分布式调度具备的健壮性、可靠性和可用性等优点。
P2P-Grid系统的资源调度具有以下特点:
(1)P2P-Grid系统不同于传统的单机处理任务。在单台计算机中可以利用的资源有限,一般都是任务等待少量计算资源,需要调度的是任务。而在Grid-Peer系统中,资源数量非常多,有时可能出现资源等待处理任务的情况。
(2)P2P-Grid系统中资源是动态变化的,随着时间的变化,总有旧的资源推出和新的资源加入。
(3)P2P-Grid系统是由各种不同的管理域组成的异构环境,系统中的资源调度程序不可能控制系统中的所有资源。
(4)为充分利用所有资源,需要避免任务竞争性能相对良好的资源。
因此,设计一个P2P-Grid环境下的资源调度模型会遇到以下难点:
(1)由于资源之间的关联性,进入Grid-Peer中的任务会与其他已经在Grid-Peer中的任务竞争资源,造成任务之间的相互影响。因此,要找到满足所有任务要求的最优调度方案有时不大可能。
(2)由于P2P-Grid中的资源种类繁多,各种任务对资源的要求也各种各样,所以很难用统一的尺度描述和度量其特征。
(3)P2P-Grid中对各种资源的约束很多是非线性的,要达到的调度目标也很多,例如要求时间最少、代价最小、资源利用率最高等,并且有些目标相互矛盾。对于这种多目标多约束的问题,找到满足所有约束和目标的全局最优解是很困难的。
资源组的概念是针对P2P-Grid系统资源调度的特点以及设计资源调度模型的难点提出的。属于同一资源组中资源的物理属性相近,故这些资源对同类任务具有相似的兴趣。针对Grid-Peer系统的资源组织模型、任务调度模型以及相应的资源发现机制,设计了如图2所示的基于资源组模式的并行资源调度模型。
资源组是记录性能相近的资源聚集成资源集合的一个域,资源调度完全根据层次式资源组目录树并行进行。一般情况下,该任务请求哪类资源只需查找这类资源子树,搜索一个或多个资源组中的资源进行调度,并在给任务分配资源时,多预留一些实时可用的资源,作为分配资源的备份资源。
Grid-Peer系统资源管理模型中的HPC管理器、PC管理器和LAN管理器除了要管理其中的资源树的逻辑信息外,还要针对每个资源组中的可用资源、正在运行任务的资源以及备份资源进行监控,实时获取资源最新的状态信息,以便资源调度时不至于把任务分配到不能正常运行的计算资源上。
Grid-Peer环境下的资源管理系统采用基于资源物理特性构造的资源组目录树模型。Grid-Peer系统的资源按照其物理特性归类,根据资源的处理能力分为:超级计算机、位于局域网中的计算机和单独连接到互联网的计算机三种计算类资源。资源的属性信息分别组织在相应的三类资源管理器中。每类资源根据其计算能力可以再分为几个等级,例如:现在的桌面计算机的CPU主频主要位于1GHz以下,1GHz以上、2GHz以下、2GHz以上、3GHz以下,如此类推。若任务请求资源对其主存能力有要求,可根据资源内存容量继续细分,详见资源组目录树(图1)。Grid-Peer系统的资源调度根据资源类别分别进行,可减少资源的查找时间,提高资源与任务的匹配度,把更高处理能力的资源留给一些特殊的任务,使Grid-Peer系统的整体性能得到提高。
3.2 资源调度参数
下面介绍Grid-Peer系统内部的资源调度参数和P2P-Grid系统对Grid-Peer调度所要用到的参数。
本地Grid-Peer系统的参数:Rg表示资源组;T表示资源已经被调度的次数;Ht表示资源组中被调度次数最多的资源的调度次数;Bd表示资源所在的网络带宽,指HPC的集群计算机和LAN资源的内部网络带宽;Hbd表示资源组中资源的最高带宽,本文仅指HPC的集群计算机和LAN资源的内部网络带宽;Rt表示在t时刻网络通信速度;HRt表示访问资源组中资源能够达到的最高网络通信速度;Cpu表示资源的计算能力,也就是该计算资源的主频;Hcpu表示资源组中资源计算能力的最高上限,如资源树中 表示“Cpu==[1G,2G]”这一资源组的Hcpu为2GHz。PRI表示调度优先级。
在单个Grid-Peer系统中每个资源组由一个专用服务器负责管理,对其中可用资源按照被访问时间、计算能力和使用频率等综合参数进行优先级排序。计算能力相同的,访问时间越短,排序越靠前;计算能力和访问时间相同的情况下,使用频率高的反而排序靠后。充分挖掘出更多具有同等属性的资源以均衡网络流量,充分体现P2P-Grid的动态特征,因为访问时间随信息流量不同而发生变化。
单个Grid-Peer系统中,不同资源组也可以使用该参数来制定该资源组内部的资源调度策略,从而使得单个Grid-Peer中资源组管理资源信息的服务器能够同时多点调度Grid-Peer系统中的资源,提高系统的工作效率。
P2P-Grid系统中Grid-Peer调度参数:L表示Grid-Peer的系统负载;Time表示搜索到Grid-Peer所用的时间;Ltime表示搜索到Grid-Peer所用的最长时间;PRIGrid-Peer为调度Grid-Peer的优先级。
3.3 资源调度过程和算法
(1)根据提交任务的属性决定选择三种资源中的那一类,然后在相应信息资源管理器中查找初步满意的资源集,同时,资源调度管理者还需检查可用资源队列中的资源。若可用资源队列中具有最高优先级的资源之优先级超过了0.5,则可以选择此资源作为此次被调度的资源;否则等待计算从资源管理器中所发现资源的优先级。这两项操作是同时进行的,可以减少资源的相对发现时间。
(2)根据资源所在的位置、网络流量、带宽、资源使用率、资源计算能力等参数,决定资源调度的次序。假定资源调度最高级别的权值为1,资源的计算能力由cpu的主频决定,多cpu采用累加的形式计算。则资源调度优先级为:
PRI=Cpu/Hcpu×80%+Bd/Hbd×10%+Rt/HRt×5%-T/Ht×5%
最后一项对调度次数进行加权处理,可避免任务总是抢占被调度次数较多的资源,造成这些资源附近网络流量过大;还可以充分挖掘出更多新注册的资源,有效均衡网络流量,避免网络阻塞。
(3)计算出所查找资源组中初步满意的各资源级别,比较本次最高级别与可用资源队列中最高优先级资源级别,选择级别高的资源作为此次被调度的资源来处理提交的任务,并把计算出来的结果返回给用户,记录加1后的调度次数和被调度的时间,按照资源调度方法回收该资源,保存在可用资源队列中,等待下一次的调度。其中调度时间相当重要,因为Grid-Peer环境下的资源具有动态特性,此次确定的优先级在以后某个时间段将会发生很大的变化。如果发现两个资源的优先级相等,则选择最近被调度的资源去处理提交的任务。
全局P2P-Grid环境下的资源调度实际上是对所发现的Grid-Peer进行调度。如何选择Grid-Peer进行任务迁移,还要根据该Grid-Peer系统负载及本地Grid-Peer到远程Grid-Peer之间通信速度的影响确定。在本地Grid-Peer系统中采用聚集资源组的方式调度本地资源,而在P2P-Grid系统中采用泛洪算法发现满足条件的Grid-Peer,然后在这些Grid-Peer中选择一个合适的Grid-Peer。
向本地Grid-Peer系统提交任务时,可能会遇到本地Grid-Peer系统负载过重,不能满足用户QoS需求的情况。此时,本地Grid-Peer就需要向其他的远程Grid-Peer转移任务。这种情况需要查找具有最佳处理能力的Grid-Peer,并把任务迁移到这个最佳的Grid-Peer。Grid-Peer调度最主要的就是在所发现的Grid-Peer集合中选择某个合适的超级Peer。Grid-Peer处理完任务后直接向用户返回结果。
QoS指标是指Grid-Peer对转移到来的任务的服务质量,由处理结果精确性和任务处理时间两个参数来决定。当本地Grid-Peer在某个时间段内接收到返回的查找信息后,根据返回时间的长短和被返回系统内在的处理能力来决定把任务转移到某个Grid-Peer。选择具有最高调度优先级的Grid-Peer来迁移本系统中的任务,Grid-Peer的优先级为:
PRIGrid-Peer=(1-Time/Ltime)×10%+90%×(1-L)
网格技术和P2P技术已经成为高性能计算领域的研究热点,结合P2P和Grid的P2P-Grid也将逐渐成为高性能计算研究中的一个热点。本文在确定P2P-Grid的资源组织模型,即基于聚集的层次式资源组目录树之后,设计了基于资源组的并行资源调度模型。本模型为整个P2P-Grid系统中网格资源调度模型的一个雏形,今后还有很多方面需进一步的研究。
参考文献
1 Raman R,Livny M,Solomon M.Matchmaking:distributed resource management for high throughput computing.In:Proc. of the 7th IEEE Int′l Symp.on High Performance Distributed Computing.Chicago,IL,USA,1998
2 Gong YL,Dong F P,Li W et al.VEGA Infrastructure for Resource Discovery in Grids.J.Compute.Sci.&Technol,2003;18(4)
3 徐志伟,冯百明,李伟.网格计算技术.北京:电子工业出版社,2004
4 周晓,陈鸣.基于散列值的广域网服务发现.软件学报,2004;15(10)
5 叶从欢,江武汉,孙世新.P2P与Grid的结合:P2P-Grid模型研究.微型机与应用,2005;24(5)
6 叶从欢.P2P-Grid环境下的一种新的资源组织方法.微型机与应用,2005;24(12)