一种基于强化学习策略的多目标云工作流调度方法与流程

文档序号:20832191发布日期:2020-05-22 16:25阅读:335来源:国知局
一种基于强化学习策略的多目标云工作流调度方法与流程

本发明属于云计算技术领域,具体涉及一种基于强化学习策略的多目标云工作流调度方法。



背景技术:

近年来,越来越多的科学家使用工作流来构建他们的复杂应用并部署在云平台上执行。云计算是一种最新的分布式系统计算范例,其按使用付费与弹性资源模式为大规模科学工作流的快速、分布式高效执行提供了易于访问、灵活、可扩展的基础设施与部署环境,但这也给云环境下的工作流调度带来了很多挑战。一方面,其弹性资源模式使得调度求解空间大大增加。另一方面,云的按使用付费使得工作流调度需要同时考虑工作流执行时间与成本等,是一个典型的多目标优化问题,进一步增加了调度问题的难度。

目前,多目标优化问题的求解主要采用启发式、元启发式或二者的混合的算法。启发式算法,首先采用一定的规则计算任务的优先级,然后根据优先级依次进行工作流任务调度。但是,启发式算法依赖于规则,对复杂调度问题很难找到最优解,且泛化能力不足。与启发式算法相比,元启发式算法的泛化能力有了很大改善,但通常需要进行很多次的迭代更新才能找到近似最优解。当问题规模变大时,算法寻优所需的时间开销较大,难以满足用户对调度的实时性要求。

随着强化学习的发展及其在序列决策方面的突出优势,越来越多的研究者开始尝试利用强化学习求解调度问题。例如,有学者提出利用基于模拟退火的q学习算法解决协同工作中的任务调度问题,以及利用基于dqn的多目标工作流调度算法解决云环境下的任务调度问题。然而,在面临过大规模的任务请求时,q学习算法固有的q值矩阵维数爆炸问题,需要大量的数据存储,导致很高的算法存储复杂性;基于dqn的算法,采用值函数逼近解决了q学习的高维数据存储问题,但是由于采用固定维数的环境状态向量与单一类型的工作流来训练强化学习模型,其模型泛化能力具有较大的局限性,很难适应不同大小、不同类型的工作流调度需求。



技术实现要素:

有鉴于此,本发明提供了一种基于强化学习策略的多目标云工作流调度方法,在适应多种类型工作流调度问题的情况下,实现工作流执行跨度时间和成本的同时最小化。

本发明提供的一种基于强化学习策略的多目标云工作流调度方法,包括以下步骤:

步骤1、采用强化学习算法(a3c)建立基于强化学习的工作流调度模型,所述基于强化学习的工作流调度模型包含时间优化子agent和成本优化子agent,所述时间优化子agent和成本优化子agent统称为子agent,所述子agent的策略模型的网络结构为以循环神经网络作为隐含层的指针网络;

步骤2、计算资源池中的资源执行所述待调度云工作流中入口任务的时间优化目标值及成本优化目标值,所述时间优化目标值及成本优化目标值作为强化学习算法中的状态;

步骤3、所述时间优化子agent和成本优化子agent分别以时间相关和成本相关的所述状态作为输入,对云工作流执行一次调度生成训练样本集,采用所述训练样本集完成时间优化子agent和成本优化子agent的训练;

步骤4、调度应用时,将由所述步骤2计算得到的待调度工作流中任务的状态输入到所述工作流调度模型中分别得到时间优化选择概率和成本优化选择概率,从中确定工作流调度方案。

进一步地,所述强化学习智能体的策略模型的网络结构为所述指针网络与长短期记忆网络(lstm)的组合,所述指针网络的输出作为所述lstm的输入。

进一步地,所述工作流调度方案的确定方式为:将所述时间优化子agent和成本优化子agent输出的选择概率作为输入,采用帕累托(pareto)准则确定最终的行为,将所述行为转换为工作流调度方案。

进一步地,所述子agent与环境交互的过程中,当所述工作流调度模型训练次数小于阈值时,采用随机选择策略与环境进行交互;当所述工作流调度模型训练次数大于或等于所述阈值时,依据网络输出概率与环境进行交互。

有益效果:

