CN109725988B - 一种任务调度方法和装置 - Google Patents
一种任务调度方法和装置 Download PDFInfo
- Publication number
- CN109725988B CN109725988B CN201711036985.3A CN201711036985A CN109725988B CN 109725988 B CN109725988 B CN 109725988B CN 201711036985 A CN201711036985 A CN 201711036985A CN 109725988 B CN109725988 B CN 109725988B
- Authority
- CN
- China
- Prior art keywords
- action
- scheduling
- state
- task
- reward
- 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.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务调度方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:将任务调度的时刻作为状态,将单个任务的调度执行作为动作以构建动作价值函数;将集群在时间上的平均负载作为奖赏,根据所述奖赏采用强化学习算法对所述动作价值函数进行迭代计算,以得到收敛函数值;根据所述状态、动作和收敛函数值进行任务调度。该实施方式采用强化学习算法进行任务调度,使得集群的负载在时间维度上平均化,进而能够最大化合理利用集群资源。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种任务调度方法和装置。
背景技术
现有技术在进行任务调度时,由管理者或者使用者自行对集群资源进行配置管理。对使用者来说,可以指定任务开始的时刻和任务的优先级,比如指定任务脚本于八点开始,优先级高于一般任务。对管理者来说,一般倾向于对于集群资源的配置管理,比如指定集群的中央处理器(Central Processing Unit,CPU)的使用率和集群内存的使用率。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有技术对集群资源的管理过度依赖人为配置,以致集群负载不均衡,集群资源不能合理利用。比如,对于页面浏览量(Page View,PV)的统计任务,使用者通过定时设定该任务在早上八点开始,如果大家都集中在这个时段生产数据,就会造成该时段集群负载过大,数据生产速度过慢;如果一味添加硬件资源,又会导致其他时段(比如凌晨)比较空闲,造成集群资源的浪费。
发明内容
有鉴于此,本发明实施例提供一种任务调度方法和装置,通过强化学习算法计算动作价值函数的收敛函数值,然后根据状态对应的收敛函数值决定任务的调度执行。本实施例采用强化学习算法进行任务调度,使得集群的负载在时间维度上平均化,进而能够最大化合理利用集群资源。
为实现上述目的,根据本发明实施例的一个方面,提供了一种任务调度方法。
本发明实施例的一种任务调度方法,包括:将任务调度的时刻作为状态,将单个任务的调度执行作为动作以构建动作价值函数;将集群在时间上的平均负载作为奖赏,根据所述奖赏采用强化学习算法对所述动作价值函数进行迭代计算,以得到收敛函数值;根据所述状态、动作和收敛函数值进行任务调度。
可选地,所述强化学习算法为Q-Learning算法。
可选地,所有所述的任务调度的时刻构成状态集,所有所述的任务的调度执行构成动作集;当根据所述奖赏采用Q-Learning算法对所述动作价值函数进行迭代计算时,包括:初始化所述动作价值函数的函数值,设置所述动作价值函数的当前状态;根据所述当前状态和策略,从所述动作集中选择一个动作;执行所述动作以得到所述奖赏和下一个状态;根据所述奖赏和所述下一个状态,更新所述动作价值函数;将所述下一个状态作为当前状态,重复迭代直至到达所述状态集的终止状态。
可选地,所述根据所述奖赏和所述下一个状态,更新所述动作价值函数的步骤中,更新所述动作价值函数的计算公式为:
Q(s,a)←(1-α)×Q(s,a)+α[R+γmaxaQ(s',a)]
s←s'
其中,s为当前状态;a为动作;Q(s,a)为动作价值函数,表示在当前状态s执行动作a所获得的收敛函数值;α为学习率;R为奖赏;γ为折扣因子;s'为下一状态;maxaQ(s',a)为下一状态s'所采取动作的最大收敛函数值。
可选地,所述根据所述状态、动作和收敛函数值进行任务调度,包括:根据所述状态、动作和收敛函数值建立调度表;其中,所述调度表的行代表动作,列代表状态,每个行列表格中的值为所述状态和动作对应的收敛函数值;根据所述调度表,获取当前状态对应的最大收敛函数值;按照所述最大收敛函数值对应的动作进行任务调度。
可选地,所述根据所述状态、动作和收敛函数值进行任务调度的步骤之后,还包括:当需要调度的任务发生改变时,根据当前状态和策略对所述调度表进行更新。
为实现上述目的,根据本发明实施例的另一方面,提供了一种任务调度装置。
本发明实施例的一种任务调度装置,包括:函数构建模块,用于将任务调度的时刻作为状态,将单个任务的调度执行作为动作以构建动作价值函数;迭代计算模块,用于将集群在时间上的平均负载作为奖赏,根据所述奖赏采用强化学习算法对所述动作价值函数进行迭代计算,以得到收敛函数值;任务调度模块,用于根据所述状态、动作和收敛函数值进行任务调度。
可选地,所述强化学习算法为Q-Learning算法。
可选地,所有所述的任务调度的时刻构成状态集,所有所述的任务的调度执行构成动作集;所述迭代计算模块,还用于:初始化所述动作价值函数的函数值,设置所述动作价值函数的当前状态;根据所述当前状态和策略,从所述动作集中选择一个动作;执行所述动作以得到所述奖赏和下一个状态;根据所述奖赏和所述下一个状态,更新所述动作价值函数;将所述下一个状态作为当前状态,重复迭代直至到达所述状态集的终止状态。
可选地,所述迭代计算模块中,更新所述动作价值函数的计算公式为:
Q(s,a)←(1-α)×Q(s,a)+α[R+γmaxaQ(s',a)]
s←s'
其中,s为当前状态;a为动作;Q(s,a)为动作价值函数,表示在当前状态s执行动作a所获得的收敛函数值;α为学习率;R为奖赏;γ为折扣因子;s'为下一状态;maxaQ(s',a)为下一状态s'所采取动作的最大收敛函数值。
可选地,所述任务调度模块,还用于:根据所述状态、动作和收敛函数值建立调度表;其中,所述调度表中的行代表动作,列代表状态,每个行列表格中的值为所述状态和动作对应的收敛函数值;根据所述调度表找出当前状态对应的最大收敛函数值;按照所述最大收敛函数值对应的动作进行任务调度。
可选地,所述装置还包括:更新模块,用于当需要调度的任务发生改变时,根据当前状态和策略对所述调度表进行更新。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种任务调度方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种任务调度方法。
上述发明中的一个实施例具有如下优点或有益效果:通过采用强化学习算法进行任务调度,使得集群的负载在时间维度上平均化,进而能够最大化合理利用集群资源;通过使用强化学习算法中经典的Q-Learning算法迭代计算获得收敛函数值,能够减少估计误差造成的影响,得到收敛的最优函数值;通过建立调度表,依据调度表进行任务调度,从全局来看能够最大化合理利用集群资源;调度任务发生改变时,更新调度表,按照新的调度表更加合理的进行任务调度。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的任务调度方法的主要步骤的示意图;
图2是根据本发明实施例的任务调度方法的基本原理示意图;
图3是根据本发明实施例的任务调度方法的主要流程示意图;
图4是根据本发明实施例的采用Q-Learning算法求解最优Q值的流程示意图;
图5是采用强化学习算法之前集群负载和时间的关系示意图;
图6是采用强化学习算法之后集群负载和时间的关系示意图;
图7是根据本发明实施例的任务调度装置的主要模块的示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的任务调度方法的主要步骤的示意图。如图1所示,本发明实施例的任务调度方法,主要包括如下步骤:
步骤S101:将任务调度的时刻作为状态,将单个任务的调度执行作为动作以构建动作价值函数。本发明实施例的动作价值函数可以采用Q-Learning算法中的Action-Valuefunction:Q(s,a),其中,s为状态,a为动作;也可以采用马尔可夫决策过程(MarkovDecision Processes,MDPs)中的动作价值函数。
步骤S102:将集群在时间上的平均负载作为奖赏,根据所述奖赏采用强化学习算法对所述动作价值函数进行迭代计算,以得到收敛函数值。在执行一个动作后,可以获取集群在时间上的平均负载,将该平均负载作为从环境中获得的奖赏。根据当前状态和策略执行动作,并观察奖赏和下一个状态,然后根据下一个状态的最大收敛函数值和奖赏来更新当前状态和动作的收敛函数值。这里的策略用来保证智能体能够搜索所有可能的动作,该智能体为集群任务调度,该策略例如可以是ε贪婪策略(ε-greedy)。
步骤S103:根据所述状态、动作和收敛函数值进行任务调度。一个状态和一个动作对应一个收敛函数值。通过上述方式,使用者不再人为指定任务调度的时间,而是指定任务的最早开始时间和任务的最晚结束时间,由计算机决定在这个时间段的哪个时刻进行任务调度。管理者通过观察集群的平均负载,就可以了解集群资源的使用状态。
图2是根据本发明实施例的任务调度方法的基本原理示意图。如图2所示,本发明实施例的任务调度方法的基本原理为:将集群任务调度看作智能体(Agent),把集群在时间上的平均负载看作环境(Environment),将任务调度的时刻看作状态(State)s。那么,Agent的每一个动作(Action)a可以看成一次试错(Trial-and-Error),每一个动作即为调度策略;把执行调度策略后获得的集群在时间上的平均负载作为从环境中获得的奖赏(Reward)R。通过反复不断地试错,Agent将逐步学习到最大的奖赏R对应的调度策略,按照该调度策略进行任务调度就可以使得集群负载在时间维度上平均化。
本发明实施例的任务调度方法用于不需要实时执行任务的场景中,具体可以用于比如大数据平台的任务调度、存储队列缓存的写入等。
图3是根据本发明实施例的任务调度方法的主要流程示意图。如图3所示,本发明实施例的任务调度方法,包括以下步骤:
步骤S301:构建动作价值函数。下面以Q-Learning算法中的动作价值函数Q(s,a)为例进行说明:该动作价值函数表示当我们在状态s执行动作a时,所获得的最大折扣未来奖励,优化该最大折扣未来奖励以得到收敛函数值。状态s为任务调度的时刻,动作a为单个任务的调度执行。所有的任务调度的时刻构成状态集S,所有任务的调度执行构成动作集A。
步骤S302:将集群在时间上的平均负载作为奖赏,根据所述奖赏采用Q-Learning算法求解所述动作价值函数的最优Q值。每一个时刻的Q(s,a)和当前得到的奖赏R以及下一个时刻的Q(s,a)有关。由于Q-Learning算法建立在无限次试错的情况下,所以可以把上一次试错计算得到的最优Q值拿来使用,这样就可以根据当前时刻得到的奖赏R及上一次试错中下一个状态的最优Q值来更新本次试错中当前时刻的Q值。这里所说的时刻为每个任务开始执行的时刻。Q-learning算法通过类似随机梯度下降的方法,每次向目标(该目标即尽可能多的获取奖赏R)迈进一小步,这样能够减少估计误差造成的影响,最后可以收敛到最优Q值,该最优Q值即为所述动作价值函数的收敛函数值。所述动作价值函数的最优Q值的求解过程,后续会进行详细说明。
步骤S303:根据所述状态、动作和最优Q值建立调度表,根据所述调度表进行任务调度。通过反复调度试错后得出的状态s和最优Q值被更新到调度表中,一个状态s和一个动作a对应一个最优Q值。该调度表如表1所示:
表1为调度表
a<sub>1</sub> | a<sub>2</sub> | … | a<sub>n</sub> | |
s<sub>1</sub> | Q(1,1) | Q(1,2) | … | Q(1,n) |
s<sub>2</sub> | Q(2,1) | Q(2,2) | … | Q(2,n) |
… | … | … | … | … |
s<sub>m</sub> | Q(m,1) | Q(m,2) | … | Q(m,n) |
该表格中行代表动作,列代表状态,每个行列表格中的值为所述状态和动作对应的最优Q值。
根据所述调度表找出当前状态对应的最优Q值中的最大Q值,按照所述最大Q值对应的动作进行任务调度。该调度策略从某个时刻来看可能不是最优的,但是在全局上是使得集群的负载在时间维度上平均化最优的策略。
步骤S304:当需要调度的任务发生改变时,根据当前状态和策略对所述调度表进行更新。具体过程为:
(1)当需要调度的任务发生改变时,更新所述动作集A;
(2)根据当前状态和ε贪婪策略,从所述动作集A中选择一个动作;
(3)执行所述动作以得到奖赏和下一个状态;
(4)根据所述奖赏和所述下一个状态更新动作价值函数Q(s,a);
(5)将所述下一个状态作为当前状态,重复步骤(2)步骤(5)直至到达终止状态;
(6)根据得到的新状态和最优Q值对所述调度表进行更新。
图4是根据本发明实施例的采用Q-Learning算法求解最优Q值的流程示意图。如图4所示,本发明实施例的动作价值函数的最优Q值求解过程,包括以下步骤:
步骤S402:根据所述当前状态s和策略从所述动作集A中选择一个动作a,a∈A(s)。该策略可以是ε贪婪策略,该策略在每个状态s下有ε的概率进行探索(即随机选取执行或不执行某个动作),而剩下的1-ε的概率则进行开发(即选取当前状态下最优Q值较大时对应的动作)。ε一般取值较小,可以取0.01。
步骤S403:执行所述动作a以得到奖赏R和下一个状态s'。
步骤S404:根据所述奖赏R和所述下一个状态s'更新所述动作价值函数。按照下述公式更新动作价值函数:
Q(s,a)←(1-α)×Q(s,a)+α[R+γmaxaQ(s',a)]
s←s'
学习率α越大,保留之前训练的效果就越少。折扣因子γ越大,maxaQ(s',a)所起到的作用就越大。
步骤S405:判断所述下一个状态s'是否为终止状态,如果不是终止状态,则执行步骤S406;如果是终止状态,则结束本流程。所述的终止状态为所有的调度任务结束的状态。
步骤S406:将所述下一个状态s'作为当前状态s,执行步骤S402。
图5是采用强化学习算法之前集群负载和时间的关系示意图。图6是采用强化学习算法之后集群负载和时间的关系示意图。如图5和图6所示,纵轴代表集群负载,横轴代表时间。由图5可以看出,大量的调度任务被认为追加在相近的时间造成集群负载瞬间增加。由图6可以看出,采用强化学习算法进行任务调度之后,集群负载在时间维度上平均化,达到了最大化合理利用资源的效果。
通过本发明实施例的任务调度方法可以看出,通过采用强化学习算法进行任务调度,使得集群的负载在时间维度上平均化,进而能够最大化合理利用集群资源;通过使用强化学习算法中经典的Q-Learning算法迭代计算获得收敛函数值,能够减少估计误差造成的影响,得到收敛的最优函数值;通过建立调度表,依据调度表进行任务调度,从全局来看能够最大化合理利用集群资源;调度任务发生改变时,更新调度表,按照新的调度表更加合理的进行任务调度。
图7是根据本发明实施例的任务调度装置的主要模块的示意图。如图7所示,本发明实施例的任务调度装置700,主要包括:
函数构建模块701,用于将任务调度的时刻作为状态,将单个任务的调度执行作为动作以构建动作价值函数。本发明实施例的动作价值函数可以采用Q-Learning算法中的Action-Valuefunction:Q(s,a),其中,s为状态,a为动作;也可以采用马尔可夫决策过程(Markov Decision Processes,MDPs)中的动作价值函数。
迭代计算模块702,用于将集群在时间上的平均负载作为奖赏,根据所述奖赏采用强化学习算法对所述动作价值函数进行迭代计算,以得到收敛函数值。在执行一个动作后,可以获取集群在时间上的平均负载,将该平均负载作为从环境中获得的奖赏。根据当前状态和策略执行动作,并观察奖赏和下一个状态,然后根据下一个状态的最大收敛函数值和奖赏来更新当前状态和动作的收敛函数值。这里的策略用来保证智能体能够搜索所有可能的动作。
任务调度模块703,用于根据所述状态、动作和收敛函数值进行任务调度。一个状态和一个动作对应一个收敛函数值。通过上述方式,使用者不再人为指定任务调度的时间,而是指定任务的最早开始时间和任务的最晚结束时间,由计算机决定在这个时间段的哪个时刻进行任务调度。管理者通过观察集群的平均负载,就可以了解集群资源的使用状态。
本发明实施例的任务调度装置700还可以包括:更新模块,用于当需要调度的任务发生改变时,根据当前状态和策略对所述调度表进行更新。调度任务每天都在更新,但是大体的调度策略是不变的,将根据新的任务更新动作集,以对调度表进行优化,最终实现集群负载在时间上的平均化。
从以上描述可以看出,通过采用强化学习算法进行任务调度,使得集群的负载在时间维度上平均化,进而能够最大化合理利用集群资源;通过使用强化学习算法中经典的Q-Learning算法迭代计算获得收敛函数值,能够减少估计误差造成的影响,得到收敛的最优函数值;通过建立调度表,依据调度表进行任务调度,从全局来看能够最大化合理利用集群资源;调度任务发生改变时,更新调度表,按照新的调度表更加合理的进行任务调度。
图8示出了可以应用本发明实施例的任务调度方法或任务调度装置的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所产生的点击事件提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的点击数据、文本内容等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本申请实施例所提供的任务调度方法一般由服务器805执行,相应地,任务调度装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的服务平台端的任务调度的方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的服务平台端的任务调度的方法。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的语音设备端的任务调度的方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的语音设备端的任务调度的方法。
下面参考图9,其示出了适用于来实现本发明实施例的电子设备的计算机系统900的结构示意图。图9示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的主要步骤图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括函数构建模块、迭代计算模块和任务调度模块。其中,这些模块的名称在某种情况下并不构成对该单元本身的限定,例如,函数构建模块还可以被描述为“将任务调度的时刻作为状态,将单个任务的调度执行作为动作以构建动作价值函数的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:将任务调度的时刻作为状态,将单个任务的调度执行作为动作以构建动作价值函数;将集群在时间上的平均负载作为奖赏,根据所述奖赏采用强化学习算法对所述动作价值函数进行迭代计算,以得到收敛函数值;根据所述状态、动作和收敛函数值进行任务调度。
根据本发明的技术方案,通过采用强化学习算法进行任务调度,使得集群的负载在时间维度上平均化,进而能够最大化合理利用集群资源;通过使用强化学习算法中经典的Q-Learning算法迭代计算获得收敛函数值,能够减少估计误差造成的影响,得到收敛的最优函数值;通过建立调度表,依据调度表进行任务调度,从全局来看能够最大化合理利用集群资源;调度任务发生改变时,更新调度表,按照新的调度表更加合理的进行任务调度。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种任务调度方法,其特征在于,包括:
将任务调度的时刻作为状态,将单个任务的调度执行作为动作以构建动作价值函数;
将集群在时间上的平均负载作为奖赏,根据所述奖赏采用强化学习算法对所述动作价值函数进行迭代计算,以得到收敛函数值;
根据所述状态、动作和收敛函数值进行任务调度;
其中,根据所述状态、动作和收敛函数值进行任务调度,包括:
根据所述状态、动作和收敛函数值建立调度表;其中,所述调度表的行代表动作,列代表状态,每个行列表格中的值为所述状态和动作对应的收敛函数值;
根据所述调度表,获取当前状态对应的最大收敛函数值;
按照所述最大收敛函数值对应的动作进行任务调度。
2.根据权利要求1所述的方法,其特征在于,所述强化学习算法为Q-Learning算法。
3.根据权利要求2所述的方法,其特征在于,所有所述的任务调度的时刻构成状态集,所有所述的任务的调度执行构成动作集;
当根据所述奖赏采用Q-Learning算法对所述动作价值函数进行迭代计算时,包括:
初始化所述动作价值函数的函数值,设置所述动作价值函数的当前状态;
根据所述当前状态和策略,从所述动作集中选择一个动作;
执行所述动作以得到所述奖赏和下一个状态;
根据所述奖赏和所述下一个状态,更新所述动作价值函数;
将所述下一个状态作为当前状态,重复迭代直至到达所述状态集的终止状态。
4.根据权利要求3所述的方法,其特征在于,所述根据所述奖赏和所述下一个状态,更新所述动作价值函数的步骤中,更新所述动作价值函数的计算公式为:
Q(s,a)←(1-α)×Q(s,a)+α[R+γmaxaQ(s',a)]
s←s'
其中,s为当前状态;a为动作;Q(s,a)为动作价值函数,表示在当前状态s执行动作a所获得的收敛函数值;α为学习率;R为奖赏;γ为折扣因子;s'为下一状态;maxaQ(s',a)为下一状态s'所采取动作的最大收敛函数值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述状态、动作和收敛函数值进行任务调度的步骤之后,还包括:当需要调度的任务发生改变时,根据当前状态和策略对所述调度表进行更新。
6.一种任务调度装置,其特征在于,包括:
函数构建模块,用于将任务调度的时刻作为状态,将单个任务的调度执行作为动作以构建动作价值函数;
迭代计算模块,用于将集群在时间上的平均负载作为奖赏,根据所述奖赏采用强化学习算法对所述动作价值函数进行迭代计算,以得到收敛函数值;
任务调度模块,用于根据所述状态、动作和收敛函数值进行任务调度;其中,根据所述状态、动作和收敛函数值进行任务调度,包括:
根据所述状态、动作和收敛函数值建立调度表;其中,所述调度表的行代表动作,列代表状态,每个行列表格中的值为所述状态和动作对应的收敛函数值;
根据所述调度表找出当前状态对应的最大收敛函数值;
按照所述最大收敛函数值对应的动作进行任务调度。
7.根据权利要求6所述的装置,其特征在于,所述强化学习算法为Q-Learning算法。
8.根据权利要求7所述的装置,其特征在于,所有所述的任务调度的时刻构成状态集,所有所述的任务的调度执行构成动作集;
所述迭代计算模块,还用于:
初始化所述动作价值函数的函数值,设置所述动作价值函数的当前状态;
根据所述当前状态和策略,从所述动作集中选择一个动作;
执行所述动作以得到所述奖赏和下一个状态;
根据所述奖赏和所述下一个状态,更新所述动作价值函数;
将所述下一个状态作为当前状态,重复迭代直至到达所述状态集的终止状态。
9.根据权利要求8所述的装置,其特征在于,所述迭代计算模块中,更新所述动作价值函数的计算公式为:
Q(s,a)←(1-α)×Q(s,a)+α[R+γmaxaQ(s',a)]
s←s'
其中,s为当前状态;a为动作;Q(s,a)为动作价值函数,表示在当前状态s执行动作a所获得的收敛函数值;α为学习率;R为奖赏;γ为折扣因子;s'为下一状态;maxaQ(s',a)为下一状态s'所采取动作的最大收敛函数值。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:更新模块,用于当需要调度的任务发生改变时,根据当前状态和策略对所述调度表进行更新。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711036985.3A CN109725988B (zh) | 2017-10-30 | 2017-10-30 | 一种任务调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711036985.3A CN109725988B (zh) | 2017-10-30 | 2017-10-30 | 一种任务调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109725988A CN109725988A (zh) | 2019-05-07 |
CN109725988B true CN109725988B (zh) | 2021-10-01 |
Family
ID=66291893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711036985.3A Active CN109725988B (zh) | 2017-10-30 | 2017-10-30 | 一种任务调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109725988B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110111005A (zh) * | 2019-05-09 | 2019-08-09 | 上汽安吉物流股份有限公司 | 智能分单方法和装置、计算机可读介质以及物流系统 |
CN111966484A (zh) * | 2020-06-23 | 2020-11-20 | 北京大学 | 一种基于深度强化学习的集群资源管理和任务调度方法及系统 |
CN114386725A (zh) * | 2020-10-19 | 2022-04-22 | 中国科学院沈阳计算技术研究所有限公司 | 智能产线数据调度通信装置 |
CN112416559B (zh) * | 2020-11-30 | 2024-06-04 | 中国民航信息网络股份有限公司 | 调度策略更新方法、服务调度方法、存储介质及相关装置 |
CN113657844B (zh) * | 2021-06-15 | 2024-04-05 | 中国人民解放军63920部队 | 任务处理流程的确定方法及装置 |
CN117151425B (zh) * | 2023-10-20 | 2024-04-26 | 暨南大学 | 一种基于rql算法的选择拆卸规划方法及系统 |
CN117474295B (zh) * | 2023-12-26 | 2024-04-26 | 长春工业大学 | 一种基于Dueling DQN算法的多AGV负载均衡与任务调度方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6619192B2 (ja) * | 2015-09-29 | 2019-12-11 | ファナック株式会社 | 移動軸異常負荷警告機能を有するワイヤ放電加工機 |
CN106598707A (zh) * | 2015-10-19 | 2017-04-26 | 沈阳新松机器人自动化股份有限公司 | 任务调度优化方法 |
CN105260230B (zh) * | 2015-10-30 | 2018-06-26 | 广东石油化工学院 | 基于分段服务等级协议的数据中心虚拟机资源调度方法 |
CN105930214B (zh) * | 2016-04-22 | 2019-04-26 | 广东石油化工学院 | 一种基于q学习的混合云作业调度方法 |
-
2017
- 2017-10-30 CN CN201711036985.3A patent/CN109725988B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109725988A (zh) | 2019-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725988B (zh) | 一种任务调度方法和装置 | |
CN110198244B (zh) | 面向异构云服务的资源配置方法和装置 | |
CN114610474B (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
CN113760488B (zh) | 调度任务的方法、装置、设备和计算机可读介质 | |
CN108369538A (zh) | 下载视觉资产 | |
CN111858040A (zh) | 一种资源调度方法和装置 | |
CN115357350A (zh) | 任务配置方法、装置、电子设备和计算机可读介质 | |
US20210326170A1 (en) | Method to set up and tear down cloud environments based on a schedule obtained from one or more hosted calendars | |
CN113132471B (zh) | 云服务预算优化调度方法、装置、设备和存储介质 | |
CN116541167A (zh) | 系统流量控制方法、装置、电子设备及计算机可读介质 | |
CN115865974A (zh) | 边缘设备、云端设备、边缘计算系统及方法和存储介质 | |
CN113096295B (zh) | 排号方法、排号装置、电子设备及计算机可读存储介质 | |
CN114265692A (zh) | 服务调度方法、装置、设备以及存储介质 | |
CN114612212A (zh) | 一种基于风险控制的业务处理方法、装置和系统 | |
CN114138401A (zh) | 基于人工智能的容器配置方法、装置、设备及介质 | |
CN115344359A (zh) | 算力资源分配方法、装置、计算机可读存储介质及设备 | |
CN112989203A (zh) | 素材投放方法、装置、设备和介质 | |
CN113779122A (zh) | 导出数据的方法和装置 | |
CN112527454A (zh) | 容器组调度方法、装置、电子设备和计算机可读介质 | |
CN113760319B (zh) | 一种更新应用的方法和系统 | |
CN112667368B (zh) | 一种任务数据处理方法和装置 | |
CN113741796B (zh) | 一种终端应用的数据持久化方法和装置 | |
CN116302450B (zh) | 任务的批处理方法、装置、计算机设备及存储介质 | |
CN113806033B (zh) | 用于任务系统的任务执行方法、装置、服务器和介质 | |
CN112667368A (zh) | 一种任务数据处理方法和装置 |
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 |