法律状态公告日
法律状态信息
法律状态
2020-07-24
未缴年费专利权终止 IPC(主分类):G06F9/48 授权公告日:20180907 终止日期:20190803 申请日:20150803
专利权的终止
2018-09-07
授权
授权
2018-07-13
著录事项变更 IPC(主分类):G06F9/48 变更前: 变更后: 申请日:20150803
著录事项变更
2018-07-13
专利申请权的转移 IPC(主分类):G06F9/48 登记生效日:20180622 变更前: 变更后: 申请日:20150803
专利申请权、专利权的转移
2016-01-13
实质审查的生效 IPC(主分类):G06F9/48 申请日:20150803
实质审查的生效
2015-12-16
公开
公开
查看全部
技术领域
本发明涉及一种基于贪心策略的启发式云计算任务调度方法。
背景技术
云计算作为并行计算、分布式计算、网格计算等传统技术和分布式数据存储技术、网络编程模型、虚拟化技术等新型技术融合发展的产物,是引领未来信息产业创新的关键战略性技术和手段,对我国发展高新技术产业、冲出国外企业的技术壁垒具有重要的战略意义。云计算的核心思想是利用分布在各地闲散异构的大规模廉价物理资源,整合形成巨大的虚拟资源池,再通过网络将用户提交的计算和存储任务调度到不同的虚拟机上,使得人们能够以极低的成本投入提升计算能力及存储容量,获得较高的服务质量。
云计算任务调度作为云计算平台的重要组成部分,是将用户提交的任务进行合理高效地调度和分配,其实质就是将n个相互独立的任务分配到m个闲散异构的物理资源上,使得总任务完成时间最小并且可用资源得到充分利用,任务调度的效率直接影响到整个云计算平台的整体性能和服务质量。例如,顺序任务调度方法把一组任务顺序分配给一组虚拟机,尽量保证每个虚拟机运行相同数量的任务以平衡负载,但没有考虑任务的需求和虚拟机之间的差别。任务调度问题已经被证明是一个NP完全问题,在mn个可能任务调度的解空间寻找近似最优解,使得总任务的执行时间和负载均衡度最小,其中执行时间最小是为了满足用户的服务质量,负载均衡度最小是为了保证云环境的稳定性。
发明内容
目前,云计算的任务调度方法还未形成统一的标准和规范,但由于该问题的重要性,国内外研究者提出了大量的云计算任务调度方法来计算任务调度的近似最优解,既有传统网格计算中的Min-Min、Max-Min、动态规划等启发式调度方法,也有基于遗传算法、粒子群算法、蚁群算法、免疫算法、差分进化算法、禁忌搜索算法和元胞自动机算法等智能调度方法。
传统启发式调度方法的Min-Min算法采用先易后难的策略,先执行完成时间短的任务,然后执行完成时间长的任务,并采取贪心策略把每个任务优先指派给执行它最早完成的计算资源;Max-Min算法则恰恰相反,采用先难后易和贪心策略,每次选取完成时间最长的任务,优先指派给执行它最早完成的计算资源。传统启发式调度方法以最早完成时间为目标进行调度,有着较好的负载均衡性能,但总任务的实际执行时间并非最少。
智能调度方法通过对任务调度方案的编码,并依据遗传算法、粒子群算法、蚁群算法、免疫算法、差分进化算法和禁忌搜索算法等智能算法思想,在mn大小的解空间多样性搜索和集中性搜索之间建立平衡,最终有效降低任务的执行时间。然而,智能调度方法在进行海量任务调度过程中,易陷入局部最优解,在收敛速度和负载均衡方面的效果有待提高。
2014年中国专利局公告的由孙凌宇、冷明和冷子阳申报,中国专利号为:201410527189.X号《基于禁忌搜索和负载均衡的云计算任务调度方法》的发明专利,针对现有技术方案中的缺陷采用基于禁忌搜索作为指导性邻域搜索优化策略产生候选交换任务对,并采用贪心原则选择收益值大的任务对进行交换,优化任务调度的初始解,从而最大程度地缩短整个任务完成的时间跨度。2015年中国专利局公告的由冷明、孙凌宇和冷子阳申报,中国专利号为:201510441752.6号《基于元胞自动机的负载均衡云计算任务调度方法》的发明专利,针对现有技术方案中的缺陷,基于最早完成时间的启发式优先分配原则求得任务调度的初始解,然后基于元胞自动机优化任务调度初始解,从而最大程度地缩短总任务的最迟完成时间并改善虚拟机的负载均衡性能。
本发明涉及的云计算环境中任务调度仅仅指的是元任务的调度,即元任务之间相互独立,其调度不考虑任务间的数据关联与优先约束关系。此外,云计算环境中依赖任务调度,涉及的依赖任务之间存在先后依赖关系,要求一个任务必须接收到它的所有前驱任务消息后才能开始执行。例如:2014年中国专利局公告的由孙凌宇、冷明和冷子阳申报,中国专利号为:201410137810.1号《基于贪心策略和赋权有向超图的云计算任务调度方法》的发明专利针对依赖任务的调度问题,采用赋权有向超图描述依赖任务的资源需求及依赖关系,并生成相应的赋权有向超图文件;然后启动基于贪心策略的赋权有向超图划分程序,对生成的赋权有向超图进行划分;最后依据赋权有向超图的划分结果构造依赖任务子集,通过MapReduce任务调度模型对其进行映射和调度。2014年中国专利局公告的由冷明、孙凌宇和冷子阳申报,中国专利号为:201410136320.X号《基于多水平划分法和赋权有向超图的云计算任务调度方法》的发明专利针对依赖任务的调度问题,采用赋权有向超图描述任务的资源需求及依赖关系,并生成相应的赋权有向超图文件;然后启动基于多水平划分法的赋权有向超图划分程序,对生成的赋权有向超图进行划分;最后依据赋权有向超图的划分结果构造任务子集,通过MapReduce任务调度模型对其进行映射和调度。此外,2014年中国专利局公告的由孙凌宇、冷明和冷子阳申报,中国专利号为:201410136337.5号《云计算环境中的基于结点属性函数的任务核值计算方法》的发明专利针对中国专利号201410136320.X中多水平划分法的赋权有向超图划分过程中的结点匹配问题,采用赋权有向超图对云计算环境中的任务进行数学建模,描述任务的资源需求及依赖关系,并生成相应的赋权有向超图文件,然后启动赋权有向超图的核值计算程序,采用改进压缩的内存存储格式对赋权有向超图进行存储,并基于结点属性函数计算结点的核值,将所有结点的核值结果存储在赋权有向超图核值文件中。
本发明的目的在于针对已有技术存在的不足,提供一种基于贪心策略的启发式云计算任务调度方法,解决云计算环境下任务调度中执行时间和负载均衡的优化问题,有效地缩短了任务完成的时间跨度,实现了云计算资源的合理利用,为云计算提供高效的任务调度机制。为达到上述目的,本发明的构思如下。
一、运用贪心策略求解和优化任务调度的初始解,既采用贪心策略难易交错地分配任务求得任务调度的初始解,又采用贪心策略选择收益值大的任务对交换优化任务调度初始解的执行时间。
二、在云计算环境下的负载均衡任务调度问题的形式化描述基础上,通过动态规划方法的形式化推导得到最早完成时间的启发式优先分配原则。在求解任务调度的初始解过程中,基于最早完成时间的启发式优先分配原则,采用贪心策略难易交错地分配任务求得任务调度的初始解。
三、在优化任务调度的初始解过程中,引入任务对交换的收益值概念,采用贪心策略选择收益值大的任务对进行交换,从而优化任务调度初始解的执行时间。
根据上述的发明构思,本发明的技术方案是这样实现的:一种基于贪心策略的启发式云计算任务调度方法,其特征在于,具体步骤如下。
步骤1,类型类度分析,输入云计算环境下用户提交的任务,并对其进行类型和类度的分析,确定任务的并行化程度及特点。
步骤2,进程粒度分解,根据用户任务的并行化程度及特点,以及云计算的资源共享分配方式等独特性质,对用户任务按照进程粒度级别进行分解。
步骤3,资源特性分析,根据云计算的资源共享分配方式等独特性质,对分解后的任务进行资源特性分析。
步骤4,求解任务调度初始解,依据对任务资源特性的分析结果,建立描述其资源需求模型,进而基于最早完成时间的启发式优先分配原则,采用贪心策略难易交错地分配任务求得任务调度的初始解。
步骤5,优化任务调度初始解,基于贪心策略选择收益值大的任务对进行交换,优化任务调度初始解,缩短总任务的最迟完成时间并改善虚拟机的负载均衡性能,得到任务调度的优化解。
步骤6,任务映射调度,通过MapReduce任务调度模型,对任务调度的优化解进行映射和调度,实现在云计算环境中的任务提交与执行,有效地均衡云计算平台的负载和缩短整个任务完成的时间跨度。
上述的步骤4中,所述的基于最早完成时间的启发式优先分配原则,采用贪心策略难易交错地分配任务求解任务调度初始解的步骤如下。
步骤4.1,基于资源需求模型给出的任务指令长度和虚拟机每秒执行指令条数,计算任务集合T中n个任务在虚拟机集合VM的m个虚拟机上的预期执行时间,得到n×m的预期执行时间矩阵C,其中预期执行时间Cij表示第i个任务在第j个虚拟机上执行的时间,等于第i个任务的指令长度除以第j个虚拟机的每秒执行指令条数。
步骤4.2,初始化m个虚拟机的当前负载数组vt[1..m]为零,即在开始分配任务之前任何虚拟机的当前负载为零。
步骤4.3,按照最大任务和最小任务交叉访问的顺序,难易交错地访问任务集合T中的每个任务,基于最早完成时间的启发式优先分配原则,依次将第k个任务将分配给具有最早完成时间的虚拟机上,直至所有的任务分配结束后得到任务调度的初始解。
上述的步骤5中,所述的优化任务调度初始解的步骤如下。
步骤5.1,初始化循环计数器COUNT为0。
步骤5.2,基于贪心策略选择收益值大的任务对交换,直至循环计数器COUNT达到设定阈值。
上述的步骤4.3中,所述的基于最早完成时间的启发式优先分配原则将第k个任务分配给具有最早完成时间的虚拟机上步骤如下。
步骤4.3.1,依据m个虚拟机的当前负载数组vt[1..m]和预期执行时间矩阵C,计算出第k个任务tk分配至各个虚拟机相应的时间跨度makespan,其中第j个虚拟机的时间跨度为第j个虚拟机的当前负载数组vt[j]与第k个任务tk在第j个虚拟机的执行时间之和。
步骤4.3.2,基于最早完成时间的启发式优先分配原则,找出时间跨度最小的虚拟机vmx。
步骤4.3.3,分配任务tk至虚拟机vmx,更新vmx虚拟机负载vt[x]为第x个虚拟机的当前负载数组vt[x]与第k个任务tk在第x个虚拟机的执行时间ckx之和。
上述的步骤5.2中,所述的基于贪心策略选择收益值大的任务对交换步骤如下。
步骤5.2.1,初始化n个任务的禁忌数组tabu[1..n]为零,即允许所有的任务被交换。
步骤5.2.2,遍历每个任务,读取当前任务tl的禁忌状态;如果当前任务tl的禁忌标志为1,则表明其不允许被交换,跳过步骤5.2.3、5.2.4、5.2.5、5.2.6和5.2.7,继续循环执行步骤5.2.2遍历下一个任务;否则表明任务tl允许被交换,修改任务tl的禁忌标志tabu[l]=1,执行步骤5.2.3。
步骤5.2.3,读取当前任务tl的状态,判断所分配虚拟机的负载vmm是否大于平均负载;如果大于平均负载,则在m个虚拟机的负载数组vt中,查找出负载最小的虚拟机vmy指派给虚拟机vmn;如果小于等于平均负载,查找出负载最大的虚拟机vmx指派给虚拟机vmn;计算出虚拟机vmn中所有允许被交换的任务与当前任务交换之后的收益值。
步骤5.2.4,采用贪心原则选择交换收益值最大的任务候选对(tl,tk),交换任务对(tl,tk)。
步骤5.2.5,交换任务对(tl,tk),即任务tk被交换至虚拟机vmm上执行且任务tl被交换至虚拟机vmn上执行;修改任务tk的禁忌标志tabu[k]=1。
步骤5.2.6,更新vmm虚拟机负载vt[m]=vt[m]+ckm-clm。
步骤5.2.7,更新vmn虚拟机负载vt[n]=vt[n]+cln-ckn。
本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点。
1、提高了任务调度的效率。
本发明的基于贪心策略的启发式云计算任务调度方法,一定程度解决了云计算环境下任务调度中执行时间和负载均衡的优化问题。针对云计算负载均衡任务调度问题运用贪心策略求解和优化任务调度的初始解,既采用贪心策略难易交错地分配任务求得任务调度的初始解,又采用贪心策略选择收益值大的任务对交换优化任务调度初始解的执行时间,从而有效地提高了任务调度的效率,缩短了任务完成的时间跨度,实现了云计算资源的合理利用,为云计算提供高效的任务调度机制。云计算负载均衡任务调度初始解的计算和优化作为云计算任务调度机制的关键环节,其结果对整个云计算环境的运行效率有着重要的影响,可有效地减少资源空闲时间,提高资源的利用效益。
附图说明。
通过以下对本发明基于贪心策略的启发式云计算任务调度方法的实例结合其附图的描述,可以进一步理解本发明的目的、具体结构特征和优点。
图1是基于贪心策略的启发式云计算任务调度流程图。
图2是采用贪心策略难易交错地分配任务求解任务调度初始解流程图。
图3是基于贪心策略选择收益值大的任务对交换流程图。
具体实施方式。
为了能够更清楚地理解本发明基于贪心策略的启发式云计算任务调度方法的技术内容,特举以下实例详细说明。
本实施例的基于贪心策略的启发式云计算任务调度流程图如图1所示。在云计算环境下,输入用户提交的任务101,对用户任务进行类型和类度的分析102,确定任务的并行化程度和特点;根据用户任务的并行化程度和特点,以及云计算的资源共享分配方式等独特性质,对用户任务按照进程粒度级别进行分解103;进而对分解后的任务进行资源特性分析104;依据对任务资源特性的分析结果,建立描述其资源需求,进而基于该最早完成时间的启发式优先分配原则,采用贪心策略难易交错地分配任务求得任务调度的初始解105;基于贪心策略选择收益值大的任务对进行交换,优化任务调度初始解,缩短总任务的最迟完成时间并改善虚拟机的负载均衡性能,得到任务调度的优化解106;通过MapReduce任务调度模型,对任务调度的优化解进行映射和调度107;在云计算环境中,对调度完成的任务提交与执行108,从而有效地缩短整个任务完成的时间跨度并均衡云计算平台的负载。
本发明阐述了云计算环境下的负载均衡任务调度问题的相关定义如下。
定义1:假设云计算环境下,用户提交作业分解成n个任务的集合,且任务之间相互独立,其调度不需要考虑任务间的数据关联与优先约束关系,定义任务集合T={t1,…,ti,…,tn},其中ti为分解成的第i个任务(i=1,2,…,n),n为分解后的任务数量,且第i个任务ti的总指令长度为MIi。
定义2:假设云计算环境下,有m个虚拟资源的集合参加任务调度,且虚拟资源通过虚拟机方式提供,即虚拟资源为云计算集群中的虚拟机。定义虚拟机集合VM={vm1,…,vmj,…,vmm},其中vmj为第j个虚拟机资源(j=1,2,…,m),m为虚拟机数量,且第j个虚拟机vmj的指令执行速度(每秒执行指令条数)为MIPSj。
定义3:假设分解后的任务数量n不小于虚拟机资源数量m(n≥m),每个任务只能分配给一个虚拟机执行,且在某一时间段一个虚拟机只能执行一个任务,不能同时执行多个任务。定义n个不同的任务调度到m个不同的虚拟机上的预期执行时间C是一个n×m的矩阵,其中Cij表示第i个任务ti在第j个虚拟机vmj上执行的时间,且cij=MIi/MIPSj,即预期执行时间Cij为任务ti的总指令长度MIi除以虚拟机vmj的每秒执行指令条数MIPSj。
定义4:定义n个不同任务T={t1,…,ti,…,tn}调度到m个不同虚拟机VM={vm1,…,vmj,…,vmm}上所有可能的任务分配方案集为
定义5:对于某任务分配方案X,定义虚拟机的当前负载vt(k-1)j为当前状态下(前k-1个任务分配完毕的状态),分配给第j个虚拟机vmj的所有任务所需执行时间,即
定义6:对于某任务分配方案X,定义虚拟机的负载VTj为分配给第j个虚拟机vmj所有任务的预期完成时间,即
定义7:定义n个不同任务调度到m个不同虚拟机上的平均负载,等于n个任务的总指令长度除以m个虚拟机指令执行速度累加和,即总任务最优完成时间>
定义8:对于某任务分配方案X,定义虚拟机的负载均衡度
定义9:对于n个不同任务T={t1,…,ti,…,tn}调度到m个不同虚拟机VM={vm1,…,vmj,…,vmm}的任务调度问题是寻找分配方案X,使得该分配方案中虚拟机的任务最迟完成时间最早
根据定义9,对于n个不同任务分配到m个不同虚拟机的任务调度问题是寻找分配方案,使得虚拟机的最长处理时间TS(n,m)最短且负载均衡度LBX最小。当只有一个任务的调度问题时,
定理1:对于k个任务的调度问题,假设第k个任务tk分配给第z个虚拟机vmz,即第z个虚拟机vmz的时间跨度makespankz=vt(k-1)z+ckz,且>则满足递推关系>
证明:由定义9给出的TS(n,m)定义可知,>>
由定理1可得,第k个任务tk将分配给具有最早完成时间的虚拟机vmz,即最早完成时间的启发式优先分配原则。
本实施例的采用贪心策略难易交错地分配任务求解任务调度初始解流程图如图2所示,步骤如下。
A01,基于资源需求模型给出的任务指令长度和虚拟机每秒执行指令条数,计算任务集合T中n个任务在虚拟机集合VM的m个虚拟机上的预期执行时间,得到n×m的预期执行时间矩阵C,其中预期执行时间Cij表示第i个任务在第j个虚拟机上执行的时间,等于第i个任务的指令长度除以第j个虚拟机的每秒执行指令条数。
A02,初始化m个虚拟机的当前负载数组vt[1..m]为零,即在开始分配任务之前任何虚拟机的当前负载为零。
A03,按照最大任务和最小任务交叉访问的顺序,难易交错地访问任务集合T中的每个任务,并执行步骤A04、A05和A06,基于最早完成时间的启发式优先分配原则,依次将第k个任务将分配给具有最早完成时间的虚拟机上,直至所有的任务分配结束后得到任务调度的初始解。
A04,依据m个虚拟机的当前负载数组vt[1..m]和预期执行时间矩阵C,计算出第k个任务tk分配至各个虚拟机相应的时间跨度makespan,其中第j个虚拟机的时间跨度为第j个虚拟机的当前负载数组vt[j]与第k个任务tk在第j个虚拟机的执行时间之和。
A05,基于最早完成时间的启发式优先分配原则,找出时间跨度最小的虚拟机vmx。
A06,分配任务tk至虚拟机vmx,更新vmx虚拟机负载vt[x]为第x个虚拟机的当前负载数组vt[x]与第k个任务tk在第x个虚拟机的执行时间ckx之和。
定义10:对于某分配方案X,假设vmx为负载最大的虚拟机,vmy为负载最小的虚拟机,即
本实施例的基于贪心策略选择收益值大的任务对交换流程图如图3所示,步骤如下。
B01,初始化任务集合T中n个任务的禁忌数组tabu[1..n]为零,即允许所有的任务被交换。
B02,遍历每个任务,读取当前任务tl的禁忌状态;如果当前任务tl的禁忌标志为1,则表明其不允许被交换,跳过步骤B03、B04、B05、B06和B07,继续循环执行步骤B02遍历下一个任务;否则表明任务tl允许被交换,修改任务tl的禁忌标志tabu[l]=1,执行步骤B03。
B03,读取当前任务tl的状态,判断所分配虚拟机的负载vmm是否大于平均负载;如果大于平均负载,则在m个虚拟机的负载数组vt中,查找出负载最小的虚拟机vmy指派给虚拟机vmn;如果小于等于平均负载,查找出负载最大的虚拟机vmx指派给虚拟机vmn;计算出虚拟机vmn中所有允许被交换的任务与当前任务交换之后的收益值。
B04,采用贪心原则选择交换收益值最大的任务候选对(tl,tk),交换任务对(tl,tk)。
B05,交换任务对(tl,tk),即任务tk被交换至虚拟机vmm上执行且任务tl被交换至虚拟机vmn上执行;修改任务tk的禁忌标志tabu[k]=1。
B06,更新vmm虚拟机负载vt[m]=vt[m]+ckm-clm。
B07,更新vmn虚拟机负载vt[n]=vt[n]+cln-ckn。
机译: 基于遗传算法和初始种群选择启发式的电动汽车充电任务调度方法和系统
机译: 基于启发式任务调度的方法和系统
机译: 基于启发式任务调度的方法和系统