1、本发明通过利用指针网络对强化学习agent进行改进形成改进后的深度强化学习算法构建基于强化学习策略的工作流调度模型,使得工作流调度模型能适用于不同大小、不同类型的云工作流调度问题,在保证较高时效性的同时,提升模型的泛化能力;

2、本发明为指针网络引入外层lstm结构,使强化学习agent在模型训练和决策时,能够综合考虑已调度任务的决策历史时序信息对当前调度决策的影响,以产生更好的调度方案;

3、本发明通过将强化学习aagent决策与pareto准则有机结合,建立了更为合理的决策行为选择准则,进一步提升了算法在多目标调度方面的性能。

附图说明

图1为本发明提供的一种基于强化学习策略的多目标云工作流调度方法的算法流程图。

图2为本发明提供的一种基于强化学习策略的多目标云工作流调度方法的时序指针网络结构框图。

图3为本发明提供的一种基于强化学习策略的多目标云工作流调度方法的工作流示例图。

图4为本发明提供的一种基于强化学习策略的多目标云工作流调度方法的处理结果收敛性对比图。

图5为本发明提供的一种基于强化学习策略的多目标云工作流调度方法的处理结果主导性对比图。

图6为本发明提供的一种基于强化学习策略的多目标云工作流调度方法的处理结果时效性对比图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

现有技术中,标准的强化学习算法ac(actor-criticalgorithm)包括智能体(agent)及环境,其中,agent作为学习系统由策略模型和价值模型构成。ac算法训练过程为:agent获取外部环境的当前状态s,对环境采取试探性的动作a,并获取环境反馈的对该动作的回报r和新的状态s,当agent的某动作a导致环境产生正的回报时,agent以后产生这个动作的趋势便会加强;反之,agent产生这个动作的趋势将减弱。在学习系统的控制行为与环境反馈的状态及评价的反复的交互作用中,以学习的方式不断修改从状态到动作的映射策略,以达到优化系统性能目的。

深度强化学习算法a3c是将异步的思想用于标准的强化学习算法中,它包含多个局部网络和一个全局网络,利用多线程的方法,多个局部网络同时在多个线程里面分别和环境进行交互学习,每个线程都把训练得到的参数保存在全局网络中,并且定期从全局网络中下载参数指导后续与环境的学习交互。通过这种方法,a3c避免了经验回放相关性过强的问题,同时形成了异步并发的学习模型。

本发明提出了一种基于强化学习策略的多目标云工作流调度方法,基本思想是:采用a3c算法建立基于强化学习的工作流调度模型,并采用时序融合指针网络对强化学习agent进行优化,在适应多种类型工作流调度问题的情况下,实现工作流执行跨度时间和成本的同时最小化。

本发明提出的一种基于强化学习策略的多目标云工作流调度方法,包括基于强化学习的工作流调度模型的构建、模型训练以及在工作流调度中的应用,如图1所示,具体包括如下步骤:

步骤1、采用a3c算法建立基于强化学习的工作流调度模型,基于强化学习的工作流调度模型包含时间优化子agent和成本优化子agent,时间优化子agent和成本优化子agent统称为子agent,子agent的策略模型为以循环神经网络作为隐含层的指针网络。

现有技术中,深度强化学习算法的基本单元中仅有一个agent,而本发明中与现有技术的区别在于,为工作流执行时间和成本优化分别构建相应的子agent,即时间优化子agent和成本优化子agent,由时间优化子agent和成本优化子agent构成了完整的深度强化学习agent。同时,本发明中构建的子agent的价值模型为现有技术中的基于双全连接网络的价值模型,而策略模型则采用本发明提出的以循环神经网络作为隐含层的指针网络构建,以适用于不同大小、不同类型的云工作流调度问题,在保证较高时效性的同时,提升模型的泛化能力。

在此基础上,为了能产生更好的调度方案,本发明中还提出了以基于时序融合指针网络作为策略模型的技术方案。其中,时序融合指针网络是指在原有指针网络基础上增加外层lstm结构,即指针网络的输出作为lstm的输入,使得强化学习agent决策时能够综合考虑已调度任务的决策历史时序信息对当前调度决策的影响,同时,能够克服当调度大规模工作流时采用基础rnn单元出现的梯度消失现象的问题,以产生更好的调度方案。

