一种基于虚拟化容器技术的多工作流任务分配方法与流程

文档序号:12719044阅读:232来源:国知局

作业调度是工作流研究中的重要问题之一,也一直得到了学术界的深入研究和工业界的广泛实践。由于云环境的复杂性和动态性,客观上要求能够进行自适应作业调度,面向云计算环境的工作流的调度方法与传统工作流和网格工作流的调度方法存在着很大的区别。

强化学习作为一种重要的机器学习方法,其在云计算环境中的应用也得到了广泛关注,取得了一些重要成果。但在实际应用过程中,不可避免的会遇到连续状态-动作空间而产生的维数灾难问题,最终导致收敛速度慢,自适应性差,这些问题极大的限制了强化学习在云计算领域中的应用。



技术实现要素:

本发明的目的是解决现有技术的缺陷,提供一种基于虚拟化容器技术的多工作流任务分配方法,采用的技术方案如下:

一种基于虚拟化容器技术的多工作流任务分配方法,包括

准备阶段:

定义状态空间:用五元组S=(WR,RA,AW,IM,PJ)表示状态空间,其中WR表示待调度任务的工作量,RA表示资源可用时间,AW表示等待队列中的总工作量,IM表示空闲容器资源数,PJ表示队列中各用户提交任务的比例;

定义动作空间:用三元组J=(TJ,WS,ET)表示动作空间,其中TJ表示任务类型,WS表示用户标识符,ET表示任务执行时间;

定义回报函数:

其中为控制系数,为工作流任务vi的响应率,为vi的公平性指标,任务vi的响应率为:

其中,execution timevi为任务的执行时间,waittingtimevi为任务的等待时间,

任务vi的公平性指标定义为:

其中表示用户k提交的任务vi所需的资源,指用户k提交的任务vi的响应速率,指取用户k提交的所有作业中的最大的值,指取用户K提交的所有作业中最大的W值;

执行阶段:

第一步:初始化ρ和Q(s,a),其中ρ表示平均回报,Q(s,a)为二维表格,行s为系统状态,列a为动作空间;

第二步:设置更新步长,执行迭代;

第三步:将变量i设置为0,将s设置为当前状态;

第四步:从动作空间a中选择动作;

第五步:执行选择的动作,得到当前状态的立即回报值r和下一个系统状态s’;

