一种基于深度强化学习的数据中心资源离线调度方法与流程

文档序号:18059127发布日期:2019-07-03 02:56阅读:998来源:国知局
一种基于深度强化学习的数据中心资源离线调度方法与流程

本发明涉及计算机技术领域,特别涉及一种基于深度强化学习的数据中心资源离线调度方法。



背景技术:

资源管理是计算机网络和操作系统中的基本问题。资源分配通常是组合性问题,可以映射成不同的np难问题。虽然每种资源分配方案都是特定的,但一般的方法是在一定条件下设计具有性能保证的高效启发式算法。最近的研究表明,机器学习可以为资源管理的人为启发式提供一个可行的替代方案,特别是已成为机器学习研究的一个活跃领域的深度强化学习。

实际上,深度强化学习方法尤其适用于资源管理系统。首先,这些系统做出的决定往往是高度重复的,从而为深度强化学习产生大量的训练数据。其次,深度强化学习可以将复杂系统和决策策略建模为深度神经网络。第三,即使缺乏精确的模型,如果存在与目标相关的回报信号,就可以训练那些难以直接优化的目标。最后,通过不断学习,深度强化学习方法可以针对特定工作负载(例如,小型工作,低负载,周期性)进行优化,并在各种条件下保持高效。



技术实现要素:

本发明要解决的技术问题是:提供一种应用于数据中心资源离线调度的深度强化学习算法,成为替代目前高效启发式算法的最优解决方案。

一种基于深度强化学习的数据中心资源离线调度方法,其特征在于,所述数据中心资源离线调度系统包括数据源模块、运行环境模块、评价机制学习模块和控制策略学习模块;

所述数据源模块用于对离线调度作业的数据生成,所述数据源包括作业的所需资源类型(例如,cpu,内存,i/o)、作业的所需资源大小、离线作业的总体数量。

所述运行环境模块用于构建运行环境模型,所述运行环境包含分配的集群资源、等待作业槽。运行环境模块中的所有部分都以单元格的图像表示出来。集群资源显示了每种资源分配给已经计划服务的作业,从当前时间开始,向后展示t时间步长。等待作业槽图像表示等待作业的资源需求。

所述评价机制学习模块将从所述数据源模块与运行环境模块中获得的信息结合评价机制得到运行过程中所需要的奖赏函数,所述奖赏函数作为所述评价机制的反馈数据被所述评价机制学习模块输送至所述控制策略学习模块,进行优化网络参数。

所述控制策略学习模块用于深度强化学习方法的优化策略学习,通过得到的奖赏函数从而用于指导之后的作业调度序列,并通过策略更新神经网络参数,得到所述资源调度作业最终的实际操纵策略。

本发明的前景是广阔的,本发明可以解决数据中心普遍存在高耗能、资源浪费严重等问题。所以,本发明有着很好的应用性,可以给各行各业都带来一定的经济效益。本发明使用的深度强化学习算法相比于现在的算法优点在于其实时性,快速性,可重学习性。

附图说明

图1是本发明一种实施例的深度强化学习的框架示意图。

图2是本发明一种实施例的离线系统的状态示意图。

图3是本发明一种实施例的基于深度强化学习的资源离线调度流程图。

具体实施方式

下面根据附图和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1是本发明实施例的深度强化学习的框架示意图。

如图1所示,智能体与环境在进行交互。在每个时间步长t,智能体观察某个状态s_t,选择一个动作a_t。在行动之后,环境状态过渡到s_(t+1),智能体收到奖励r_t。状态转换和奖励是随机的,并被假定为具有马尔可夫属性。

进一步地,智能体只能控制自己的行为,没有先验知识,环境将转换到哪种状态或奖励可能是什么。通过与环境互动,在训练期间,智能体可以观察这些数量。学习的目标是最大化期望的累积贴现奖励:,其中γ∈(0,1]是折扣奖励的因子。