时序融合指针网络的网络结构如图2所示,如果将每一个输入网络的样本当作一个时间序列,则pi就是某一个rnn时间步下输入到指针网络的特征向量,本发明中对于工作流调度过程而言,状态st的每个位置pi中,包含两个子agent下备选方案相应的优化目标值,t表示调度到当前阶段的实际时间步,也就是工作流中当前调度任务所对应的时刻;nt表示当前调度阶段的可选调度方案数。将st输入指针网络rnn,计算得到输出向量其中,wfo、wfr、bfo和bfr为相应的线性权值矩阵,为rnn隐含层的状态;随后,经过指针网络softmax层依次计算,并输出条件概率其中,为rnn隐含层的状态,为第i个备选方案的初步选择概率;然后,依据概率选择nx个值对应的状态,组成特征向量(本发明中nx=3),作为t时刻的外层lstm输入,并进一步经外层网络计算后,得到t时刻的lstm层输出向量输出向量的计算过程即为现有技术中的lstm算法的计算过程,如下所示:

遗忘门更新:f(t)=σ(wf[ht-1,xt]++bf);

输入门更新:η(t)=σ(wη[ht-1,xt]++bη),

单元状态更新:

隐层状态输出:o(t)=σ(wo[ht-1,xt]+bo),ht=o(t)etanh(ct);

最终输出:yt=weht+be。

