一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于深度强化学习的任务调度方法、系统、装置及介质与流程

2022-10-22 08:33:37 来源:中国专利 TAG:


1.本发明属于深度学习领域,涉及一种基于深度强化学习的任务调度方法、系统、装置及介质。


背景技术:

2.云计算作为一种大规模的异构服务器集群,允许用户通过互联网以低廉的价格租用高性能的服务,云端处理大量应用的同时对云计算平台任务调度的性能要求也急剧加升,一方面,大量终端用户提交的任务具有动态不确定性,任务到达时间及任务所需资源未知,另一方面异构性在云环境中很常见,首先,用户提交的大规模请求是异构的,如计算密集型和i/o密集型,其次,云环境下部署的不同服务器的硬件配置是异构的,动态工作负载会导致同处虚拟机之间的资源竞争,因此,如何实现大规模动态异构任务与虚拟机实例之间的映射,同时保证虚拟机实例之间的负载均衡,是学术界和研究的热点。
3.为了应对上述挑战,现有的方法大多侧重于运用排队论、控制论等理论研究,将调度系统建立为数学模型,对作业调度方案进行理论分析。但是,由于这些解决方案对时间和资源非常敏感,因此它们不适用于动态负载,此外,启发式调度算法将任务分配视为np问题,在静态环境下进行任务调度,忽略了云环境的动态性。


技术实现要素:

4.本发明的目的在于解决现有技术中的问题,提供一种基于深度强化学习的任务调度方法、系统、装置及介质,能够对任务资源进行调度,提高资源利用率,降低运维成本。
5.为达到上述目的,本发明采用以下技术方案予以实现:
6.一种基于深度强化学习的任务调度方法,包括:
7.采集用户的行为数据,并形成数据集;
8.对数据集中的行为数据进行读取,生成任务,并将任务信息按照任务到达的先后顺序以队列的形式进行存储;
9.对任务进行识别、聚类和处理,将任务划分成不同的类型;
10.基于任务信息和基于深度强化学习的任务分配策略,选取对应类型的任务,调度任务信息,满足用户需要。
11.本发明的进一步改进在于:
12.任务信息包括:任务的输入参数、任务复杂度和数据量大小;行为数据包括:用户提交的任务数据和资源的使用情况。
13.对任务进行识别、聚类和处理,将任务划分成不同的类型,具体为:
14.基于k-means算法进行聚类分析,将任务划分为三个任务类型,分别为计算需求型、内存需求型和宽带需求型;再选取不同类型信息的任务进行提交。
15.选取不同类型信息的任务进行提交,具体为:不同的任务在提交时会附带自身的任务信息,其中类型信息作为一个字段存储在任务信息中,表明任务类型的归属。
16.基于深度强化学习的任务分配策略,具体为:
17.初始化q表中的所有元素为0;
18.使用q-learning算法对任务进行排序,将任务作为q-learning中的状态和动作,从当前任务到下一个任务的排序过程作为智能体在当前状态选择一个可执行动作后转移到下一个状态的过程;
19.将每个任务的upward rank值作为该任务对应状态的立即奖励值,通过迭代更新q表,直到q表的值收敛;
20.根据收敛的q表;使用最大q值优先原则对任务进行排序,即每次都选择符合任务依赖关系中的q值最大的任务作为下一个执行任务,直到所有任务都完成排序过程;
21.获取任务的执行顺序后,基于分配策略将每个任务映射到响应的虚拟机上进行执行;具体的分配策略为将任务在每个虚拟机上的最早完成时间和虚拟机的消耗成本通过线性加权的方式进行综合考虑,每次将任务分配到加权和最小的虚拟机上进行执行,使得在任务的完成时间最小并且同时做到虚拟机总成本下降的多目标优化的目的。
22.一种基于深度强化学习的任务调度系统,包括:任务生成器、聚类器、任务调度模块、数据采集器和虚拟机;
23.数据采集器用于采集用户的行为数据,并形成数据集;
24.任务生成器用于对数据集中的行为数据进行读取,生成任务,并将任务信息按照任务到达的先后顺序以队列的形式进行存储至虚拟机中;
25.聚类器用于对存储的任务进行识别、聚类和处理,将任务划分成不同的类型;
26.任务调度模块基于任务信息和基于深度强化学习的任务分配策略,选取对应类型的任务,对虚拟机中的任务数据进行调度,满足用户要求。
27.任务调度模块包括监测器和任务调度器;监测器负责获取所有状态信息,包括虚拟机状态和任务状态,其中,状态监视器用于观察智能体周围的环境,即监测每个虚拟机中任务的执行情况,虚拟机资源的使用情况以及任务调度器中的任务队列;任务状态分为就绪、等待、运行和暂停;状态信息作为输入发送到任务调度器中;
28.任务调度器把任务分配给虚拟机,虚拟机接收所分配的任务,并根据所分配的任务进行仿真,观察得到的奖励和下一个状态,并将这一时刻的环境状态、动作、奖励进行存储。
29.基于深度强化学习的任务分配策略,具体为:
30.初始化q表中的所有元素为0;
31.使用q-learning算法对任务进行排序,将任务看作q-learning中的状态和动作,从当前任务到下一个任务的排序过程看作智能体在当前状态选择一个可执行动作后转移到下一个状态的过程;
32.将每个任务的upward rank值作为该任务对应状态的立即奖励值,通过迭代更新q表,直到q表的值收敛;
33.根据收敛的q表;使用最大q值优先原则对任务进行排序,即每次都选择符合任务依赖关系中的q值最大的任务作为下一个执行任务,直到所有任务均完成排序过程;
34.获取任务的执行顺序后,基于分配策略将每个任务映射到响应的虚拟机上进行执行;具体的分配策略为将任务在每个虚拟机上的最早完成时间和虚拟机的消耗成本通过线
性加权的方式进行综合考虑,每次将任务分配到加权和最小的虚拟机上进行执行,使得在任务的完成时间最小并且同时做到虚拟机总成本下降的多目标优化的目的。
35.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
36.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
37.与现有技术相比,本发明具有以下有益效果:
38.本发明通过对用户的行为数据进行采集、读取和处理,获取所有数据的状态信息,并基于任务分配策略,对数据进行调度,并判断调度结果是否满足用户需要,若不满足,重新进行调度,直到满足用户需要为止。本发明基于深度强化学习模型对任务资源进行调度,提高资源利用率,降低运维成本,在任务平均耗时,最小完工时间以及系统总能耗方面,能够提高调度效率,促进集群负载均衡。
附图说明
39.为了更清楚的说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
40.图1是本发明的基于深度强化学习的任务调度方法流程图;
41.图2是本发明的基于深度强化学习的任务调度系统结构图;
42.图3是本发明的任务调度模块的结构图;
43.图4是本发明的任务调度框架图;
44.图5是本发明的深度强化学习模型结构图;
45.图6为基于dqn的任务调度程序流程图。
具体实施方式
46.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
47.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
49.在本发明实施例的描述中,需要说明的是,若出现术语“上”、“下”、“水平”、“内”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的
装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
50.此外,若出现术语“水平”,并不表示要求部件绝对水平,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
51.在本发明实施例的描述中,还需要说明的是,除非另有明确的规定和限定,若出现术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
52.下面结合附图对本发明做进一步详细描述:
53.参见图1,本发明公开了一种基于深度强化学习的任务调度方法,包括:
54.s101,采集用户的行为数据,并形成数据集。
55.行为数据包括:用户提交的任务数据和资源的使用情况。
56.s102,对数据集中的行为数据进行读取,生成任务,并将任务信息按照任务到达的先后顺序以队列的形式进行存储。
57.任务信息包括:任务的输入参数、任务复杂度和数据量大小。
58.s103,对存储的任务进行识别、聚类和处理,将任务划分成不同的类型。
59.具体为:基于k-means算法进行聚类分析,将任务划分为三个任务类型,分别为计算需求型、内存需求型和宽带需求型。
60.s104,基于任务信息和基于深度强化学习的任务分配策略,选取对应类型的任务,调度任务信息,满足用户需要。
61.选取对应类型任务,具体为:不同的任务在提交时会附带自身的任务信息,其中类型信息作为一个字段存储在任务信息中,表明任务类型的归属。
62.基于深度强化学习的任务分配策略,具体为:
63.初始化q表中的所有元素为0;
64.使用q-learning算法对任务进行排序,将任务作为q-learning中的状态和动作,从当前任务到下一个任务的排序过程作为智能体在当前状态选择一个可执行动作后转移到下一个状态的过程;
65.将每个任务的upward rank值作为该任务对应状态的立即奖励值,通过迭代更新q表,直到q表的值收敛;
66.根据收敛的q表;使用最大q值优先原则对任务进行排序,即每次都选择符合任务依赖关系中的q值最大的任务作为下一个执行任务,直到所有任务都完成排序过程;
67.获取任务的执行顺序后,基于分配策略将每个任务映射到响应的虚拟机上进行执行;具体的分配策略为将任务在每个虚拟机上的最早完成时间和虚拟机的消耗成本通过线性加权的方式进行综合考虑,每次将任务分配到加权和最小的虚拟机上进行执行,使得在任务的完成时间最小并且同时做到虚拟机总成本下降的多目标优化的目的。
68.参见图2,本发明公布了一种基于深度强化学习的任务调度系统,包括:任务生成器、聚类器、任务调度模块、数据采集器和虚拟机;
69.所述数据采集器用于采集用户的行为数据,并形成数据集;
70.所述任务生成器用于对数据集中的行为数据进行读取,生成任务,并将任务信息按照任务到达的先后顺序以队列的形式进行存储至虚拟机中;
71.所述虚拟机用于存储任务信息;
72.所述聚类器用于对存储的任务进行识别、聚类和处理,将任务划分成不同的类型;
73.所述任务调度模块基于任务信息和基于深度强化学习的任务分配策略,选取对应类型的任务,对虚拟机中的任务数据进行调度,满足用户需要。
74.参见图3,任务调度模块包括监测器和任务调度器;所述监测器负责获取所有状态信息,包括虚拟机状态和任务状态,其中,状态监视器用于观察智能体周围的环境,即监测每个虚拟机中任务的执行情况,虚拟机资源的使用情况以及任务调度器中的任务队列;任务状态分为就绪、等待、运行和暂停;状态信息作为输入发送到任务调度器中;
75.任务调度器把任务分配给虚拟机,虚拟机接收所分配的任务,并根据所分配的任务进行仿真,观察得到的奖励和下一个状态,并将这一时刻的环境状态、动作、奖励进行存储。
76.基于深度强化学习的任务分配策略,具体为:
77.初始化q表中的所有元素为0;
78.使用q-learning算法对任务进行排序,将任务看作q-learning中的状态和动作,从当前任务到下一个任务的排序过程看作智能体在当前状态选择一个可执行动作后转移到下一个状态的过程;
79.将每个任务的upward rank值作为该任务对应状态的立即奖励值,通过迭代更新q表,直到q表的值收敛;
80.根据收敛的q表;使用最大q值优先原则对任务进行排序,即每次都选择符合任务依赖关系中的q值最大的任务作为下一个执行任务,直到所有任务均完成排序过程;
81.获取任务的执行顺序后,基于分配策略将每个任务映射到响应的虚拟机上进行执行;具体的分配策略为将任务在每个虚拟机上的最早完成时间和虚拟机的消耗成本通过线性加权的方式进行综合考虑,每次将任务分配到加权和最小的虚拟机上进行执行,使得在任务的完成时间最小并且同时做到虚拟机总成本下降的多目标优化的目的。
82.本发明的设计流程如下:
83.1.建立任务调度系统模型
84.在常见的在线云任务调度场景中,用户提交任务到任务调度器,任务调度器根据任务调度算法把任务分配到合适的虚拟机。根据深度强化学习的特点,本发明在任务调度器模块中额外增加了任务缓存队列、状态监视器和回放记忆单元。如附图4所述。
85.假设在用户终端上存在一个任务队列,用户不停的将任务队列中的任务提交到任务调度器。任务调度器中设置一个任务队列用来存储用户提交的任务,由于队列的开销是比较小的,所以可以认为这个任务队列的长度是无限的,可以用来存储不同用户提交的不同类型的所有任务。任务调度器中的任务队列、调度算法、状态监视器和回放记忆单元4个模块之间数据是相互共享的。状态监视器在本文的drl框架中扮演环境监视器的角色,用于观察智能体周围的环境,即监测数据中心中每个虚拟机中任务的执行情况,虚拟机资源的使用情况,以及任务调度器中的任务队列。回放记忆单元是针对接下来提出改进drl算法特
别设计的,用于存放任务执行的历史信息,使drl可以进行离线训练,同时打破了数据之间的相关性,回放记忆单元中的历史任务来自数据中心每台虚拟机所产生的数据。任务调度算法可以是接下来所提出的drl算法,也可以是传统的调度算法,如最小执行时间调度算法(met)、最小完成时间调度算法(mct)、先来先服务调度算法(fifo)、短作业优先调度算法(sjf)等。如果使用drl算法,那么其中的智能体在每一步将会从状态监视器中读取环境数据用于在线调度,从回放记忆单元中采样历史数据用于离线训练,最终把任务调度队列中的任务调度给指定的虚拟机。
86.2.设计深度强化学习模型结构
87.本发明首先完成了drl中状态空间、动作空间和奖励函数三个重要的部分的设计,然后给出了基于dqn算法的云任务调度算法整体设计,之后通过bolttzmann q policy增强了动作选择时的探索能力,最后给出了基于dqn算法的云任务调度在程序上的实现。其中,状态空间、动作空间和奖励函数的设计如下:
88.状态空间(s):一个状态可以定义为每个虚拟机执行任务的情况,可以用一个向量表示。例如:s=(1,0,...,1)表示第一个虚拟机目前被一个任务占用,第二个虚拟机空闲,最后一个虚拟机被一个任务占用。
89.动作空间(a):对于第n个任务请求,将其定义为动作空间(0/1),意味着第n个任务请求是否被提供给第m个虚拟机执行。例如,a(0,1,0,..,0)表示t时刻第n个任务请求被分配给第2个虚拟机。
90.奖励函数(r):被用来反映正确的运行状态和任务的调度效率。目前,能耗是任务调度效率一个重要的衡量标准。在任务截止时间的约束下,通过减少任务的等待时间来设计奖励函数,具体由公式表示如下:
[0091][0092]
其中,i为第i个物理机,i_local为第i个物理机的虚拟机数目,j为第i个物理机上第j个虚拟机,u
i,j
是第i个物理机上第j个虚拟机的利用率,由此可得第i个物理机上所有虚拟机的利用率为
[0093][0094]
averwj表示任务n在虚拟机j上的平均等待时间,如果当前任务被调度给一个虚拟机,且该虚拟机的平均利用率比原来的平均利用率高,等待时间小于原来的等待时间,则得到正面奖励,值为1;否则,得到负面奖励,值为0。
[0095]
深度强化学习方法通过智能体和环境的不断交互来优化智能体的策略,深度强化学习模型结构如附图5所示。智能体获取当前时刻的系统状态,用向量对系统状态进行表示,将获取到的状态向量输入到智能体的神经网络中,网络输出该状态对应的动作决策到环境中,此时环境状态会发生变化,同时会得到一个关于状态和动作的奖励反馈给智能体,智能体根据奖励可以知道所做决策正确与否,从而不断优化神经网络。智能体使用的网络结构为经典的actor-critic框架。actor-critic框架包含actor网络和critic网络,actor网络输出智能体的动作,critic网络输出状态的值函数,用于评价动作的好坏。因为actor
网络和critic网络都是从状态中提取集群信息,因此两个网络前两层结构相同。
[0096]
3.任务调度算法设计
[0097]
本发明基于dqn的任务调度进行设计,其算法流程图如附图6所示。程序首先初始化仿真环境、网络权重、超参数和boltzmann探索策略,然后调度算法检测任务队列中是否有用户提交的任务,并观察环境状态st,之后执行探索策略,在通过q网络生成动作时会在其后加上boltzmann动作探索策略;之后调度器根据动作把任务分配给虚拟机,并开始进行仿真,观察得到的奖励和下一个状态,把(st,at,rt)存入记忆单元r,由于神经网络的训练需要一定的数据,先让智能体对环境探索一段时间再开始训练,于是要判断当前步骤是否大于设置的探索步骤,即:step》step_warmup;之后从经验池中随机选取数据对当前值网络进行训练,每过c步更新目标值网络;最后判断步数是否达到最大步数,如果是则终止程序,否则继续。其中,at为动作空间状态,rt为奖励函数状态。
[0098]
4.进行仿真测试
[0099]
为了与业界最佳传统调度算法实践进行对比,设计随机负载和云资源配置,收集不同场景配置下的各方法的性能指标并进行对比。主要考虑离线和在线两类算法的性能指标对比,对比指标包括任务平均用时、平均完工时间、系统总能耗和系统总收益等。发现算法的收敛速度较快,在主要指令响应时间比、负载均衡等优化指标上比传统算法更好。
[0100]
深度强化学习在云计算中的研究已经有了大量成果;但是,在云任务调度中的研究成果还比较少,相对而言深度q学习算法使用的较多。经典的任务调度算法没有考虑集群的高异构性的特点,另一方面,集群高异构性将增加调度算法提取状态特征的难度,相比于启发式智能任务调度算法,深度学习在特征提取上具有显著的优势,深度强化学习更进一步的能够对调度策略进行自动调整。在模拟数据集和阿里云集群跟踪数据集上进行相关了实验,分析发现在集群异构性高、任务波动性大的场景下,本发明提出的算法拥有良好的收敛性,并且大幅提高了任务的指令响应时间比,促进了集群负载均衡。
[0101]
本发明一实施例提供的终端设备。该实施例的终端设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
[0102]
所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。
[0103]
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。
[0104]
所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
[0105]
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。
[0106]
所述终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0107]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献