通信网络产品创意
摘要:在对现有的网格资源管理模型进行分析和比较的基础上,提出了一种基于分层结构的具体模型HRMM,将资源管理分为作业并行分析、全局资源分配、局部资源分配和本地资源管理四个层次,并为每个层次设计了相应的优化策略和算法。该模型对资源管理的最大计算复杂度为O(n2)~O(n3),是一个优化而有效的网格资源管理模型。
计算网格是近年兴起的一种重要的并行分布式计算技术,其关键技术之一是对网格中的资源进行管理。网格中的资源具有广域分布、异构和动态的特性,使得网格资源管理变得很复杂。当前还没有一种模型能够处理所有的网格应用需求。目前,网格资源管理模型主要分为分层模型、抽象所有者模型和经济/市场模型三类。Globus项目组在网格协议制定上有重要发言权,包括IBM、Microsoft、Sun、Compaq、SGI、NEC在内的众多重要公司都宣布支持Globus Toolkit。因此Globus所采用的分层模型代表了网格资源管理的发展趋势。
本文在Globus分层模型设计思想的基础上提出一种优化的网格资源管理模型HRMM(Hierarchical Resource Management Model),并给出了相应的资源管理算法。为了提高效率,在HRMM的主要模块中运用了Globus Toolkit 2.4提供的数据结构和接口。
1 HRMM的总体结构
HRMM的设计思想是:动态接收来自用户的作业请求,并为该作业分配符合条件的计算资源,同时提供整个计算过程中有关资源信息的在线反馈,接受用户的在线控制。HRMM的体系结构如图1所示,将计算网格的资源管理任务分为四个层次:作业并行分析、全局资源分配、局部资源分配和本地资源管理。
由图1可见,用户经过GUI(图形用户界面)向HRMM提交作业请求,作业并行分析器接收用户的作业请求,再按最大并行度将作业中的任务划分为若干任务组,提交给全局资源分配器。对多任务组中的每个任务,全局资源分配器在静态资源库中一次搜索多个满足该需求的集群,组成候选集群组提交给局部资源分配器。局部资源分配器在动态资源库中读取候选集群组中每个集群的有关信息,并将相应任务分配给最符合条件的集群。然后,该集群应用本地资源管理器执行任务。在整体上,本地资源管理器每隔一定时间向静态资源库发送静态资源更新信息。另外,局部资源分配器读取动态资源库前,动态资源库会从本地资源管理器读取更新信息。
在这个分层模型中,一方面,用户提交的作业能够以最大的并行度执行,从而高效体现了并行计算的思想;另一方面,选多个集群组成候选集群组,再确定其中某一分配资源的方案,由于综合考虑了任务的静态需求和动态需求,避免重复的查询操作,从而提高了资源分配的效率。
2 作业并行分析器
如图1所示,用户经过GUI向作业并行分析器提交作业请求。这个请求包括该作业中所含的多个任务的相关信息、任务间的依赖关系及每个任务的计算资源需求。作业并行分析器分析该作业中的任务及相互关系,根据各任务的依赖关系将作业中的任务划分为不同的任务组,并对每个任务组进行适当描述后提交给全局资源分配器。
2.1 作业的拓扑表示
一个作业由一个或多个任务组成。作业的拓扑定义为一个满足如下条件的有向无环图:该图的节点与作业中的任务一一对应;若任务B直接依赖于任务A,则存在一条由节点A到节点B的有向边,称A为B的直接前驱,B为A的直接后继;如果存在一条从A到B的由多条有向边组成的有向通路,则称A为B的前驱,B为A的后继。
图2表示一个作业的拓扑结构。设该作业由标记为A~G的7个任务及其相互关系组成。如图2所示,任务D需要在任务A和B完成后才能开始,而任务G必须在任务正和F完成后才能开始。
为了提高作业的并行执行效率,需要关注任务在拓扑定义中的深度。记任务T的直接前驱集合为Pd(T),则其深度d(T)为:
若Pd(T)=φ,则d(T)=1;
若Pd(T)≠φ,则d(T)=max {d(R)}+1.
R∈Pd(T)
2.2 作业的最大并行度划分
作业的并行划分是指:一个作业拆分后形成的一系列对应每个任务、前后有序且相互独立的任务组。一个作业可以有一个或多个并行划分方案,形成该作业对应的并行划分集,记作Θ,I(Θ)为Θ中的任务组数。 称为作业的最大并行度划分,如果:E∈Θ,且 ξ∈Θ。I( )≤I(ξ)将作业中的多个任务按照相应的深度进行划分,形成一个最大并行度划分。如图2中的作业,其最大并行度划分为: ={(A,B),(C,D,E),F,G}。
3 全局资源分配器
全局资源分配器接收到以RSL描述的任务组后,立刻进行分析和解释,获得每个任务的静态资源需求。系统根据每个任务的资源需求在静态资源库中搜索满足条件的多个集群,并将结果提交给局部资源分配器。
3.1 静态资源库
系统中的静态资源库采用基于轻量目录访问协议LDAP结构。在HRMM模型中,网格系统的所有静态资源都在LDAP服务器的DIT(目录信息树)中建立了相应的目录项,并用<属性,值>的组合描述各种资源属性。静态资源库选择LDAP可以在性能上带来以下优点:
(1)LDAP专门对读操作进行了优化,在读操作频繁的情况下,可以提高读取效率。
(2)LDAP是跨平台协议,可在任何计算机上使用。从而增加系统对异构网格环境的适应性。
(3)LDAP服务器支持分布式的结构,静态资源库可访问本地或全局的LDAP服务器,并能很方便地实现同步,即增强资源管理的分布性。
3.2 全局资源分配算法
根据任务组中每个任务的静态需求,全局资源分配器在静态资源库中搜索满足需求的集群。在搜索时首先随机选择搜索的起始位置,然后为每个任务分别返回最先发现的N个满足该任务需求的集群,形成候选集群组,并以ClusterList数据结构描述后提交给局部资源分配器;其中ClusterList是用来描述候选集群组的广义表结构,如图3所示。对于任何一个任务,如果只找到K(
4 局部资源分配器
局部资源分配器在动态资源库中搜索候选集群组的动态信息,将这些动态信息和从全局资源分配器获得的静态信息相组合并进行综合分析,最终将任务组中的每个任务分配给最适合的集群。
4.1 动态资源库
动态资源库中的数据以XML描述,带来如下优点:
(1)XML针对更新操作进行了优化。因此,对于需要不断更新的动态资源库,可有效提高效率。
(2)XML和LDAP在存储结构上都是树状结构,可以很方便地相互转化。用XML描述数据,可使动态资源库和基于LDAP的静态资源库具有更好的耦合性。
(3)XML与平台无关,以XML表示的数据可很方便地被其他程序使用。
4.2 局部资源分配策略
局部资源分配器得到候选集群组ClusterList后,从动态资源库获取每个候选集群的动态信息,并将这些动态信息添加到相应集群的静态信息之后,然后将静态资源和动态资源信息相组合,形成集群综合资源信息。设一个集群的动态资源信息为h=[h1,…,hm]T,静态资源信息为t=[t1,…,td]T,其中m和d分别为动态和静态资源描述的字段数,则集群综合信息为υ=[tThT]T=[υ1,…,υp]T,其中P=m+d。如图3所示,集群2,2的综合信息表示为υ2.2。类似地,将任务静态资源需求和动态资源组合,设一个任务的动态资源需求为g=[g1,…,gm]T,静态资源需求为s=[s1,…,sd)T,则综合资源需求为r=[sT gT]T=[r1,…,rp]T。任务i的综合资源需求表示为ri。在确定分配策略时,将只考虑任务的综合资源需求和集群的综合资源信息。
首先,为了任务能够顺利完成,最终被选择的集群必须同时满足任务的静态资源需求和动态资源需求,即满足任务的综合资源需求:
∨i∈[1,n],∨j∈[1,p],Vi,f(i)[j]≥ri[j]
其中,n为任务组中的任务数量,p为向量u/和r的维数,f(i)为任务i的候选集群(即ClusterList中Taski对应的集群链表)中最终被选择集群的序号。因此,首先在ClusterList中删除所有不满足上述条件的集群,并记第i个任务还剩余Ki个符合综合资源需求的候选集群,其中1≤i≤n,1≤Ki≤N。最后,局部资源分配器要为每个任务Taski从Ki个候选集群中选择最合适的一个。综合考虑计算网格的整体资源分配效率,在具体选择集群时采用如下决策机制:
(1)获选集群的综合资源信息应尽量接近相应任务的综合资源需求,避免资源的浪费,即:
(2)获选集群和任务提交节点间的总网络延迟应尽量小,即:
其中tj为全局标识为j的集群的延迟;
(3)HRMM为每个用户规定了计算资源占用量的上限,即:
其中W为该用户对计算资源占用量的上限,且W>0。
综合考虑上述三方面,局部资源分配可以描述为如下二次规划问题:
其中C是可以改变的加权系数,且C>0。由于f(i)为离散值且取值范围有限,因此提出以下优化方法,通过较少的计算来搜索近似的最优解。记候选集群组为ClusterList,则算法表示如下:
STEP 1.对每个任务和候选集群,将静态和动态资源信息组合为综合资源信息;
STEP 2.删除ClusterList中不满足总和资源需求的集群;
STEP 3. ,计算每个集群i,j的局部损失Cost[i,j]:=‖vi,j-ri‖+C·tij;
STEP 4.并行地对Cost的每一列排序,并按从小到大的次序重排ClusterList中的集群链表;
STEP 5.如果,则报告不存在满足条件的解,算法结束;
STEP 6.∨i∈[1,n],并行计算Cost*[i]:=‖vi,k-ri‖+C·ti,k,其中k=aramin(‖vi,j‖<‖vi,1‖);
STEP 7.∨i∈[1,n],并行计算d(i]:=
STEP 8.置b:=argmin(d[j]),并删除ClusterList中任务b的集群链表中前k-1个集群节点;
STEP 9.如果满足则转STEPl0,否则转STEP6;
STEP 10.∨i∈[1,n],将第i个任务分配给ClusterList中相应任务集群链表中的第一个集群,算法结束。
该算法为资源分配查找到了近似的最优解,并在最大程度上利用了资源管理站点所在集群的计算资源,将大部分计算并行化。设资源管理站点所在集群的节点数为户,则该算法在每个节点上的计算复杂度为O(n2n/P)
5 分析与总结
本课题组采用基于分层模型的结构,将资源管理分为四个层次,然后在每个层次对模型的性能做出优化并提出了相应的算法。从总体上,HRMM对一个作业进行资源管理的最大计算复杂度不超过O(n3),是一个优化而有效的网格系统资源管理模型。
全部0条评论
快来发表一下你的评论吧 !