其中,ht为lstm层的t时间步的隐含状态,σ为sigmoid激活函数,ct为lstm层的单元状态,e为hadamard积,上述各式中的w和b为相应与不同操作的线性权值矩阵,下标f,η,c,o,e分别表示遗忘门、输入门、隐层状态与最终输出。最后,yt经外层softmax结构计算,输出t时刻各备选方案的最终选择概率p(y'j|y0,...,yt-1,xt),j∈[1,nx]。

下面结合图3中显示的工作流示例对本发明建立基于强化学习的工作流调度模型进行说明。图中,括号内的数字表示任务量大小,结点之间连线上的数字为相邻任务之间的传输数据大小。假设利用两台虚拟机(例如其处理能力分别为cu1和cu2)来执行图3所示的工作流任务请求,且每次从入口任务开始调度的时刻t=0。由图3可知,在t=0时刻,存在一个可调度任务和两个可用虚拟机,所以,此时有两种备选调度方案。本发明中,状态st的每个位置pi包含两个子agent下备选方案相应的优化目标值。对优化工作流执行时间的子agent而言,t=0时刻的状态s0=(p0=0.3/cu1,p1=0.3/cu2)。接着,将s0输入agent网络模型,经指针网络层运算得到初步选择概率由于当前备选方案数为2,相应的初步选择概率个数为2(小于nx=3),所以无需进行概率选择,便可直接得到lstm层的输入向量最后,x0再经lstm层运算,得到t=0时备选方案的最终选择概率p(y'j|x0),j∈[1,nx]。依照最终选择概率,对任务1完成调度后,t←t+1,进入对下一个任务的调度阶段。

步骤2、计算资源池中的资源执行待调度云工作流中任务的时间优化目标值及成本优化目标值,时间优化目标值及成本优化目标值作为深度强化学习算法中的状态。

步骤3、时间优化子agent和成本优化子agent分别以时间相关和成本相关的状态作为输入,通过与环境的交互完成时间优化子agent和成本优化子agent的训练。

由于,本发明中子agent的训练过程与a3c算法的训练过程的区别在于,时间优化子agent和成本优化子agent所采用的输入不同,其中,时间相关的状态信息作为时间优化子agent的输入,成本相关的状态信息则作为成本优化子agent的输入。接收到输入后,子agent与深度强化学习agent相同,产生动作、回报和状态转换,以成本相关的任务状态、动作、回报及状态转换构建成本优化训练样本集,本发明中,该训练样本集包括时间优化子agent训练样本集和成本优化子agent训练样本集,采用上述样本集分别训练时间优化子agent和成本优化子agent,从而得到训练后的工作流调度模型。

本发明中,针对云工作流的调度,深度强化学习方法的训练过程为:将构建好的agent与环境进行交互,完成一次完整调度(即,从入口任务到出口任务的一次调度称为完整调度),并将此次调度过程涉及的所有状态转换、动作和回报存入训练样本池中;交互过程中,需根据两个子agent输出的最终选择概率,确定最终的行为选择决策,根据最终的行为决策确定工作流调度方案。本发明中行为a定义为备选方案的位置,工作流调度方案需对行为a进行反解码得到。子agent与环境的交互过程,具体包括如下步骤:

步骤3.1、重置环境状态为初始状态,因此时尚未进行任务调度,所以已调度任务列表list_task及虚拟机运行状态记录列表list_vmsta均为空;

步骤3.2、检测当前时刻两个优化目标下的状态并输入到对应的子agent网络中,得到备选方案在两个优化目标下的最终选择概率;

步骤3.3、将两个子agent输出的最终选择概率作为各个备选方案的属性值,依照pareto准则选择最终行为at并输出。在图3所示的工作流中,以t=0时刻为例进行具体说明。假设t=0时刻的输出概率分别为y0m=(0.6,0.4)、y0c=(0.8,0.2),依照pareto原则,方案一优于方案二(因为0.6>0.4,0.8>0.2)。所以,输出最终选择的行为a0=1。

步骤3.4、反解码出at所对应的备选方案并执行,检测执行调度方案后的新环境状态并相应地应更新list_task和list_vmsta;如步骤3中,a0=1所对应的备选方案为:将任务1放到虚拟机1上执行。

步骤3.5、计算并存储当前时刻两个目标下的回报值rtm和rtc,同时存储马尔科夫过程到样本池中。

步骤3.6、判断工作流调度过程是否完成。若完成,则转步骤3.7;否则,转步骤3.2。

步骤3.7、将全局agent模型的策略、价值网络参数梯度清零:其中,为全局agent的策略、价值网络参数。

步骤3.8、同步模型参数,其中,为局部agent的策略、价值网络参数。

步骤3.9、从样本池中按存入顺序取出一个采样序列,并从最后一个采样时刻开始,依次向前更新agent模型回报:

r:r←rtm+γr,t∈{nw-,...,0}

其中,r为状态的长期回报,开始计算前r=0,γ为折扣因子,nw为所调度工作流的规模大小。同时,更新agent模型回报后,计算策略损失函数及行为价值函数梯度,并将其累积到策略和价值模型梯度中,即其中,为当前策略的价值函数。

步骤3.10、对全局模型进行异步更新:

步骤3.11、判断当前样本池中的样本是否全部参与了训练。若所有样本都已参与了训练,则模型训练结束;否则,转步骤3.7。

步骤3.12、判断累计的完整调度次数是否达到预先定义的上限。若达到定义的最大次数,则模型训练完成;否则转步骤3。

需要进一步说明的是,本发明结合两种行为选择策略(随机选择和依据网络输出概率选择)进行工作流调度。在初始阶段,由于网络训练次数较小,主要使用随机选择策略与环境进行交互,以降低最初网络参数的不合理性影响。随着训练次数的增加,依据网络输出概率进行策略选择的方式将逐步发挥主要作用。

步骤4、将新的工作流请求输入到已经训练好的基于强化学习的工作流调度模型中,求得对应的工作流调度方案。

将由步骤2计算得到待调度工作流的任务状态输入到工作流调度模型中分别得到时间优化工作流调度方案和成本优化工作流调度方案,再采用最终选择策略确定工作流调度方案。

为检验本发明方法的效果,使用python语言对算法以及模拟的云数据中心调度环境进行编程实现,并从多角度进行实验验证,以检验算法不同方面的性能。其中,实验部分的对比算法采用目前典型的多目标优化算法:nsga-ii,mode,moacs和ecmsmoo。

首先,采用结构较为复杂的montage、cybershake大规模工作流,训练强化学习模型,其训练过程的优化目标值变化趋势如图4所示。由图4可知,算法模型随着训练次数的增加趋于收敛,说明了算法的可行性。

其次,构建基于普通指针网络的强化学习模型,采用同样的方式进行训练,并在同一调度环境中进行工作流调度,其结果对比如图5所示(po-rl和po分别表示本发明与基于普通指针网络的强化学习模型)。由图5可知,相对于普通指针网络模型,本发明设计的时序融合指针网络模型给出的解更靠近pareto前沿,调度效果更好。

最后,在同一调度环境下,分别用本发明(po-rl)、nsga-ii、mode、moacs和ecmsmoo算法进行调度,其时效性比较如图6所示。由图6可以看出,本发明的调度时效性具有明显提升。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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