技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于强化学习的云计算集群的任务调度方法和系统与流程  >  正文

一种基于强化学习的云计算集群的任务调度方法和系统与流程

  • 国知局
  • 2024-08-05 11:39:59

本技术涉及云计算,尤其涉及一种基于强化学习的云计算集群的任务调度方法和系统。

背景技术:

1、由于云计算中用户和物联网设备的增加,云计算所产生的数据量不断增加,这就导致了带宽使用过多、延迟、成本和能源消耗增加的问题,降低了服务质量,难以满足用户需求。为了提供高质量的服务和高标准的用户需求,云计算集群任务调度的优化策略对于云计算资源的高效利用至关重要。

2、任务数据的高效调度需要复杂的算法作支撑,目前集群调度程序通常采用一些简化且通用的启发式算法。启发式算法在设计上更注重通用性,易于理解和直接实现,虽然能够避免某些节点过载而造成资源浪费,同时确保所有节点的资源被充分利用,却往往忽略了工作负载的具体特性,例如资源占用量,负载执行进度等,导致难以针对特定工作负载实现最优的调度效果。

3、具体地,启发式算法存在问题如下:

4、1.缺乏灵活性和适应性:云计算环境是动态变化的,算法需要能够适应这种变化。传统的启发式调度算法通常是静态的,缺乏对工作负载变化的适应能力。它们可能无法有效地处理工作负载的动态变化,如作业到达模式的变化或集群负载的波动。

5、2.资源利用不足:启发式算法可能导致资源利用不充分,例如,通过简单的公平调度可能无法有效地处理作业的并行性,导致无法充分利用集群的计算资源。

6、3.性能优化的局限性:特定工作负载的调度策略需要专业知识和大量的工作来进行手动调优,这会大大增加工作量和维护难度,并且精度不高。

7、4.难以处理复杂作业结构:许多调度算法无法有效处理具有复杂内部依赖关系的作业,如dag(有向无环图)结构的作业,这限制了它们在现代数据处理系统中的适用性。

8、5.缺乏对作业执行特征的理解:一些调度算法没有充分利用作业的执行特征,从而无法做出更精细的调度决策。

9、6.难以扩展:而随着集群规模的增长,一些调度算法难以扩展,因为它们需要处理更多的作业和资源配置,这可能导致调度决策的复杂性和计算成本显著增加。

10、综上,现在亟需一种利用深度学习的任务调度算法,以预测未来任务的需求和系统的负载情况。

11、申请内容

12、本技术提供一种基于强化学习的云计算集群的任务调度方案,能够解决现有技术中忽略了工作负载的具体特性,难以针对特定工作负载实现最优的调度效果的问题。

13、为解决上述问题,根据本技术的第一方面,本技术提供了一种基于强化学习的云计算集群的任务调度方法,包括:

14、获取云计算集群的状态空间和动作空间,其中,动作空间包括对应于状态空间的多个任务调度动作;

15、根据基于强化学习的任务调度策略,建立用于选择和评估任务调度动作的深度q模型,并设置任务调度动作的奖励预期,作为深度q模型的学习目标;

16、根据奖励预期,从动作空间中选择任务调度动作;

17、根据任务调度策略,按照预定调度时间间隔,使用任务调度动作迭代训练深度q模型,以更新学习目标。

18、优选的,上述任务调度方法中,获取云计算集群的状态空间和动作空间的步骤,包括:

19、获取云计算集群的任务信息、资源信息和当前分配信息,得到云计算集群的所有状态特征;

20、组合云计算集群的所有状态特征,得到云计算集群的状态空间;

21、以及,

22、计算对应状态空间中每一状态特征的所有任务调度动作、动作组合和优先级信息,得到云计算集群的动作空间。

23、优选的,上述任务调度方法中,根据基于强化学习的任务调度策略,建立用于选择和评估任务调度动作的深度q模型,并设置任务调度动作的奖励预期,作为深度q模型的学习目标的步骤,包括:

24、使用多层深度q网络,分别创建两个用于选择和评估任务调度动作的深度q模型;

25、从状态空间和动作空间中分别选择当前状态和当前任务调度动作,根据任务调度策略计算当前状态下当前任务调度动作的奖励和新状态;

26、将当前状态、当前任务调度动作、奖励和新状态作为深度q模型的输入,得到任务调度动作的奖励预期,作为深度q模型的学习目标;

27、设置深度q模型的重放记忆,将当前状态、当前任务调度动作、奖励和新状态作为学习样本,存储至重放记忆中。

28、优选的,上述任务调度方法中,根据奖励预期,从动作空间中选择任务调度动作的步骤,包括:

29、估计当前状态下动作空间中任一任务调度动作的学习目标值;

30、根据学习目标值,计算动作空间中任一任务调度动作的选择概率:

31、

32、其中,q(st,at)表示在st状态选择任务调度动作at的q值,τ值表示动作选择参数。

33、优选的,上述任务调度方法中,根据任务调度策略,按照预定调度时间间隔,使用任务调度动作迭代训练深度q模型的步骤,包括:

34、从云计算集群选择虚拟机,在当前状态下执行当前任务调度动作,计算虚拟机执行过程中的新状态;

35、根据任务调度策略,计算新状态下当前任务调度动作的奖励;

36、将当前状态、当前任务调度动作、奖励和新状态组合为学习样本,存储至重放记忆中;

37、从重放记忆中选择预定数量的学习样本,训练两个深度q模型。

38、优选的,上述任务调度方法中,根据任务调度策略,按照预定调度时间间隔,使用任务调度动作迭代训练深度q模型,以更新学习目标的步骤,包括:

39、从重放记忆中选择预定数量的学习样本,使用学习样本计算两个深度q模型的学习目标,其中,深度q模型包括第一q模型和第二q模型;

40、使用深度q模型的学习目标和学习样本,训练第一q模型,得到第一q模型的训练参数;

41、第二q模型随机间隔预定时间复制第q模型的训练参数,得到第二q模型的权重;

42、使用第二q模型的训练参数,更新第一q模型的权重,并使用第一q模型计算第一学习目标值;

43、使用第二q模型计算第二学习目标值;

44、按照第一q模型的权重和第二q模型的权重,综合第一学习目标值和第二学习目标值,更新得到深度q模型的q值。

45、优选的,上述任务调度方法中,根据任务调度策略,按照预定调度时间间隔,使用任务调度动作迭代训练深度q模型,以更新学习目标的步骤,包括:

46、计算当前状态下,执行当前任务调度动作获得的奖励;

47、使用执行当前任务调度动作获得的奖励,根据学习目标计算公式:

48、

49、计算深度q模型的学习目标;其中,q(s,a)表示当前状态s下执行任务调度动作a的学习目标,γ表示折扣系数,q(s',a')表示下一个状态的预测q值。

50、优选的,上述任务调度方法中,使用任务调度动作迭代训练深度q模型,以更新学习目标的步骤之后,方法还包括:

51、使用任务调度动作迭代训练深度q模型,得到多个不同分值的学习目标;

52、选择分值最高的学习目标对应的任务调度策略,其中,任务调度策略包括多个连续的任务调度动作;

53、从云计算集群中选择对应的虚拟机,依次执行任务调度策略包含的多个连续的任务调度动作。

54、根据本技术的第二方面,本技术还提供了一种基于强化学习的云计算集群的任务调度系统,包括:

55、空间获取模块,用于获取云计算集群的状态空间和动作空间,其中,动作空间包括对应于状态空间的多个任务调度动作;

56、模型建立模块,用于根据基于强化学习的任务调度策略,建立用于选择和评估任务调度动作的深度q模型,并设置任务调度动作的奖励预期,作为深度q模型的学习目标;

57、动作选择模块,用于根据奖励预期,从动作空间中选择任务调度动作;

58、模型训练模块,用于根据任务调度策略,按照预定调度时间间隔,使用任务调度动作迭代训练深度q模型,以更新学习目标。

59、根据本技术的第三方面,本技术还提供了一种基于强化学习的云计算集群的任务调度系统,包括:

60、存储器、处理器及存储在存储器上并在处理器运行的基于强化学习的云计算集群的任务调度程序,基于强化学习的云计算集群的任务调度程序被处理器执行时实现上述任一项技术方案提供的云计算集群的任务调度方法的步骤。

61、综上,本技术上述技术方案提供的基于强化学习的云计算集群的任务调度方案,通过获取云计算集群的状态空间和动作空间,然后基于强化学习的任务调度策略,建立用于选择和评估任务调度动作的深度q模型,并设置任务调度动作的奖励预期作为深度q模型的学习目标,这样就能够使用基于强化学习的任务调度策略调用深度q模型产生一系列决策,模型会选择一个任务调度动作,环境在接受该任务调度动作后状态发生变化,同时产生一个奖励预期,即强化奖惩信号反馈,这样再根据该奖励预期和环境的当前状态选择下一任务调度动作,迭代训练该深度q模型,选择的原则是使得正反馈的概率增大,也即深度q模型的学习目标的值更大,这样通过任务调度动作与环境的交互历史,即状态、动作和奖励,学习一个最优策略,针对特定工作负载的环境状态变化,实现特定工作负载的最优调度。综上,本技术的技术方案,能够解决现有技术中忽略了工作负载的具体特性,难以针对特定工作负载实现最优的调度效果的问题。

技术实现思路

本文地址:https://www.jishuxx.com/zhuanli/20240802/258696.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。