计算网格资源管理优化技术和相关算法研究
发布时间:2008/5/29 0:00:00 访问次数:301
摘要:在对现有的网格资源管理模型进行分析和比较的基础上,提出了一种基于分层结构的具体模型hrmm,将资源管理分为作业并行分析、全局资源分配、局部资源分配和本地资源管理四个层次,并为每个层次设计了相应的优化策略和算法。该模型对资源管理的最大计算复杂度为o(n2)~o(n3),是一个优化而有效的网格资源管理模型。
关键词:计算网格 资源管理 资源分配 作业 资源调度 globus toolkit
计算网格是近年兴起的一种重要的并行分布式计算技术,其关键技术之一是对网格中的资源进行管理。网格中的资源具有广域分布、异构和动态的特性,使得网格资源管理变得很复杂。当前还没有一种模型能够处理所有的网格应用需求。目前,网格资源管理模型主要分为分层模型、抽象所有者模型和经济/市场模型三类。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 作业的最大并行度划分
摘要:在对现有的网格资源管理模型进行分析和比较的基础上,提出了一种基于分层结构的具体模型hrmm,将资源管理分为作业并行分析、全局资源分配、局部资源分配和本地资源管理四个层次,并为每个层次设计了相应的优化策略和算法。该模型对资源管理的最大计算复杂度为o(n2)~o(n3),是一个优化而有效的网格资源管理模型。
关键词:计算网格 资源管理 资源分配 作业 资源调度 globus toolkit
计算网格是近年兴起的一种重要的并行分布式计算技术,其关键技术之一是对网格中的资源进行管理。网格中的资源具有广域分布、异构和动态的特性,使得网格资源管理变得很复杂。当前还没有一种模型能够处理所有的网格应用需求。目前,网格资源管理模型主要分为分层模型、抽象所有者模型和经济/市场模型三类。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 作业的最大并行度划分