第六步:按式Q(s,a)←Q(s,a)+α*[r-ρ+maxa'Q(s',a')-Q(s,a)]更新Q(s,a),其中,a’代表系统状态s’下的动作空间,α∈(0,1)代表学习速率;

第七步:判断是否满足Q(s,a)=maxaQ(s,a),若是则更新平均回报ρ然后转第八步,若否则直接转第八步;

第八步:令i=i+1;

第九步:若i小于更新步长,令s=s’,转至第二步,若i不小于更新步长,则转至第十步;

第十步:将Q(s,a)表格中的数据作为输入,使用高斯过程进行回归操作,得到回归结果;

第十一步:使用第十步得到的回归结果修改Q(s,a)表格;

第十二步:将第七步得到的平均回报ρ作为输入,使用高斯过程进行回归操作,得到回归结果;

第十三步:使用第十二步得到的回归结果修改平均回报ρ;

第十四步:转至第二步。

本发明尝试从不同的角度解决连续状态-动作空间而产生的维数灾难问题,奖赏函数符合多工作流任务公平分配要求,即既要保证容器簇内各容器单元负载均衡,又要避免不同服务质量需求的工作流违反服务级别协定,提高整个容器簇资源利用率,最大程度均衡供需双方的利益。对于监控-agent,可实时获取容器簇内各容器资源的效用信息,为任务-agent提供决策依据。

作为优选,第四步中使用以下策略从动作空间中选择动作:

按公式rank(vexit)=w(vexit)设置任务初始优先级,rank(vexit)表示任务初始优先级,w(vexit)表示出口任务优先级;

对初始优先级进行动态调整,选择当前优先级最高的动作,

调整公式如下:

其中,rank(vi)′任务为vi调整后的优先级,表示任务vi在当前簇内所有可用虚拟化容器资源上的平均执行代价,表示任务vi和vj之间的平均通信代价,rank(vj)表示任务vj调整前的优先级,为紧急因子,表示当前任务vi在执行中随外部环境因素改变而导致违反服务等级协议的紧迫程度。

每个调度时刻,任务-agent根据工作流的DAG和服务质量需求,进行流程分解和优先级初始设置,任务初始优先级表示为:

任务vi的优先级是其直接后继任务优先级与相应通信代价之和的最大值加上自身的计算代价,由于所有任务的优先级都是从出口任务向上遍历任务图,因此初始任务优先级可表示为:

rank(vexit)=w(vexit)

任务在缓存队列等待过程中,可能会由于用户需求、新工作流提交、容器簇内资源增减等外部环境因素的改变而导致违反服务等级协议。因此,在云工作流任务执行过程中,需对初始设置的优先级进行动态调整,这一举措有效的避免先前DAG因剩余任务迟迟得不到调度而导致时间跨度增大的问题。

作为优选,所述第七步中,按照公式ρ←ρ+β*[r-ρ+maxa'Q(s',a')-maxaQ(s,a)]更新平均回报ρ,其中β∈[0,1]为累积回报折扣因子。

与现有技术相比,本发明的有益效果:

本发明大幅度减少了得到最优策略的学习迭代时间,提高了云资源的利用率。

附图说明

图1是本发明的流程图。

具体实施方式

下面结合附图和实施例对本发明做进一步详细描述。

实施例:

一种基于虚拟化容器技术的多工作流任务分配方法,包括

准备阶段:

定义状态空间:用五元组S=(WR,RA,AW,IM,PJ)表示状态空间,其中WR表示待调度任务的工作量,RA表示资源可用时间,AW表示等待队列中的总工作量,IM表示空闲容器资源数,PJ表示队列中各用户提交任务的比例;

定义动作空间:用三元组J=(TJ,WS,ET)表示动作空间,其中TJ表示任务类型,WS表示用户标识符,ET表示任务执行时间;

定义回报函数:

其中为控制系数,为工作流任务vi的响应率,为vi的公平性指标,任务vi的响应率为:

其中,execution timevi为任务的执行时间,waittingtimevi为任务的等待时间,

任务vi的公平性指标定义为:

其中表示用户k提交的任务vi所需的资源,指用户k提交的任务vi的响应速率,指取用户k提交的所有作业中的最大的值,指取用户K提交的所有作业中最大的W值;

执行阶段:

第一步:初始化ρ和Q(s,a),其中ρ表示平均回报,Q(s,a)为二维表格,行s为系统状态,列a为动作空间;

第二步:设置更新步长,执行迭代;

第三步:将变量i设置为0,将s设置为当前状态;

第四步:从动作空间a中选择动作;

第五步:执行选择的动作,得到当前状态的立即回报值r和下一个系统状态s’;

第六步:按式Q(s,a)←Q(s,a)+α*[r-ρ+maxa'Q(s',a')-Q(s,a)]更新Q(s,a),其中,a’代表系统状态s’下的动作空间,α∈(0,1)代表学习速率;

第七步:判断是否满足Q(s,a)=maxaQ(s,a),若是则更新平均回报ρ然后转第八步,若否则直接转第八步;

第八步:令i=i+1;

第九步:若i小于更新步长,令s=s’,转至第二步,若i不小于更新步长,则转至第十步;

第十步:将Q(s,a)表格中的数据作为输入,使用高斯过程进行回归操作,得到回归结果;

第十一步:使用第十步得到的回归结果修改Q(s,a)表格;

第十二步:将第七步得到的平均回报ρ作为输入,使用高斯过程进行回归操作,得到回归结果;

第十三步:使用第十二步得到的回归结果修改平均回报ρ;

第十四步:转至第二步。

第四步中使用以下策略从动作空间中选择动作:

按公式rank(vexit)=w(vexit)设置任务初始优先级,rank(vexit)表示任务初始优先级,w(vexit)表示出口任务优先级;

对初始优先级进行动态调整,选择当前优先级最高的动作,

调整公式如下:

其中,rank(vi)′任务为vi调整后的优先级,表示任务vi在当前簇内所有可用虚拟化容器资源上的平均执行代价,表示任务vi和vj之间的平均通信代价,rank(vj)表示任务vj调整前的优先级,为紧急因子,表示当前任务vi在执行中随外部环境因素改变而导致违反服务等级协议的紧迫程度。

每个调度时刻,任务-agent根据工作流的DAG和服务质量需求,进行流程分解和优先级初始设置,任务初始优先级表示为:

任务vi的优先级是其直接后继任务优先级与相应通信代价之和的最大值加上自身的计算代价,由于所有任务的优先级都是从出口任务向上遍历任务图,因此初始任务优先级可表示为:

rank(vexit)=w(vexit)

任务在缓存队列等待过程中,可能会由于用户需求、新工作流提交、容器簇内资源增减等外部环境因素的改变而导致违反服务等级协议。因此,在云工作流任务执行过程中,需对初始设置的优先级进行动态调整,这一举措有效的避免先前DAG因剩余任务迟迟得不到调度而导致时间跨度增大的问题。

所述第七步中,按照公式ρ←ρ+β*[r-ρ+maxa'Q(s',a')-maxaQ(s,a)]更新平均回报ρ,其中β∈[0,1]为累积回报折扣因子。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1