进一步的,本发明使用的是基于策略搜索的强化学习方法,通过在策略参数上执行梯度下降来学习的一类强化学习算法。目标是最大化预期的累积贴现奖励,这个目标的梯度由下式给出:

进一步的,是从状态s中选择的动作a并且随后遵循策略π_θ的预期累积奖励。策略梯度方法的关键思想是通过观察遵循策略获得的执行轨迹来估计梯度。在简单的蒙特卡洛方法中,智能体采样多个轨迹,并使用经验计算的累积折扣奖励vt作为的无偏估计。然后它通过梯度下降更新策略参数:

进一步的,α是步长。这个等式产生了众所周知的增强算法,可以直观地理解如下。方向给出了如何改变策略参数以增加πθ(st,at)(在at状态下的动作概率st)。方程向这个方向迈出了一步;步长的大小取决于返回vt有多大。在我们的设计中,我们使用一个轻微的变体,通过从每个返回值vt中减去一个基线值来减少梯度估计的方差。

图2是本发明一种实施例的离线系统的状态示意图。

我们将离线系统的状态表示为不同的网格图,包括当前分配的群集资源网格图、等待的作业槽的资源需求网格图。图2最左侧的两个网格显示了每种资源分配给已经计划服务的作业,包含从当前时间至之后t个时间步长。这些图像中的不同颜色代表不同的工作。作业槽网格图表示等待作业的资源需求,作业槽的数量等同于生成的随机作业的数量,使作业能与作业槽一一对应。

图3是本发明一种实施例的基于深度强化学习的资源调度流程图。

如图3所示,该基于深度强化学习的资源调度包括以下步骤:

步骤s301,随机生成离线作业。

进一步地,我们假设两种资源,即容量{1r;1r}。作业持续时间和资源需求选择如下:80%的工作持续时间均在1t和3t之间选择;其余均从10t到15t均匀选择。每个工作都有一个独立的随机挑选的优势资源。对优势资源的需求一般在0.25r和0.5r之间选择,其他资源的需求在0.05r和0.1r之间均匀选择。

步骤s302,把全部离线作业装入作业槽。离线调度作业知道作业的数量和作业的需求。因此,设置作业槽的数量等同于生成的随机离线作业的数量,使作业能与作业槽一一对应。

步骤s303,深度学习网络选择动作值a。

进一步地,我们使用的深度神经网络是卷积神经网络cnn。第一层输入层,第二层卷积层conv1,第三层池化层pool1:maxpooling,第四层卷积层conv2,第五层池化层pool2:maxpooling,第六层全连接层local3,第九层全连接层local4,第10层输出层softmax。依据输出层的概率选择动作值a。

步骤s304,判断作业槽a是否为空。

进一步地,作业槽网格宽度等同于资源最大容量1r,高度等同于20t,即20个时间步长。

步骤s305,判断作业槽a中的作业是否可以装入集群调度。

进一步地,集群网格大小等同于作业槽网格。

步骤s306,作业装入集群,作业槽a设为空。

进一步地,在集群中的网格图像上,显示装入的作业需求资源大小。

步骤s307,集群运行一个时间步长。

进一步地,系统时间增加一个时间步长,集群网格图像向上平移一行。原第一行图像被覆盖,最后一行设为空。

步骤s308,判断是否完成作业调度。

进一步地,完成作业调度必须同时满足以下几点:作业已经全部装入系统、没有正在运行的作业、作业槽中没有等待作业。

步骤s309,通过奖励值更新离线神经网络参数。

进一步地,在本发明的一个实施例中,我们把最小化平均作业slowdown作为优化目标。对于每个作业j,slowdown由给出,其中是作业的完成时间(即到达和完成执行之间的时间),是作业的(理想的)持续时间,注意。由此,我们把每个时间步长的奖励设置为,其中j是当前在系统中的作业(预定或等待服务)的集合。观察设定折扣因子γ=1,随着时间的推移,累积报酬与slowdown的总和一致,因此最大化累积奖励,最小化平均slowdown。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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