CN113094159A - 一种数据中心作业调度方法、系统、存储介质及计算设备 - Google Patents
一种数据中心作业调度方法、系统、存储介质及计算设备 Download PDFInfo
- Publication number
- CN113094159A CN113094159A CN202110302860.0A CN202110302860A CN113094159A CN 113094159 A CN113094159 A CN 113094159A CN 202110302860 A CN202110302860 A CN 202110302860A CN 113094159 A CN113094159 A CN 113094159A
- Authority
- CN
- China
- Prior art keywords
- job
- scheduling
- server
- pair
- scheduler
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000003860 storage Methods 0.000 title claims abstract description 33
- 238000013528 artificial neural network Methods 0.000 claims abstract description 36
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 43
- 238000012549 training Methods 0.000 claims description 17
- 230000009471 action Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000001186 cumulative effect Effects 0.000 claims description 6
- 238000005265 energy consumption Methods 0.000 description 22
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004880 explosion Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000002787 reinforcement Effects 0.000 description 5
- 230000008602 contraction Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000001816 cooling Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000002360 explosive Substances 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000009891 weiqi Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据中心作业调度方法、系统、存储介质及计算设备,利用模拟器对调度器进行训练;然后在每个调度时刻,调度器根据先到先服务原则依次遍历现存未完成作业中包含的未完成任务,将可以接受这一任务执行的服务器的状态参数和任务的参数组成一个服务器‑作业对保存;将保存的服务器‑作业对列表输入到神经网络中计算对应的Q值,选择Q值最高的服务器‑作业对作为调度决策,将任务调度到被选择的服务器‑作业对中对应的服务器上执行;如果作业中所有未调度任务都已经完成调度决策,则标记该作业此次已完成,继续遍历未完成作业列表,完成作业调度。本发明提高了算法性能。
Description
技术领域
本发明属于数据中心能耗管理技术领域,具体涉及一种数据中心作业调度方法、系统、存储介质及计算设备。
背景技术
近年来随着计算机科学技术的发展,硬件的计算能力不断提升,而互联网业务的蓬勃发展,也使得互联网数据量呈现爆炸式增长。这些都导致了对计算资源的需求飞速提升。单机的计算能力已经不能满足需求。因此云计算应运而生。云计算是分布式计算、并行计算、虚拟化、负载均衡等传统计算机和网络技术发展融合的产物。云计算将大量的服务器通过虚拟机技术虚拟为一个个计算资源节点,用户无需关心硬件的实现和维护,只需要在云端购买计算资源,即可快速的获取自己所需的资源。而云计算的背后离不开数据中心的支撑。
数据中心是由数万台服务器,数百台网络设备,以及冷却设备、供电设备等构成。数据中心能耗十分巨大,降低数据中心典礼能耗具有重大的社会意义。同时,据统计,在数据中心长期运营成本中,电力能耗成本所占比率约为50%,降低数据中心电力能耗也有助于降低数据中心长期运营成本,具有重大的现实意义。
在数据中心中,能耗主要由四部分所消耗,包括:IT设备,冷却设备,供电设备和照明设备。其中IT设备能耗约占60%,冷却设备约占30%。供电设备和照明设备共占约10%。由此可见,IT设备能耗是数据中心能耗的主要组成部分。因此降低IT设备能耗能有效降低数据中心能耗,其具有重要意义。
降低IT设备能耗的相关研究通常可以分为硬件层面的节能和系统层面的节能,分别指使用动态电压缩放等技术节省各IT设备部件能耗和进行作业或虚拟机调度来节能。IT设备的能耗较高的原因除了本身硬件能效低之外,主要就是作业或虚拟机分配的不合理,目前的研究点主要就集中在合理分配设备资源,例如通过作业调度或虚拟机迁移技术来关闭空闲设备。
然而,目前数据中心规模不断扩大,大型数据中心中可能部署了数千台服务器。而且随着数据中心的不断发展,数据中心中新旧服务器并存,服务器的参数各不相同。因此设计一个面向能耗最小化的专家系统用于作业调度越来越难以实现。而近年来深度强化学习在复杂系统控制方面取得了突出成就。深度强化学习在围棋和电子游戏上都取得了比人类更优异的成绩。因此深度强化学习在面向能耗最小化的数据中心作业调度器设计方面有着优异的前景,也受到了学界的关注。
然而,现存的面向能耗最小化基于深度强化学习的数据中心作业调度器设计通常是把整个集群的状展平输入到神经网络中。这种方法存在以下问题:
1.不支持弹性伸缩。云计算最为关键的特性就是可扩展性。数据中心作为云计算的基础设施,也必然要支持新服务器的加入和服务器的退出。由于神经网络的特性决定了输入的维度必须是固定的。因此简单地将整个集群的信息输入神经网络显然无法支持新服务器的加入,或者说集群规模的扩大。而服务器的宕机退出虽然可以简单地把对应服务器的剩余资源设置为0来规避调度,但是显然这也增加了神经网络的学习难度。
2.维度爆炸。当数据中心规模增大时,状态空间和动作空间规模会线性增长,有维度爆炸的风险。
3.冗余信息过多。正常运行的数据中心集群应处于一个较繁忙的状态。此时大部分服务器无法承担新任务的运行。将整个集群的状态都输入网络会导致神经网络接受到很多冗余信息,增加了学习难度。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种数据中心作业调度方法、系统、存储介质及计算设备,解决数据中心作业调度器存在不支持弹性伸缩、维度爆炸,冗余信息过多的问题。
本发明采用以下技术方案:
一种数据中心作业调度方法,利用模拟器对调度器进行训练至收敛;然后在每个调度时刻,调度器根据先到先服务原则依次遍历现存未完成作业中包含的未完成任务,将未完成任务的资源需求与集群中各服务器可提供的资源做对比,将可以接受这一任务执行的服务器的状态参数和任务的参数组成一个服务器-作业对保存;对比完成后,将保存的服务器-作业对列表输入到神经网络中计算对应的Q值,选择Q值最高的服务器-作业对作为调度决策,将任务调度到被选择的服务器-作业对中对应的服务器上执行;如果作业中所有未调度任务都已经完成调度决策,则标记为已完成,继续遍历未完成作业列表,完成作业调度。
具体的,调度器的单次调度过程具体为:
调度器判断当前时刻是否存在未完成调度的作业,如果没有,则结束;如果存在未完成的调度作业,选取最先到达的作业进行调度;
判断作业是否存在未作出调度决策的任务,如果存在,选取任务做出调度决策;
如果作业不存在未作出调度决策的任务,标记作业在当前时刻完成调度。
具体的,调度决策具体为:
调度器选取本次要调度的任务后,遍历集群中所有的服务器,对比服务器剩余资源和任务需求,判断服务器是否满足任务需求,如果满足需求,服务器特征和任务特征组成服务器-作业对machine_job_pair,将服务器-作业对加入服务器-作业对列表machine_job_pair_list中;遍历结束后,将machine_job_pair_list作为一个batch输入到神经网络中,神经网络输出一个Q_list,选择Q_list中最大值对应的machine_job_pair作为调度决策,将任务调度到machine_job_pair中对应服务器上执行。
具体的,训练调度器具体为:
使用两个结构相同的价值网络和目标网络,采用基于episode的方式在模拟器中对调度器进行训练,目标网络选择价值网络中Q值最大的动作作为自己的动作用于更新价值网络;每间隔固定的迭代次数后将价值网络的参数复制到目标网络;
在每个episode中,作业按照对应的到达时间提交到模拟器中;定义调度器的奖励函数,在每个时间步,调度器根据状态做出动作,然后根据奖励函数获得奖励,使用折扣方式更新价值函数Q(st,a);
在每次做出调度决策时将Q值最大的服务器-作业对作为状态st,然后将(st-1,rt-1,st,is_done)四元组存入记忆池中,每次更新价值网络网络时从记忆池中采样一个batch的样本;
当每次有新作业到达时,调度器在每个时间步进行调度,直至不存在未完全调度的作业;调度器训练完毕。
进一步的,调度器的累计奖励函数为从当前时刻t到未来的奖励之和R(t),具体为:
其中,T为一个Epsiode的结束时刻,t为当前时刻,r(t)为调度器的奖励函数,M是集群中服务器数量,machinek.power是服务器k的功率,α,β是常数,t为获取奖励的时刻,Tbaseline为baseline算法一个epsiode的结束时刻。
进一步的,使用折扣方式更新价值函数Q(st,a)如下:
其中,γ是折扣系数,γ<1,r(t)为奖励函数,maxa′Q(st+1,a′)为神经网络在状态st+1作为输入时,所有动作中对应输出中的最大值。
进一步的,从记忆池中采样一个batch的样本,样本表示为(sj,rj,sj+1,is_done),价值神经网络的损失函数如下
yj=rj+γQ′(sj+1)×is_done
其中,M为集群中服务器数量,rj为时刻j的奖励函数值,γ是折扣系数,Q′为目标网络,sj+1为j+1时刻的状态,Q(sj)为时刻j状态对应的价值网络输出。
本发明的另一技术方案是,一种数据中心作业调度系统,包括:
对比模块,利用模拟器对调度器进行训练至收敛;然后在每个调度时刻,调度器根据先到先服务原则依次遍历现存未完成作业中包含的未完成任务,将未完成任务的资源需求与集群中各服务器可提供的资源做对比,将可以接受这一任务执行的服务器的状态参数和任务的参数组成一个服务器-作业对保存;
计算模块,神经网络根据服务器-作业对列表计算对应的Q值,选择Q值最高的服务器-作业对作为调度决策,将任务调度到被选择的服务器-作业对中对应的服务器上执行;
调度模块,如果作业中所有未调度任务都已经完成调度决策,则标记该作业此次已完成,继续遍历未完成作业列表,完成作业调度。
本发明的另一技术方案是,一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据所述的方法中的任一方法。
本发明的另一技术方案是,一种计算设备,包括:
一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述的方法中的任一方法的指令。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种数据中心作业调度方法,利用模拟器对调度器进行训练至收敛;然后在每个调度时刻,调度器根据先到先服务原则依次遍历现存未完成作业中包含的未完成任务,将未完成任务的资源需求与集群中各服务器可提供的资源做对比,通过采用先到先服务的模型,尽量在一次调度中放置更多的任务;对比完成后,将保存的服务器-作业对列表输入到神经网络中计算对应的Q值,选择Q值最高的服务器-作业对作为调度决策,使用基于深度Q网络的方法,相比传统专家系统可以更好地进行大规模复杂集群的调度,将任务调度到被选择的服务器-作业对中对应的服务器上执行;如果作业中所有未调度任务都已经完成调度决策,则标记该作业此次已完成,继续遍历未完成作业列表,完成作业调度;使用服务器-作业对作为神经网络的输入,使得神经网络的输入向量维度不随集群规模变化,加快了算法收敛,提高了方法的性能。
进一步的,单次调度根据先到先服务调度所有集群能满足任务资源需求的任务,加快了任务放置速度。
进一步的,通过筛选服务器是否满足任务资源需求而构成服务器-作业对,避免了不满足任务资源需求的服务器也输入神经网络造成的冗余信息过多的问题。
进一步的,取价值网络和目标网络两个神经网络进行训练,能够单个网络过高估计的问题,提高算法性能进一步的,奖励函数既考虑了能耗也考虑了作业执行时间,避免了调度器不分配任务导致能耗降低却延长了作业执行时间的问题。
进一步的,采取折扣累计奖励函数进行计算,便于网络在不能遍历全部状态动作对的情况下收敛。
进一步的,奖励函数既考虑了能耗也考虑了作业执行时间,避免了调度器不分配任务导致能耗降低却延长了作业执行时间的问题。
进一步的,采取从记忆池采样的损失函数计算方式,避免了样本间相关性造成价值神经网络不易收敛的问题。
一种数据中心作业调度系统,由对比模块、计算模块和调度模块构成。模块化的设计便于对模块的修改和系统的扩展,有利于系统的实现和维护。
综上所述,本发明通过使用服务器-作业对作为神经网络的输入,解决了现存算法存在的不支持弹性伸缩、维度爆炸,冗余信息过多这三个问题,加快了算法收敛,提高了算法性能。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为调度器单次调度流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在附图中示出了根据本发明公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
一种数据中心作业调度方法,在每个调度时刻,调度器根据先到先服务(FirstCome First Service,FCFS)的原则依次遍历现存未完成作业中包含的未完成任务,将未完成任务的资源需求与集群中各服务器可提供的资源做对比,将可以接受这一任务执行的服务器的状态参数和任务的参数组成一个服务器-作业对保存。对比完成后,将保存的服务器-作业对列表输入到神经网络中计算其Q值,选择Q值最高的服务器-作业对作为调度决策,也就是说将任务调度到被选择的服务器-作业对中对应的服务器上执行。
1.系统模型
用户将其任务打包成一个作业提交到系统中,作业Job的信息表示为Jobn={tn,[Taskn1,Taskn2,…,Taskni]},Jobn为第n个作业,tn为作业的到达时间,即用户提交的时间,[Taskn1,Taskn2,…,Taskni]为作业包含的任务列表。
每个任务可以被描述为Taskni={cpui,memoryi,durationi,instance_numberi},其中Taskni为第n个作业的第i个任务,cpui为一个任务实例所需占用的CPU资源,memoryi为一个任务实例所需占用的内存资源,durationi为一个任务实例执行所需时间,instance_numberi为任务所需任务实例数量。
假定集群中有M台服务器,整个集群的状态表示为cluster_status={machine1,machine2,…,machinem,machinem+1,…,machineM},其中cluster_status为整个集群的状态,machinem为第j台服务器的状态。
服务器的状态表示为machinej={rcpuj,rmemoryj,powerj},其中machinej为第j台服务器的状态,rcpuj为第j台服务器剩余的CPU资源,rmemoryj为第j台服务器剩余的内存资源,powerj为第j台服务器的功率。
请参阅图1,本发明一种数据中心作业调度方法,在每次调度时,调度器根据先到先服务(First Come First Service,FCFS)的原则依次调度现存未完成作业中包含的未完成任务,以提高调度吞吐量,避免印调度因素提高任务完成时间;调度器遍历未完成作业列表,选取到达时间最早的作业,然后遍历作业中未完成的任务,对每个任务做出调度决策。如果作业中所有未调度任务都已经完成调度决策,则标记该作业此次已完成,继续遍历未完成作业列表。
调度器的单次调度的具体步骤如下:
S1、判断当前时刻是否存在未完成调度的作业,如果没有,则结束;如果存在未完成的调度作业,选取最先到达的作业进行调度;
S2、如果没有最先到达的作业,选取任务做出调度决策,如果有最先到达的作业,判断作业是否存在未作出调度决策的任务,如果存在,选取任务做出调度决策;
S3、如果作业不存在未作出调度决策的任务,标记作业在当前时刻完成调度。
调度决策具体为:
调度器选取本次要调度的任务后,遍历集群中所有的服务器,对比服务器剩余资源和任务需求,判断服务器是否满足任务需求,即
如果满足需求就服务器特征和任务特征组成服务器-作业对machine_job_pair,具体如下:
将服务器-作业对加入服务器-作业对列表machine_job_pair_list中。
遍历结束后,将machine_job_pair_list作为一个batch输入到神经网络中,神经网络会输出一个Q_list;Q_list的长度与machine_job_pair_list相同。
由于一个batch的大小可变,由此调度器支持了服务器的弹性伸缩。在本方法下神经网络的输入特征数固定为machine_job_pair的维度,避免了信息爆炸。同时,通过遍历过程只有可供任务运行的服务器才会作为神经网络的输入,避免了冗余信息的输入。
接着,选择Q_list中最大值对应的machine_job_pair作为调度决策,即将任务调度到machine_job_pair中对应服务器上执行。
产生调度决策的伪代码如下:
训练调度器
调度器是基于深度强化学习的,因此采用基于episode的方式在模拟器中进行训练。在每个episode中,作业按照其到达时间提交到模拟器中。当每次有新作业到达时,调度器会在每个时间步都进行调度,直至不存在未完全调度的作业。
定义调度器的奖励函数为:
其中,T为一个Epsiode的结束时刻,t为当前时刻,M是集群中服务器数量,machinek.power是服务器k的功率,α,β是常数,t为获取奖励的时刻,Tbaseline为baseline算法一个epsiode的结束时刻。
因为调度器的目标是能耗最小化,因此奖励函数第一项是负的服务器平均功率。但是在真实数据中心中要保证服务质量,因此作业完成时间不能过长,因此当当前时间超出baseline算法(如First-Fit算法)的运行时间后,奖励函数会添加第二项,用于惩罚作业执行时间过长。
从奖励函数中看出,累计奖励越大,数据中心能耗越小;因此在训练中调度器的目标是最大化累积奖励,因此可以定义累计奖励函数R(t),累计奖励函数是从当前时刻t到未来的奖励之和,具体为:
在每个时间步,调度器根据状态做出动作,然后根据奖励函数获得奖励。因此为了最大化累计奖励函数,可以将状态-动作对(st,a)的价值函数定义为在状态st下执行动作a后奖励函数的期望,具体为:
Qπ(st,a)=E[R(t)|st,a]=E[r(t)+Qπ(st+1,a′)|st,a]
由于希望最大化累计奖励函数,所以要求解最优的价值函数Q*(st,a),最优价值函数如下:
由于调度器无法遍历所有的状态和动作,因此只能得到有限的样本用于更新价值函数,使用折扣方式更新价值函数Q(st,a)如下:
其中,γ是折扣系数,γ<1。
为了避免过高估计问题,在训练中使用两个结构相同的神经网络,分别叫做价值网络和目标网络。Q(st,a)由价值网络负责近似,而Q′(st+1,a′)由目标网络负责近似。目标网络选择价值网络中Q值最大的动作作为自己的动作用于更新价值网络。每间隔固定的迭代次数就将价值网络的参数复制到目标网络。由此得到价值函数为:
因为本方法输入的是服务器-作业对,相当于状态中隐含了动作。因此Q(st,a)可用简化为Q(st)。
在训练过程中,在每次做出调度决策时都会将Q值最大的服务器-作业对作为状态st,然后将(st-1,rt-1,st,is_done)四元组存入记忆池中,其中如果做出调度决策后episode结束,则isdone=0,否则isdone=1。
每次更新价值网络时从记忆池中采样一个batch的样本。假设一个batch存在M个服务器,从记忆池中采样一个batch的样本,样本表示为(sj,rj,sj+1,is_done),价值因此价值神经网络的损失函数如下
yj=rj+γQ′(sj+1)×is_done
其中,M为集群中服务器数量,rj为时刻j的奖励函数值,γ是折扣系数,Q′为目标网络,sj+1为j+1时刻的状态,Q(sj)为时刻j状态对应的价值网络输出。
在一个episode中,调度器根据调度算法进行调度,在产生调度决策时∈-greedy算法进行探索和决策。每次做出决策后根据上述公式更新调度器。
整体训练算法伪代码如下
调度器训练多个episode,直至episode中累计奖励不再升高,算法收敛。
本发明再一个实施例中,提供一种数据中心作业调度系统,该系统能够用于实现上述数据中心作业调度方法,具体的,该数据中心作业调度系统包括对比模块、计算模块以及调度模块。
其中,对比模块,利用模拟器对调度器进行训练至收敛;然后在每个调度时刻,调度器根据先到先服务原则依次遍历现存未完成作业中包含的未完成任务,将未完成任务的资源需求与集群中各服务器可提供的资源做对比,将可以接受这一任务执行的服务器的状态参数和任务的参数组成一个服务器-作业对保存;
计算模块,神经网络根据服务器-作业对列表计算对应的Q值,选择Q值最高的服务器-作业对作为调度决策,将任务调度到被选择的服务器-作业对中对应的服务器上执行;
调度模块,如果作业中所有未调度任务都已经完成调度决策,则标记该作业此次已完成,继续遍历未完成作业列表,完成作业调度。。
本发明再一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor、DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于数据中心作业调度方法、系统、存储介质及计算设备的操作,包括:
利用模拟器对调度器进行训练至收敛;然后在每个调度时刻,调度器根据先到先服务原则依次遍历现存未完成作业中包含的未完成任务,将未完成任务的资源需求与集群中各服务器可提供的资源做对比,将可以接受这一任务执行的服务器的状态参数和任务的参数组成一个服务器-作业对保存;对比完成后,将保存的服务器-作业对列表输入到神经网络中计算对应的Q值,选择Q值最高的服务器-作业对作为调度决策,将任务调度到被选择的服务器-作业对中对应的服务器上执行;如果作业中所有未调度任务都已经完成调度决策,则标记该作业此次已完成,继续遍历未完成作业列表,完成作业调度。
本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关数据中心作业调度方法、系统、存储介质及计算设备的相应步骤;计算机可读存储介质中的一条或一条以上指令由处理器加载并执行如下步骤:
利用模拟器对调度器进行训练至收敛;然后在每个调度时刻,调度器根据先到先服务原则依次遍历现存未完成作业中包含的未完成任务,将未完成任务的资源需求与集群中各服务器可提供的资源做对比,将可以接受这一任务执行的服务器的状态参数和任务的参数组成一个服务器-作业对保存;对比完成后,将保存的服务器-作业对列表输入到神经网络中计算对应的Q值,选择Q值最高的服务器-作业对作为调度决策,将任务调度到被选择的服务器-作业对中对应的服务器上执行;如果作业中所有未调度任务都已经完成调度决策,则标记该作业此次已完成,继续遍历未完成作业列表,完成作业调度。
综上所述,本发明一种数据中心作业调度方法、系统、存储介质及计算设备,通过使用服务器-作业对作为神经网络的输入,解决了现存算法存在的不支持弹性伸缩、维度爆炸,冗余信息过多这三个问题,加快了算法收敛,提高了算法性能。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (10)
1.一种数据中心作业调度方法,其特征在于,利用模拟器对调度器进行训练至收敛;然后在每个调度时刻,调度器根据先到先服务原则依次遍历现存未完成作业中包含的未完成任务,将未完成任务的资源需求与集群中各服务器可提供的资源做对比,将可以接受这一任务执行的服务器的状态参数和任务的参数组成一个服务器-作业对保存;对比完成后,将保存的服务器-作业对列表输入到神经网络中计算对应的Q值,选择Q值最高的服务器-作业对作为调度决策,将任务调度到被选择的服务器-作业对中对应的服务器上执行;如果作业中所有未调度任务都已经完成调度决策,则标记为已完成,继续遍历未完成作业列表,完成作业调度。
2.根据权利要求1所述的方法,其特征在于,调度器的单次调度过程具体为:
调度器判断当前时刻是否存在未完成调度的作业,如果没有,则结束;如果存在未完成的调度作业,选取最先到达的作业进行调度;判断作业是否存在未作出调度决策的任务,如果存在,选取任务做出调度决策;如果作业不存在未作出调度决策的任务,标记作业在当前时刻完成调度。
3.根据权利要求1所述的方法,其特征在于,调度决策具体为:
调度器选取本次要调度的任务后,遍历集群中所有的服务器,对比服务器剩余资源和任务需求,判断服务器是否满足任务需求,如果满足需求,服务器特征和任务特征组成服务器-作业对machine_job_pair,将服务器-作业对加入服务器-作业对列表machine_job_pair_list中;遍历结束后,将machine_job_pair_list作为一个batch输入到神经网络中,神经网络输出一个Q_list,选择Q_list中最大值对应的machine_job_pair作为调度决策,将任务调度到machine_job_pair中对应服务器上执行。
4.根据权利要求1所述的方法,其特征在于,训练调度器具体为:
使用两个结构相同的价值网络和目标网络,采用基于episode的方式在模拟器中对调度器进行训练,目标网络选择价值网络中Q值最大的动作作为自己的动作用于更新价值网络;每间隔固定的迭代次数后将价值网络的参数复制到目标网络;在每个episode中,作业按照对应的到达时间提交到模拟器中;定义调度器的奖励函数,在每个时间步,调度器根据状态做出动作,然后根据奖励函数获得奖励,使用折扣方式更新价值函数Q(st,a);在每次做出调度决策时将Q值最大的服务器-作业对作为状态st,然后将(st-1,rt-1,st,is_done)四元组存入记忆池中,每次更新价值网络网络时从记忆池中采样一个batch的样本;当每次有新作业到达时,调度器在每个时间步进行调度,直至不存在未完全调度的作业;调度器训练完毕。
8.一种数据中心作业调度系统,其特征在于,包括:
对比模块,利用模拟器对调度器进行训练至收敛;然后在每个调度时刻,调度器根据先到先服务原则依次遍历现存未完成作业中包含的未完成任务,将未完成任务的资源需求与集群中各服务器可提供的资源做对比,将可以接受这一任务执行的服务器的状态参数和任务的参数组成一个服务器-作业对保存;
计算模块,神经网络根据服务器-作业对列表计算对应的Q值,选择Q值最高的服务器-作业对作为调度决策,将任务调度到被选择的服务器c作业对中对应的服务器上执行;
调度模块,如果作业中所有未调度任务都已经完成调度决策,则标记该作业此次已完成,继续遍历未完成作业列表,完成作业调度。
9.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求1至7所述的方法中的任一方法。
10.一种计算设备,其特征在于,包括:
一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1至7所述的方法中的任一方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110302860.0A CN113094159B (zh) | 2021-03-22 | 2021-03-22 | 一种数据中心作业调度方法、系统、存储介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110302860.0A CN113094159B (zh) | 2021-03-22 | 2021-03-22 | 一种数据中心作业调度方法、系统、存储介质及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094159A true CN113094159A (zh) | 2021-07-09 |
CN113094159B CN113094159B (zh) | 2024-04-05 |
Family
ID=76669182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110302860.0A Active CN113094159B (zh) | 2021-03-22 | 2021-03-22 | 一种数据中心作业调度方法、系统、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094159B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281528A (zh) * | 2021-12-10 | 2022-04-05 | 重庆邮电大学 | 一种基于深度强化学习和异构Spark集群的节能调度方法及系统 |
CN114518798A (zh) * | 2022-02-17 | 2022-05-20 | 深圳集智数字科技有限公司 | 设备集群的低功耗控制方法及装置 |
CN116661962A (zh) * | 2023-05-23 | 2023-08-29 | 四川省建筑设计研究院有限公司 | 基于云计算技术的数据分析方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180246758A1 (en) * | 2017-02-27 | 2018-08-30 | International Business Machines Corporation | Automated generation of scheduling algorithms based on task relevance assessment |
CN109976909A (zh) * | 2019-03-18 | 2019-07-05 | 中南大学 | 边缘计算网络中基于学习的低延时任务调度方法 |
CN111756634A (zh) * | 2020-07-15 | 2020-10-09 | 中国舰船研究设计中心 | 一种基于强化学习的舰载网络性能自优化方法 |
CN112511336A (zh) * | 2020-11-05 | 2021-03-16 | 上海大学 | 一种边缘计算系统中的在线服务放置方法 |
US20210081787A1 (en) * | 2019-09-12 | 2021-03-18 | Beijing University Of Posts And Telecommunications | Method and apparatus for task scheduling based on deep reinforcement learning, and device |
-
2021
- 2021-03-22 CN CN202110302860.0A patent/CN113094159B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180246758A1 (en) * | 2017-02-27 | 2018-08-30 | International Business Machines Corporation | Automated generation of scheduling algorithms based on task relevance assessment |
CN109976909A (zh) * | 2019-03-18 | 2019-07-05 | 中南大学 | 边缘计算网络中基于学习的低延时任务调度方法 |
US20210081787A1 (en) * | 2019-09-12 | 2021-03-18 | Beijing University Of Posts And Telecommunications | Method and apparatus for task scheduling based on deep reinforcement learning, and device |
CN111756634A (zh) * | 2020-07-15 | 2020-10-09 | 中国舰船研究设计中心 | 一种基于强化学习的舰载网络性能自优化方法 |
CN112511336A (zh) * | 2020-11-05 | 2021-03-16 | 上海大学 | 一种边缘计算系统中的在线服务放置方法 |
Non-Patent Citations (3)
Title |
---|
卢海峰;顾春华;罗飞;丁炜超;杨婷;郑帅;: "基于深度强化学习的移动边缘计算任务卸载研究", 计算机研究与发展, no. 07 * |
孟彬彬;吴艳;: "面向云计算的分布式机器学习任务调度算法研究", 西安文理学院学报(自然科学版), no. 01 * |
韩晓镭;: "基于深度强化学习的云计算调度优化研究", 长春师范大学学报, no. 08 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281528A (zh) * | 2021-12-10 | 2022-04-05 | 重庆邮电大学 | 一种基于深度强化学习和异构Spark集群的节能调度方法及系统 |
CN114518798A (zh) * | 2022-02-17 | 2022-05-20 | 深圳集智数字科技有限公司 | 设备集群的低功耗控制方法及装置 |
CN116661962A (zh) * | 2023-05-23 | 2023-08-29 | 四川省建筑设计研究院有限公司 | 基于云计算技术的数据分析方法 |
CN116661962B (zh) * | 2023-05-23 | 2024-02-23 | 四川省建筑设计研究院有限公司 | 基于云计算技术的数据分析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113094159B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Adaptive asynchronous federated learning in resource-constrained edge computing | |
Lin et al. | Cost-driven off-loading for DNN-based applications over cloud, edge, and end devices | |
CN113094159A (zh) | 一种数据中心作业调度方法、系统、存储介质及计算设备 | |
CN109818786B (zh) | 一种云数据中心应用可感知的分布式多资源组合路径最优选取方法 | |
CN111026549B (zh) | 一种电力信息通信设备自动化测试资源调度方法 | |
CN103092683B (zh) | 用于数据分析的基于启发式的调度 | |
CN111274036B (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
Sheng et al. | Learning to schedule multi-NUMA virtual machines via reinforcement learning | |
CN113822456A (zh) | 一种云雾混构环境下基于深度强化学习的服务组合优化部署方法 | |
Yu et al. | Workflow performance prediction based on graph structure aware deep attention neural network | |
Park et al. | Amble: Adjusting mini-batch and local epoch for federated learning with heterogeneous devices | |
CN116048802A (zh) | 训练推理一体深度学习的gpu集群调度方法 | |
Zhu et al. | A priority-aware scheduling framework for heterogeneous workloads in container-based cloud | |
Li et al. | Optimizing makespan and resource utilization for multi-DNN training in GPU cluster | |
CN110519386A (zh) | 云环境下基于数据聚类的弹性资源供应方法和装置 | |
Song et al. | A reinforcement learning based job scheduling algorithm for heterogeneous computing environment | |
Zhu et al. | SAAS parallel task scheduling based on cloud service flow load algorithm | |
Gong et al. | Chic: experience-driven scheduling in machine learning clusters | |
Chen et al. | Deep learning workloads scheduling with reinforcement learning on GPU clusters | |
CN115086249B (zh) | 一种基于深度强化学习的云数据中心资源分配方法 | |
Zhao et al. | RAS: a task scheduling algorithm based on resource attribute selection in a task scheduling framework | |
Kim et al. | Scale-Train: A Scalable DNN Training Framework for a Heterogeneous GPU Cloud | |
Tang et al. | Edge computing energy-efficient resource scheduling based on deep reinforcement learning and imitation learning | |
Tong et al. | Energy and performance-efficient dynamic consolidate VMs using deep-Q neural network | |
Duan et al. | Lightweight federated reinforcement learning for independent request scheduling in microgrids |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |