基于平稳分布概率的作业调度方法、装置、终端和介质与流程

文档序号:18163488发布日期:2019-07-13 09:27阅读:270来源:国知局
基于平稳分布概率的作业调度方法、装置、终端和介质与流程
本发明涉及云计算调度
技术领域
,特别是涉及一种基于平稳分布概率的作业调度方法、装置、终端和介质。
背景技术
:对于复杂的工作流,如科学计算工作流和大数据分析工作流等,当前有一个增长的趋势是将它们都转移到云环境中去执行。用户将他们的工作流处理请求连同预算一起提交到云端。每个工作流有多个计算任务,任务间存在优先级约束,一般单个工作流用有向无环图(dag,directedacylicgraph)表示。一个任务有最少计算资源的需求,包括cpu处理能力以及内存需求。云环境中的工作流管理系统综合考虑用户请求、虚拟机处理能力,以及用户预算,将处理请求分配给合适的虚拟机(vm,virtualmachine)。调度方案需要同时满足用户的服务水平协议(sla,servicelevelagreement),以及云提供商的优化需求。然而,当前的工作流管理系统不足以调度具有不同需求和异构虚拟机的复杂工作流。这导致了处理延迟长,造成云端资源的浪费和投资回报率的降低。问题的难点在于,云环境中用户支付的预算和享有的服务质量水平呈正相关性,并且工作流的任务之间存在复杂的优先级约束。每个任务都有特定的虚拟机资源需求,而云环境中虚拟机的资源是异构且有限的,这就导致了并行任务之间存在虚拟机的竞争。优先级约束导致子任务的开始执行时间不得超前于父任务的结束执行时间,而受限于整体的预算,父任务如果使用过多的预算,虽然可以提高单个任务的处理时间,但是后继执行任务可能没有足够的费用选择最合适的虚拟机,导致整体的执行完成时间(makespan)变慢。云计算具有虚拟化、高可靠性、资源异构等特性,对用户而言,需要支付的资源使用费用和享有的服务质量水平成正比,这就导致用户并不总是希望使用服务质量高的资源以求尽快的完成任务;有时,他们更倾向于选择那些能够满足其需求的费用较低的资源。目前已有不少基于云计算的调度方法,虽然这些方法在用户预算比较充足时,往往取得较好的效果。但是当预算比较紧张时,可能找不到一个可执行的方案,导致调度成功率不高。云计算具有虚拟化、高可靠性、资源异构等特性,如何有效地协调和分配云环境中的任务,提高资源的使用效率并且保持均衡的资源负载,以有效降低系统的计算开销和作业执行时间,是用户和云服务供应商共同关注的问题。在即付即用的商业云环境中,为内部任务具有复杂优先级约束的工作流设计作业调度算法,使工作流在预算及虚拟机资源有限的情况下,成功且快速的完成处理请求,是亟需解决的问题。技术实现要素:鉴于以上所述现有技术的缺点,本申请的目的在于提供一种基于平稳分布概率的作业调度方法、装置、终端和介质,以解决现有技术中因信道信息不准确带来的影响。为实现上述目的及其他相关目的,本申请提供一种平稳分布概率的作业调度方法,所述方法包括:构建基于dag图的作业调度模型,并设定所述作业调度模型的系统参数;在检测到工作流后,基于马尔科夫链平稳概率加权排序方法得到对应所述任务的排序列表;针对各所述任务预留出最小可执行预算,依据额外预算与需求的比例将所述额外预算分割至各所述任务;按照所述排序列表中各所述任务的排列顺序,由高至低依次以各所述任务重新分配后的预算值为依据分配至一虚拟机,直至全部所述任务分配完成以退出。于本申请的一实施例中,所述基于dag图的作业调度模型的构建方法包括:所述dag图的作业调度模型记为:g=(w,j,v,l);其中,w表示工作流集合,记为w={1,2,…,w};任意一所述工作流w包含一个或多个任务;j表示任务集合,记为:j={1,2,…,j};任意一所述任务j∈j只属于一个所述工作流w∈w;v表示虚拟机集合,记为:v={1,2,…,v};虚拟机k∈v表示所述虚拟机集合v中的任意一个;l表示所述任务之间有向边集合,所述任务对应为所述dag图中各节点,各所述节点之间的执行先后顺序和数据传递依赖关系以矩阵表示为当任务i依赖于任务j时,lij=1,并且所述任务i的开始运行时间不早于所述任务j的完成时间;当任务i不依赖于任务j时,lij=0。于本申请的一实施例中,所述基于dag图的作业调度模型的构建方法还包括:任意一所述任务j所需的最小cpu计算能力记为cj,所需的最小内存大小记为mj;任意一所述虚拟机k的虚拟cpu计算能力记为ck,所需的最小内存大小记为mk;依据所述作业调度模型构建离散时间模型,将任务时间分解为时隙序列记为t:{1,2,…,t};针对所述工作流集合w所支付的预算记为:d;使用任意一所述虚拟机k的单位时间成本记为:pk;执行任意一所述任务j时在cpu上运行所需要花费的cpu小时数记为:hj;执行任意一所述任务j时在所述虚拟机k上运行需要的运行时间记为:rjk=hj/ck;执行任意一所述任务j时在所述虚拟机k上运行花费的成本记为:pkrjk;在网络传输速率稳定的环境下,所述任务之间的数据传输时间视为常量。于本申请的一实施例中,所述设定所述作业调度模型的系统参数的方法包括:以为二进制变量,设定当且仅当所述任务j分配到所述虚拟机k,且在时隙t开始运行时,对于每个所述任务j,设定只有一个值为1,则相应表达式为:于本申请的一实施例中,所述设定所述作业调度模型的系统参数的方法还包括:设定所述任务j的最小资源需求需满足:于本申请的一实施例中,所述设定所述作业调度模型的系统参数的方法还包括:设定各所述任务之间的依赖关系的优先级约束关系为:其中,在lij=1时有效;表示所述任务j的执行开始时间;表示所述任务j的执行完成时间。于本申请的一实施例中,所述设定所述作业调度模型的系统参数的方法还包括:假设所有所述虚拟机k在运行过程中没有过载和占用,设定在任意时刻,任意一所述虚拟机k上最多只有一个所述任务j运行,则相应表达式为:其中,所述任务i的执行占据时隙t,所述任务i的开始时间取自{max(0,t-rik+1),…,t}集合中的值,则相应表达式为:于本申请的一实施例中,所述设定所述作业调度模型的系统参数的方法还包括:设定变量d为所有任务完成时间的上限,则相应表达式为:于本申请的一实施例中,所述设定所述作业调度模型的系统参数的方法还包括:设定使用所述虚拟机的费用不超过针对所述工作流集合w所支付的预算d,则相应表达式为:于本申请的一实施例中,所述在检测到工作流后,依据各所述工作流中一或多个任务在虚拟机上的执行时间得到对应所述任务的排序列表的方法包括:依据所述任务的所有后继子任务集合计算马尔科夫链转移概率;由所述马尔科夫链转移概率转移概率计算马尔科夫链稳态概率;根据所述马尔科夫链稳态概率计算所述任务对应的升秩值;依据各所述任务对应的所述升秩值进行非递增排序,以得到对应各所述任务的排序列表tlist。于本申请的一实施例中,所述马尔科夫链转移概率的计算公式为:其中,pij表示马尔科夫链转移概率;succ(j)表示任务j的所有后继子任务的集合;lij=1表示任务i依赖于任务j;依据所述马尔科夫链转移概率,所述马尔科夫链稳态概率的计算公式为:∑j∈jπj=1;其中,πj表示马尔科夫链稳态概率;succ(j)表示任务j的所有后继子任务的集合;j表示任务集合。于本申请的一实施例中,所述升秩值的计算公式为:其中,wj表示升秩值;jexit表示所述工作流中的退出任务;succ(j)表示所述任务j的所有后继子任务的集合;πj表示马尔科夫链稳态概率。于本申请的一实施例中,所述针对各所述任务预留出最小可执行预算,依据额外预算与需求的比例将所述额外预算分割至各所述任务的方法包括:针对各所述任务预留出最小可执行预算;依据总预算与最低预算得到额外预算,依据最高预算与最低预算得到费用需求;根据所述额外预算与所述费用需求的比例得到所述额外预算与需求的比例;依据所述额外预算与需求的比例,将所述额外预算分割至各所述任务,以得到对应各所述任务的初始预算,并将当前剩余预算设为0。于本申请的一实施例中,所述初始预算的计算公式为:bl=(d-dmin)/(dmax-dmin);其中,bl表示额外预算与需求的比例;d表示针对所述工作流集合所支付的预算记为;dmin是使用最便宜调度需要的费用,dmax是使用无预算限制时,常规升秩排序方法调度所需要的费用。和分别是任务j在可用虚拟机集合中产生的最便宜和最昂贵的调度;表示所述任务j的初始预算。于本申请的一实施例中,所述按照所述排序列表中各所述任务的排列顺序,由高至低依次以各所述任务重新分配后的预算值为依据分配至一虚拟机,直至全部所述任务分配完成以退出的方法包括:将所述排序列表中排列顺序最高的所述任务删除;从排列顺序最高的所述任务对应的可用虚拟机集合中选择一虚拟机,并将排列顺序最高的所述任务分配到所述虚拟机上;更新当前剩余预算;判断所述排序列表是否为空;若不为空,则重复上述各步骤;若为空,则退出。于本申请的一实施例中,所述从排列顺序最高的所述任务对应的可用虚拟机集合中选择一虚拟机,并将排列顺序最高的所述任务分配到所述虚拟机上的方法包括:其中,pkrjk表示为执行所述任务j时在所述虚拟机k上运行花费的成本;表示所述任务j的初始预算;dremain表示为当前剩余预算;vj表示可用虚拟机集合。于本申请的一实施例中,当所述从排列顺序最高的所述任务对应的可用虚拟机集合有多个时,选择执行费用最少或所需运行时间最短的所述虚拟机。于本申请的一实施例中,所述更新当前剩余预算的方法包括:其中,dremain表示为当前剩余预算;表示所述任务j的初始预算;pkrjk表示为执行所述任务j时在所述虚拟机k上运行花费的成本。为实现上述目的及其他相关目的,本申请提供一种基于平稳分布概率的作业调度装置,其特征在于,所述装置包括:预设模块,用于构建基于dag图的作业调度模型,并设定所述作业调度模型的系统参数;处理模块;用于在检测到工作流后,基于马尔科夫链平稳概率加权排序方法得到对应所述任务的排序列表;针对各所述任务预留出最小可执行预算,依据额外预算与需求的比例将所述额外预算分割至各所述任务;按照所述排序列表中各所述任务的排列顺序,由高至低依次以各所述任务重新分配后的预算值为依据分配至一虚拟机,直至全部所述任务分配完成以退出。于本申请的一实施例中,所述预设模块用于构建基于dag图的作业调度模型的功能包括:所述dag图的作业调度模型记为:g=(w,j,v,l);其中,w表示工作流集合,记为w={1,2,…,w};任意一所述工作流w包含一个或多个任务;j表示任务集合,记为:j={1,2,…,j};任意一所述任务j∈j只属于一个所述工作流w∈w;v表示虚拟机集合,记为:v={1,2,…,v};虚拟机k∈v表示所述虚拟机集合v中的任意一个;l表示所述任务之间有向边集合,所述任务对应为所述dag图中各节点,各所述节点之间的执行先后顺序和数据传递依赖关系以矩阵表示为当任务i依赖于任务j时,lij=1,并且所述任务i的开始运行时间不早于所述任务j的完成时间;当任务i不依赖于任务j时,lij=0。于本申请的一实施例中,所述预设模块用于构建基于dag图的作业调度模型的功能还包括:任意一所述任务j所需的最小cpu计算能力记为cj,所需的最小内存大小记为mj;任意一所述虚拟机k的虚拟cpu计算能力记为ck,所需的最小内存大小记为mk;依据所述作业调度模型构建离散时间模型,将任务时间分解为时隙序列记为t:{1,2,…,t};针对所述工作流集合w所支付的预算记为:d;使用任意一所述虚拟机k的单位时间成本记为:pk;执行任意一所述任务j时在cpu上运行所需要花费的cpu小时数记为:hj;执行任意一所述任务j时在所述虚拟机k上运行需要的运行时间记为:rjk=hj/ck;执行任意一所述任务j时在所述虚拟机k上运行花费的成本记为:pkrjk;在网络传输速率稳定的环境下,所述任务之间的数据传输时间视为常量。于本申请的一实施例中,所述预设模块用于设定所述作业调度模型的系统参数的功能包括:以为二进制变量,设定当且仅当所述任务j分配到所述虚拟机k,且在时隙t开始运行时,对于每个所述任务j,设定只有一个值为1,则相应表达式为:于本申请的一实施例中,所述预设模块用于设定所述作业调度模型的系统参数的功能还包括:设定所述任务j的最小资源需求需满足:于本申请的一实施例中,所述预设模块用于设定所述作业调度模型的系统参数的功能还包括:设定各所述任务之间的依赖关系的优先级约束关系为:其中,在lij=1时有效;表示所述任务j的执行开始时间;表示所述任务j的执行完成时间。于本申请的一实施例中,所述预设模块用于设定所述作业调度模型的系统参数的功能还包括:假设所有所述虚拟机k在运行过程中没有过载和占用,设定在任意时刻,任意一所述虚拟机k上最多只有一个所述任务j运行,则相应表达式为:其中,所述任务i的执行占据时隙t,所述任务i的开始时间取自{max(0,t-rik+1),…,t}集合中的值,则相应表达式为:于本申请的一实施例中,所述预设模块用于设定所述作业调度模型的系统参数的功能还包括:设定变量d为所有任务完成时间的上限,则相应表达式为:于本申请的一实施例中,所述预设模块用于设定所述作业调度模型的系统参数的功能还包括:设定使用所述虚拟机的费用不超过针对所述工作流集合w所支付的预算d,则相应表达式为:于本申请的一实施例中,所述处理模块用于在检测到工作流后,基于马尔科夫链平稳概率加权排序方法得到对应所述任务的排序列表的功能包括:依据所述任务的所有后继子任务集合计算马尔科夫链转移概率;由所述马尔科夫链转移概率转移概率计算马尔科夫链稳态概率;根据所述马尔科夫链稳态概率计算所述任务对应的升秩值;依据各所述任务对应的所述升秩值进行非递增排序,以得到对应各所述任务的排序列表tlist。于本申请的一实施例中,所述马尔科夫链转移概率的计算公式为:其中,pij表示马尔科夫链转移概率;succ(j)表示任务j的所有后继子任务的集合;lij=1表示任务i依赖于任务j;依据所述马尔科夫链转移概率,所述马尔科夫链稳态概率的计算公式为:∑j∈jπj=1;其中,πj表示马尔科夫链稳态概率;succ(j)表示任务j的所有后继子任务的集合;j表示任务集合。于本申请的一实施例中,所述升秩值的计算公式为:其中,wj表示升秩值;jexit表示所述工作流中的退出任务;succ(j)表示所述任务j的所有后继子任务的集合;πj表示马尔科夫链稳态概率。于本申请的一实施例中,所述处理模块用于针对各所述任务预留出最小可执行预算,依据额外预算与需求的比例将所述额外预算分割至各所述任务的功能包括:针对各所述任务预留出最小可执行预算;依据总预算与最低预算得到额外预算,依据最高预算与最低预算得到费用需求;根据所述额外预算与所述费用需求的比例得到所述额外预算与需求的比例;依据所述额外预算与需求的比例,将所述额外预算分割至各所述任务,以得到对应各所述任务的初始预算,并将当前剩余预算设为0。于本申请的一实施例中,所述初始预算的计算公式为:bl=(d-dmin)/(dmax-dmin);其中,bl表示额外预算与需求的比例;d表示针对所述工作流集合所支付的预算记为;dmin是使用最便宜调度需要的费用,dmax是使用无预算限制时,常规升秩排序方法调度所需要的费用。和分别是任务j在可用虚拟机集合中产生的最便宜和最昂贵的调度;表示所述任务j的初始预算。于本申请的一实施例中,所述处理模块用于按照所述排序列表中各所述任务的排列顺序,由高至低依次以各所述任务重新分配后的预算值为依据分配至一虚拟机,直至全部所述任务分配完成以退出的功能包括:将所述排序列表中排列顺序最高的所述任务删除;从排列顺序最高的所述任务对应的可用虚拟机集合中选择一虚拟机,并将排列顺序最高的所述任务分配到所述虚拟机上;更新当前剩余预算;判断所述排序列表是否为空;若不为空,则重复上述各步骤;若为空,则退出。于本申请的一实施例中,所述从排列顺序最高的所述任务对应的可用虚拟机集合中选择一虚拟机,并将排列顺序最高的所述任务分配到所述虚拟机上的功能包括:其中,pkrjk表示为执行所述任务j时在所述虚拟机k上运行花费的成本;表示所述任务j的初始预算;dremain表示为当前剩余预算;vj表示可用虚拟机集合。于本申请的一实施例中,当所述从排列顺序最高的所述任务对应的可用虚拟机集合有多个时,选择执行费用最少或所需运行时间最短的所述虚拟机。于本申请的一实施例中,所述更新当前剩余预算的功能包括:其中,dremain表示为当前剩余预算;表示所述任务j的初始预算;pkrjk表示为执行所述任务j时在所述虚拟机k上运行花费的成本。为实现上述目的及其他相关目的,本申请提供一种终端,所述终端包括:存储器、处理器、及通信器;所述存储器用于存储计算机程序;所述处理器运行计算机程序实现如上所述的基于平稳分布概率的作业调度方法;所述通信器用于与外部设备通信。为实现上述目的及其他相关目的,本申请提供一种计算机存储介质,存储有计算机程序,所述计算机程序被运行时执行如上所述的基于平稳分布概率的作业调度方法。综上所述,本申请的一种基于平稳分布概率的作业调度方法、装置、终端和介质。通过构建基于dag图的作业调度模型,并设定所述作业调度模型的系统参数;在检测到工作流后,基于马尔科夫链平稳概率加权排序方法得到对应所述任务的排序列表;针对各所述任务预留出最小可执行预算,依据额外预算与需求的比例将所述额外预算分割至各所述任务;按照所述排序列表中各所述任务的排列顺序,由高至低依次以各所述任务对应的所述初始预算为依据分配至一虚拟机,直至全部所述任务分配完成以退出。具有以下有益效果:能够既保证了工作流调度存在可行解,又使得优先级较低的任务分配到更多的预算,在虚拟机选择方面有更大的灵活性,从而缩短工作流的执行完成时间。与现有技术相比,在大部分情况下,本申请的平均调度性能得到提升,预算分布更平衡,且采用名次打分法进行评价时,本申请具有更好的性能表现。附图说明图1显示为本申请于一实施例中的dag图。图2显示为本申请于一实施例中的基于平稳分布概率的作业调度方法的流程示意图。图3显示为本申请于一实施例中的工作流包含12个任务的dag图。图4a显示为本申请于一实施例中的任务量为14的gaussian消除工作流的归一化完成时间的模型示意图。图4b显示为本申请于一实施例中的任务量为665的gaussian消除工作流的归一化完成时间的模型示意图。图4c显示为本申请于一实施例中的任务量为1175的gaussian消除工作流的归一化完成时间的模型示意图。图4d显示为本申请于一实施例中的任务量为1829的gaussian消除工作流的归一化完成时间的模型示意图。图5a显示为本申请于一实施例中的当可用虚拟机数量受限时四种算法应用在gaussian工作流调度上成功率的模型示意图。图5b显示为本申请于一实施例中的当预算有限时四种算法应用在gaussian工作流调度上成功率的模型示意图。图6显示为本申请于一实施例中的基于平稳分布概率的作业调度装置的模型示意图。图7显示为本申请于一实施例中的终端的结构示意图。具体实施方式以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面以附图为参考,针对本申请的实施例进行详细说明,以便本申请所属
技术领域
的技术人员能够容易地实施。本申请可以以多种不同形态体现,并不限定于此处说明的实施例。为了明确说明本申请,省略与说明无关的部件,对于通篇说明书中相同或类似的构成要素,赋予了相同的参照符号。在通篇说明书中,当说某部件与另一部件“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部件“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素排除在外,而是意味着可以还包括其它构成要素。当说某部件在另一部件“之上”时,这可以是直接在另一部件之上,但也可以在其之间伴随着其它部件。当对照地说某部件“直接”在另一部件“之上”时,其之间不伴随其它部件。虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一接口及第二接口等描述。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“a、b或c”或者“a、b和/或c”意味着“以下任一个:a;b;c;a和b;a和c;b和c;a、b和c”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。此处使用的专业术语只用于言及特定实施例,并非意在限定本申请。此处使用的单数形态,只要语句未明确表示出与之相反的意义,那么还包括复数形态。在说明书中使用的“包括”的意义是把特定特性、区域、整数、步骤、作业、要素及/或成份具体化,并非排除其它特性、区域、整数、步骤、作业、要素及/或成份的存在或附加。表示“下”、“上”等相对空间的术语可以为了更容易地说明在附图中图示的一部件相对于另一部件的关系而使用。这种术语是指,不仅是在附图中所指的意义,还包括使用中的装置的其它意义或作业。例如,如果翻转附图中的装置,曾说明为在其它部件“下”的某部件则说明为在其它部件“上”。因此,所谓“下”的示例性术语,全部包括上与下方。装置可以旋转90°或其它角度,代表相对空间的术语也据此来解释。虽然未不同地定义,但包括此处使用的技术术语及科学术语,所有术语均具有与本申请所属
技术领域
的技术人员一般理解的意义相同的意义。普通使用的字典中定义的术语追加解释为具有与相关技术文献和当前提示的内容相符的意义,只要未进行定义,不得过度解释为理想的或非常公式性的意义。dag(directedacyclicgraph)是指有向无环图,所谓有向无环图是指任意一条边有方向,且不存在环路的图。dag是一个有向图,它具有拓扑顺序,顶点的序列使得每个边在序列中都是由前到后定向的。如果有一个非有向无环图,且a点出发向b经c可回到a,形成一个环。将从c到a的边方向改为从a到c,则变成有向无环图。有向无环图的生成树个数等于入度非零的节点的入度积。如图1所示,展示为dag图的示意图。如图中所示,包含了1-15个任务对应的节点。图中箭头方向表示拓扑顺序,节点之间遵循箭头方向的执行先后顺序和数据传递依赖关系。承上所述,云计算具有虚拟化、高可靠性、资源异构等特性,如何有效地协调和分配云环境中的任务,提高资源的使用效率并且保持均衡的资源负载,以有效降低系统的计算开销和作业执行时间,是用户和云服务供应商共同关注的问题。在即付即用的商业云环境中,为内部任务具有复杂优先级约束的工作流设计作业调度算法,使工作流在预算及虚拟机资源有限的情况下,成功且快速的完成处理请求,是本申请需要解决的问题。本申请采用一种额外预算均匀分配的作业调度算法,保证单个任务有最小可执行预算的前提下,将额外预算均匀的分配到各个任务上,使得本申请能够既保证了工作流调度存在可行解,又使得优先级较低的任务分配到更多的预算,在虚拟机选择方面有更大的灵活性,从而缩短工作流的执行完成时间。如图2所示,展示为本申请一实施例中的基于平稳分布概率的作业调度方法的流程示意图。如图所示,所述方法包括:步骤s201:构建基于dag图的作业调度模型,并设定所述作业调度模型的系统参数。通常来说,异构多核实时系统的任务存在一种执行顺序的约束关系,用dag图进行表示,将任务模型描述为一个四元组。dag图首先,基于dag图进行相应定义,主要包括:所述dag图的作业调度模型记为:g=(w,j,v,l);①w表示工作流集合,记为w={1,2,…,w};任意一所述工作流w包含一个或多个任务;②j表示任务集合,记为:j={1,2,…,j};任意一所述任务j∈j只属于一个所述工作流w∈w;③v表示虚拟机集合,记为:v={1,2,…,v};虚拟机k∈v表示所述虚拟机集合v中的任意一个;④l表示所述任务之间有向边集合,所述任务对应为所述dag图中各节点,各所述节点之间的执行先后顺序和数据传递依赖关系以矩阵表示为当任务i依赖于任务j时,lij=1,并且所述任务i的开始运行时间不早于所述任务j的完成时间;当任务i不依赖于任务j时,lij=0。于本实施例中,用有向无环图dag表示单个工作流,工作流中的每个任务都是dag图的一个节点,两个节点间的依赖关系以dag的有向边表示。作业调度模型进一步地,在定义好dag图后,相应的所述作业调度模型的构建方法包括:a、任意一所述任务j所需的最小cpu计算能力记为cj,所需的最小内存大小记为mj;b、任意一所述虚拟机k的虚拟cpu计算能力记为ck,所需的最小内存大小记为mk;c、依据所述作业调度模型构建离散时间模型,将任务时间分解为时隙序列记为t:{1,2,…,t};举例来说,可假设每5分钟为1个时隙。d、针对所述工作流集合w所支付的预算记为:d;具体来说,所述d主要指用户为所有工作流支付的预算。e、使用任意一所述虚拟机k的单位时间成本记为:pk;f、执行任意一所述任务j时在cpu上运行所需要花费的cpu小时数记为:hj;g、执行任意一所述任务j时在所述虚拟机k上运行需要的运行时间记为:rjk=hj/ck;h、执行任意一所述任务j时在所述虚拟机k上运行花费的成本记为:pkrjk;i、在网络传输速率稳定的环境下,所述任务之间的数据传输时间视为常量。举例来说,假设研究的业务场景都在一个数据中心的内部网络中,网络传输速率是稳定的。因此,每组任务之间的数据传输时间可以视为常量,把任务间的传输时间作为任务运行的一部分来考虑。设定系统参数最后在构建完成所述作业调度模型后,对其系统参数进行设定,以使输入的工作流按照预定约束或假设进行处理。所述设定所述作业调度模型的系统参数的具体方法包括如下:(1)以为二进制变量,设定当且仅当所述任务j分配到所述虚拟机k,且在时隙t开始运行时,对于每个所述任务j,设定只有一个值为1,则相应表达式为:即,这里与dag图定义中②所述的任意一所述任务j∈j只属于一个所述工作流w∈w相对应。(2)设定所述任务j的最小资源需求需满足:具体来说,这里分别从cpu(处理器)与虚拟cpu(处理器)的计算能力与内存大小进行设定。(3)设定各所述任务之间的依赖关系的优先级约束关系为:其中,在lij=1时有效;表示所述任务j的执行开始时间;表示所述任务j的执行完成时间。即,这里与dag图定义中④所述的当任务i依赖于任务j时,lij=1,并且所述任务i的开始运行时间不早于所述任务j的完成时间相对应。(4)假设所有所述虚拟机k在运行过程中没有过载和占用,设定在任意时刻,任意一所述虚拟机k上最多只有一个所述任务j运行,则相应表达式为:其中,所述任务i的执行占据时隙t,所述任务i的开始时间取自{max(0,t-rik+1),…,t}集合中的值,则相应表达式为:(5)设定变量d为所有任务完成时间的上限,则相应表达式为:(6)设定使用所述虚拟机的费用不超过针对所述工作流集合w所支付的预算d,则相应表达式为:综合上面的建模及相应系统参数的设定,本申请中作业调度的目标是使所有工作流都尽可能快速的完成,相应的限制条件为设定系统参数中的(1)-(7)步骤。接下来,则进入实际调度过程,其中,步骤s202-s203属于初始化阶段,也是本申请所述方法的关键环节。步骤s202:在检测到工作流后,基于马尔科夫链平稳概率加权排序方法得到对应所述任务的排序列表。于本申请的一实施例中,步骤s202具体包括:a、依据所述任务的所有后继子任务集合计算马尔科夫链转移概率。具体来说,所述马尔科夫链转移概率的计算公式为:其中,pij表示马尔科夫链转移概率;succ(j)表示任务j的所有后继子任务的集合;lij=1表示任务i依赖于任务j。b、由所述马尔科夫链转移概率转移概率计算马尔科夫链稳态概率。具体来说,依据所述马尔科夫链转移概率,所述马尔科夫链稳态概率的计算公式为,∑j∈jπj=1;其中,πj表示马尔科夫链稳态概率;succ(j)表示任务j的所有后继子任务的集合;j表示任务集合。c、根据所述马尔科夫链稳态概率计算所述任务对应的升秩值。具体来说,所述升秩值的计算公式为:其中,wj表示升秩值;jexit表示所述工作流中的退出任务;succ(j)表示所述任务j的所有后继子任务的集合;πj表示马尔科夫链稳态概率。d、依据各所述任务对应的所述升秩值进行非递增排序,以得到对应各所述任务的排序列表tlist。具体来说,所述升秩值的非递增排序,可以是递减排序。步骤s203:针对各所述任务预留出最小可执行预算,依据总预算得到额外预算并将其均匀分配至各所述任务。于本申请的一实施例中,步骤s203具体包括:e、针对各所述任务预留出最小可执行预算;f、依据总预算与最低预算得到额外预算,依据最高预算与最低预算得到费用需求;根据所述额外预算与所述费用需求的比例得到所述额外预算与需求的比例;g、依据所述额外预算与需求的比例,将所述额外预算均匀分配至各所述任务,以得到对应各所述任务的初始预算,并将当前剩余预算设为0。其中,所述初始预算的计算公式为:bl=(d-dmin)/(dmax-dmin);其中,bl表示额外预算与需求的比例;dmin是使用最便宜调度需要的费用,dmax是使用无预算限制时,常规升秩排序方法调度所需要的费用。和分别是任务j在可用虚拟机集合中产生的最便宜和最昂贵的调度;表示所述任务j的初始预算。步骤s204:按照所述排序列表中各所述任务的排列顺序,由高至低依次以各所述任务重新分配后的预算值为依据分配至一虚拟机,直至全部所述任务分配完成以退出。于本申请的一实施例中,步骤s204具体包括:h、将所述排序列表中排列顺序最高的所述任务删除;i、从排列顺序最高的所述任务对应的可用虚拟机集合中选择一虚拟机,并将排列顺序最高的所述任务分配到所述虚拟机上。具体来说,步骤i的具体方法包括:其中,pkrjk表示为执行所述任务j时在所述虚拟机k上运行花费的成本;表示所述任务j的初始预算;dremain表示为当前剩余预算;vj表示可用虚拟机集合。需要说明的是,当所述从排列顺序最高的所述任务对应的可用虚拟机集合有多个时,选择执行费用最少或所需运行时间最短的所述虚拟机。即确保rjk最小,或者pk最小。j、更新当前剩余预算。与步骤s203中将当前剩余预算设为0相对应的,此时更新剩余预算。具体来说,步骤j的具体方法包括:其中,dremain表示为当前剩余预算;表示所述任务j的初始预算;pkrjk表示为执行所述任务j时在所述虚拟机k上运行花费的成本。k、判断所述排序列表是否为空;若不为空,则重复步骤s204中的h-j;若为空,则退出综上,本申请采用的一种额外预算均匀分配的作业调度算法,在保证单个任务有最小可执行预算的前提下,将额外预算均匀的分配到各个任务上。本申请将工作流的整体预算转移到单个任务上,简化了调度问题的处理,额外预算的均匀分配使任务间的预算分布更平衡。为进一步便于理解本申请所述的基于平稳分布概率的作业调度方法,通过如下第一实施例进行详细说明。第一实施例在该实施示例中,工作流设有12个任务,编号为1至12,部分任务之间存在数据/控制依赖关系,其具体dag图如图3所示。假设业务场景在一个数据中心的内部网络中,网络传输速率是稳定的。因此,每组任务之间的数据传输时间可以视为常量,把任务间的传输时间作为任务运行时间的一部分。在该实施示例中,一共设有3个可用虚拟机vm,每个虚拟机都能处理工作流中的12个任务.任务在3个虚拟机上的执行时间如下表1所示。任务在3个虚拟机上的执行费用如下表2所示。总预算为d=500,假设从t=0开始调度。表1任务在不同虚拟机上的执行时间表2任务在不同虚拟机上的执行费用nivm1vm2vm3148704225765963515560439409053665486398042718805483655309244566106335841136409612633584本申请按照以下流程进行:t=0时,检测到有工作流到来,开始调度。初始化:a、依据所述任务的所有后继子任务集合计算马尔科夫链转移概率。b、由所述马尔科夫链转移概率转移概率计算马尔科夫链稳态概率。c、根据所述马尔科夫链稳态概率计算计算出示例工作流中12个任务的加权升秩值。d、根据各所述任务对应的加权升秩值对所有任务进行非递增排序,确认优先级。计算结果如表3所示,将任务的排序列表记为tlist。表3任务的升秩值与对应的调度排序e、为每个任务j预留可以保证其执行的最小预算。f、依据总预算与最低预算得到额外预算,依据最高预算与最低预算得到费用需求;根据所述额外预算与所述费用需求的比例得到所述额外预算与需求的比例。具体来说,该比例的计算公式为:bl=(d-dmin)/(dmax-dmin);其中,bl表示额外预算与需求的比例;d表示针对所述工作流集合所支付的预算记为;dmin是使用最便宜调度需要的费用,dmax是使用无预算限制时,常规升秩排序方法调度所需要的费用。g、依据所述额外预算与需求的比例bl,将所述额外预算分割至各所述任务,以得到对应各所述任务j的初始预算,,记为并将当前剩余预算dremain设为0。具体来说,所述初始预算的计算公式为:其中,bl表示额外预算与需求的比例;和分别是任务j在可用虚拟机集合中产生的最便宜和最昂贵的调度;表示所述任务j的初始预算。h、检索tlist,不为空时,从tlist中选择排序第一的任务n1,并从列表中删除。i、任务n1的可支配预算为值为46。遍历所有可用虚拟机,只有vm3的执行费用不超过预算值,将n1分配到vm3,实际花费42,执行完成时间为t=7。j、更新总剩余预算值dremain:dremain=0+(46-42)=4。k、判断tlist是否为空,如果为空,则退出;否则继续调度。于本实施例中,tlist不为空,因此继续调度:h、此时检测到tlist中排首位的任务n2。i、继续来说,任务n2的可支配预算为(61+4)=65。遍历所有可用虚拟机,有vm1和vm2的执行费用不超过预算值,而vm2的执行时间更短,因此将n2分配到vm2,实际花费65。因n2为n1的子任务,其完成时间为t=7+13=20。g、更新总剩余预算值dremain:dremain=4+(61-65)=0。k、依次循环直到tlist为空,退出。如下表4为完整的调度结果。表4完整调度结果任务可支配预算实际费用节约预算开始时间完成时间分配的虚拟机1464240732656507202445396720165042871435483612203218453015202539442420324013725517203121058352340472116636304052175554131403124235752592需要说明的是,在图3中,任务n3、n8和n9互不依赖,因此,在一般情况下,任务n3、n8和n9之间会任意选择一个进行调度。而对升秩加权后,如表3所示,n8和n9被分配了比n3更高的优先级。故,作业n8可以选择到处理速度更快的虚拟机,使工作流的makespan有效缩短。综上来看,本申请提出的一种考虑任务全局重要性的优先级排序算法,将平稳分布概率作为任务的重要性指标,对升秩加权后得到任务的优先级排序。本发明根据任务间的直接继承关系得到转移概率矩阵,基于全局的拓扑结构进行递归计算后求得平稳概率,平稳概率承载了传播回每个状态(作业)的所有状态(作业)的全局信息。本申请能够既保证了工作流调度存在可行解,又使得优先级较低的任务分配到更多的预算,在虚拟机选择方面有更大的灵活性,从而缩短工作流的执行完成时间。与现有技术相比,在大部分情况下,本申请可以得到平均更快的工作流执行完成时间。为进一步便于理解本申请所述的基于平稳分布概率的作业调度方法,将通过多种方法比对的形式具体说明本申请所述方法于一实施例中详细过程,以及验证本申请所述方法的效果。第二实施例分别将本申请所述的方法(记为mslbl_m)与gurobi优化器、mslbl方法、bheft方法、hbcs方法进行性能比较。gurobi是当前最先进的混合整数规划优化器之一,可以根据精确的数学模型求解中小规模的问题,得到一个最佳解。本申请所述的方法与mslbl方法的预算处理策略相同,但任务排序方法不同。本申请所述的方法利用工作流dag上构建的随机游走模型,将平稳分布概率作为任务的全局重要性指标,对升秩加权后得到任务的优先级排序。mslbl、bheft、hbcs这三种方法都基于传统升秩方法进行排序,但是预算处理策略不同。mslbl方法首先为每个任务保留最小的必要预算,再根据每个任务的额外需求按比例分配可支配预算。bheft方法根据不同处理器的平均成本为每个任务分配预算,再根据每个任务的资源需求比例分配剩余的可支配预算。根据每个任务的预算,bheft算法总是为一个任务分配负担得起的最快资源。hbcs方法引入一个综合考虑了成本、剩余预算和每个处理器的速度的worthiness性能指标,再将任务分配给worthines指标最高的处理器。具体配置如下:实验对实际的云作业运行环境进行仿真,使用的虚拟机配置是amazonec2的23种虚拟机实例类型。工作流结构主要模拟了高斯消除工作流(gaussian)等应用程序类型。我们使用参数m来设置gaussian应用的大小。任务的数量是n=(n2+n-2)/2,其中n是方阵的行数。为了确认可用虚拟机数量的影响,我们使用三个不同级别的vm充分性进行测试:稀缺的、正常的和充足的。在稀缺情况下,虚拟机的数量是作业数量的一半;在正常情况下,两者数量相等;在充分情况下,虚拟机的数量是作业数量的1.5倍。在这三种情况下,表七中2/3的虚拟机实例被分配给不超过8个vcpus的虚拟机类型;另外1/3的虚拟机实例被分配给超过8个vcpus的虚拟机类型。最后,随机生成每个vm类型的实例数。也对预算范围进行了设置,如右式所示,其中,dmin是使用最便宜调度需要的费用,dmax是使用无预算限制时,常规升秩排序方法调度所需要的费用。使用预算因子来更改预算的级别。在实验中,也测试了本申请和对比方法在gaussian的不同任务规模下的表现。1、归一化的完成时间使用gaussian型工作流进行实验,任务规模分别为n=14,665,1175,1829,在不同级别的虚拟机充分性和预算等级下进行测试。在每个测试实例中,不同算法获得的完成时间相对于该组中的最小结果进行了归一化计算,图4a-4d展示的是归一化后的性能。在n=14个任务的小规模实验中,gurobi总是能达到最佳的完成时间,它的完成时间可以作为性能基准,比较其他算法的性能。结果表明,在虚拟机稀缺的情况下,预算等级对结果的完成时间有很大影响,随着预算等级的提高,完成时间会迅速下降。在虚拟机数量正常的情况下,当较小时,完成时间随着的增大而变小。当虚拟机数量紧张时,本发明提出的算法和mslbl算法在预算等级的表现略差于hbcs和bheft算法,随着虚拟机数量充分性的提高,提出的算法在的表现明显改善。hbcs和bheft算法不能在所有案例下找到解决方案。在大多数情况下,本发明采用的加权升秩方法可以得到更快的完成时间。总体而言,本申请所提出的算法在gaussian工作流类型中性能表现很好。如图4a-4d所示,展示为于一实施例中在不同任务规模下的gaussian消除工作流的归一化完成时间,图4a-4d分别为任务量为14,665,1175,1829下在gaussian型工作流中,mslbl_m(本申请所述方法)、gurobi、mslbl、bheft、hbcs之间消除工作流的归一化完成时间,从图中可以看出,mslbl_m(本申请所述方法)在不同任务规模下gaussian工作流类型中性能表现较好。2、调度成功率从预算等级和虚拟机数量充足性两个角度分析,如图5a展示了当可用虚拟机数量受限时四种算法应用在gaussian工作流调度上的成功率。如图5b展示了当预算有限时四种算法应用在gaussian工作流调度上的成功率。从图中可以看出,算法hbcs和bheft并不能全部找到解决方案,而申请明提出的方法(mslbl_m)和mslbl算法在不同的预算等级情况下,总能产生一个解决方案。3、调度性能排序根据各算法的执行完成时间(makespan)的递增顺序对算法排序,分别统计上述几种算法的排名。基于已有文献中提出的平均秩值(ar)来评估算法的性能。ar的定义为:ar=(r1+2r2+3r3+4r4)/ncases;其中,ncases是测试用例的数量,ri是排名i的计数。算法的ar值越小,平均性能越好。如下表1中,展示了gaussian类型工作流的等级统计结果和相应的ar值,其中在gaussian类型工作流以60个测试实例为基础。简洁起见,表中只显示了前三位的计数。对于gurobi、hbcs和bheft算法,由于它们有时无法找到可行的解决方案,因此它们的ar值未做统计。本申请提出的优先级方案在平均上获得了最佳性能。表5gaussian工作流的排序统计综上所述,本申请提出的平稳分布概率方案,既保证了工作流调度存在可行解,又使得优先级较低的任务分配到更多的预算,在虚拟机选择方面有更大的灵活性,从而缩短工作流的执行完成时间。本申请与现有技术相比,大部分情况下,本申请可以得到平均更快的工作流执行完成时间,且采用名次打分法进行评价时,本申请的性能表现最好。如图6所示,展示为本申请于一实施例中的基于平稳分布概率的作业调度装置的模块示意图。如图所示,所述装置600包括:预设模块601,用于构建基于dag图的作业调度模型,并设定所述作业调度模型的系统参数;处理模块602,用于在检测到工作流后,基于马尔科夫链平稳概率加权排序方法得到对应所述任务的排序列表;针对各所述任务预留出最小可执行预算,依据额外预算与需求的比例将所述额外预算分割至各所述任务;按照所述排序列表中各所述任务的排列顺序,由高至低依次以各所述任务对应的所述初始预算为依据分配至一虚拟机,直至全部所述任务分配完成以退出。需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请所述方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。还需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块602可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块602的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(digitalsignalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。如图7所示,展示为本申请于一实施例中的终端的结构示意图。如图所示,所述终端500包括:存储器701、处理器702、及通信器703;所述存储器701用于存储计算机程序;所述处理器702运行计算机程序实现如图2所述的平稳分布概率的作业调度方法。在一些实施例中,终端700中的所述存储器701的数量均可以是一或多个,所述处理器702的数量均可以是一或多个,所述通信器703的数量均可以是一或多个,而图7中均以一个为例。于本申请一实施例中,所述终端700中的处理器702会按照如图2所述的步骤,将一个或多个以应用程序的进程对应的指令加载到存储器701中,并由处理器702来运行存储在存储器702中的应用程序,从而实现如图2所述的基于平稳分布概率的作业调度方法中的各种功能。在一些实施例中,所述终端可以是智能手机、平板电脑、掌上电脑等设备,所述终端还可以是云服务器或云端。所述存储器701可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。所述存储器701存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。所述处理器702可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。所述通信器703用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信连接。所述通信器703可包含一组或多组不同通信方式的模块,例如,与can总线通信连接的can通信模块。所述通信连接可以是一个或多个有线/无线通讯方式及其组合。通信方式包括:互联网、can、内联网、广域网(wan)、局域网(lan)、无线网络、数字用户线(dsl)网络、帧中继网络、异步传输模式(atm)网络、虚拟专用网络(vpn)和/或任何其它合适的通信网络中的任何一个或多个。例如:wifi、蓝牙、nfc、gprs、gsm、及以太网中任意一种及多种组合。在一些具体的应用中,所述终端700的各个组件通过总线系统耦合在一起,其中总线系统出包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清除说明起见,在图7中将各种总线都成为总线系统。于本申请的一实施例中,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图2所述的基于平稳分布概率的作业调度方法。所述计算机可读存储介质优选为非易失性计算机存储介质。本领域普通技术人员可以理解:实现上述系统及各单元功能的实施例可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述系统及各单元功能的实施例;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。综上所述,本申请提供的一种基于平稳分布概率的作业调度方法、装置、终端和介质,通过构建基于dag图的作业调度模型,并设定所述作业调度模型的系统参数;在检测到工作流后,基于马尔科夫链平稳概率加权排序方法得到对应所述任务的排序列表;针对各所述任务预留出最小可执行预算,依据额外预算与需求的比例将所述额外预算分割至各所述任务;按照所述排序列表中各所述任务的排列顺序,由高至低依次以各所述任务对应的所述初始预算为依据分配至一虚拟机,直至全部所述任务分配完成以退出。本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属
技术领域
中包含通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1