CN116848508A - 基于强化学习模型调度任务以供计算机执行 - Google Patents
基于强化学习模型调度任务以供计算机执行 Download PDFInfo
- Publication number
- CN116848508A CN116848508A CN202180093346.9A CN202180093346A CN116848508A CN 116848508 A CN116848508 A CN 116848508A CN 202180093346 A CN202180093346 A CN 202180093346A CN 116848508 A CN116848508 A CN 116848508A
- Authority
- CN
- China
- Prior art keywords
- tasks
- execution time
- computer
- execution
- learning model
- 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.)
- Pending
Links
- 230000002787 reinforcement Effects 0.000 title claims abstract description 102
- 238000000034 method Methods 0.000 claims description 46
- 230000006870 function Effects 0.000 claims description 32
- 238000012549 training Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
公开了一种用于调度任务以供计算机执行的任务调度器。所述任务调度器用于获得用于优化任务执行时间的第一强化学习模型和用于优化所述计算机用于任务执行的计算资源的利用率的第二强化学习模型;确定所述计算机执行的一个或多个任务的执行时间的度量;基于所确定的所述执行时间的度量,使用所述第一强化学习模型和所述第二强化学习模型中的一个来调度其它任务以供所述计算机执行。
Description
技术领域
本发明涉及调度任务以供计算机执行。本发明的各方面涉及一种用于调度任务以供计算机执行的任务调度器,以及一种调度任务以供计算机执行的方法。
背景技术
对于多计算设备环境,例如包括服务器池的数据中心,其能效低下的主要原因之一是,当计算资源未被充分用于任务执行时,会产生电力浪费。例如,通常情况下,即使处于极低负载/空闲状态,计算设备(例如服务器)的处理器功耗仍可能超过其峰值功耗的50%。因此,将任务工作负载整合到更少、利用率更高的计算资源上有望合宜地减少电力浪费,从而降低数据中心的总体功耗。尽管数据中心内的工作负载整合通常可以减少电力浪费和总体功耗,但计算资源过载有可能不合宜地延迟计算请求的服务,并另外增加执行任务所需的时间。数据中心运营商特别担心的是,存在任务执行时间超过与数据中心用户在服务级别协议中商定的最大任务执行时间的风险。因此,在多计算设备环境(例如数据中心)中进行任务调度需要仔细平衡两种互相矛盾的需求,即在实现最大化资源利用率的同时维持可接受的任务执行时间。
发明内容
本发明的目的是提供任务调度,该任务调度用于优化计算资源的利用率,而不会使计算资源执行任务所耗费的时间被延迟到不可接受的程度。
上述和其它目的通过独立权利要求的特征来实现。其它实现方式在从属权利要求、说明书和附图中是显而易见的。
本发明的第一方面提供了一种用于调度任务以供计算机执行的任务调度器,所述任务调度器用于:获得用于优化任务执行时间的第一强化学习模型和用于优化所述计算机用于任务执行的计算资源的利用率的第二强化学习模型;确定所述计算机执行的一个或多个任务的执行时间的度量;基于所确定的所述执行时间的度量,使用所述第一强化学习模型和所述第二强化学习模型中的一个来调度其它任务以供所述计算机执行。
任务调度器可以使用用于优化计算机的计算资源的利用率的第二强化学习模型调度任务,从而可能地降低计算机执行给定数量任务的总体功耗。
但是,由于任务调度器监控任务的执行时间,并基于所述任务执行时间选择性地使用第二强化学习模型或第一强化学习模型调度任务,所述任务调度器可以确保任务执行时间不会被延迟到不可接受的程度。
在本发明的上下文中,“优化”或类似的术语可以被理解为一般表示“达到目标”值,即目标时间或目标利用率。如上所述,在一些情况下,“优化”可能特别表示达到“最小”时间或“最大”利用率。
例如,“优化”计算机资源利用率通常表示“最大化”计算机资源利用率。但是,最大资源利用率并不总是必然促使计算资源的能效得到优化。这是因为每个执行任务的资源利用率与能耗之间的关系并不总是线性的。例如,计算机处理器的能耗通常会相对于利用率以超过线性的方式增加,使得在一些情况下,一组计算设备的最佳整体能效可以通过在计算设备之间均匀地分配负载来实现,而不是最大限度地利用计算设备的子集和最小限度地利用其它计算设备来实现。
因此,在一个示例性的替代场景中,优化计算机资源利用率可能表示目标是在最大资源利用率与最小资源利用率之间的资源利用率水平。例如,在一种场景下,可以知道,计算机的计算资源的最节能利用率是75%的利用率,在这种情况下,第二强化学习模型的目标可以是实现75%的资源利用率。
类似地,“优化”任务执行时间可能表示“最小化”任务执行时间。可选地,在一些场景中,计算***的最佳性能可以替代地要求任务执行时间保持在高于计算机可能的最小执行时间的水平。例如,当执行任务的结果由计算机通过低带宽通信网络返回到客户端设备时,希望任务的执行时间与网络的传输速率匹配,从而避免进行结果传输排队,这种排队会占用很多内存。
任务调度器还可以用于调度一个或多个任务以供计算机执行,或者换句话说,指示计算机执行一个或多个任务,使得确定由计算机执行的一个或多个任务的执行时间的度量的步骤包括确定计算机对经调度以供任务调度器执行/由任务调度器指示的一个或多个任务的执行时间的度量。在一个示例性更简单的替代方案中,确定由计算机执行的一个或多个任务的执行时间的度量的步骤可以涉及任务调度器确定经调度以供外部任务调度器执行的一个或多个任务的执行时间的度量。
例如,确定由计算机执行的一个或多个任务的执行时间的度量可以包括确定由计算机执行的单个任务的执行时间。在这种情况下,调度其它任务以供计算机执行的步骤可以基于单个任务的执行时间。例如,当单个任务的执行时间超过阈值时间值时,任务调度器可以使用第一强化学习模型调度其它任务。换句话说,在一个简单的实施例中,关于使用第一强化学习模型还是第二强化学习模型调度任务以执行的决定可以由任务调度器基于仅单个任务的执行时间做出。这种操作模式可以通过以下假设来证明是合理的,即如果单个任务的执行时间是可接受的,则其它任务的执行时间也可能同样是可接受的。有利的是,这种操作模式在计算上相对简单。但是,应当理解,这种方法虽然计算简单,但是由于单个选定任务的一个执行时间不具有代表性,例如比其它任务的执行时间短得多或长的多,因此容易产生风险,从而可能导致任务调度不当。
在一种实现方式中,所述确定由所述计算机执行的一个或多个任务的执行时间的度量包括:确定所述任务中的两个或两个以上任务的平均执行时间。由计算机执行的多个任务的平均执行时间可以比任何单个任务执行时间更能代表所有任务的单个执行时间。具体地,考虑平均执行时间可以减少由于采样具有“离群值”执行时间的任务而导致的调度器错误操作的风险,该“离群值”执行时间是明显大于或小于其它任务的执行时间。因此,可以有利地提高任务调度器的可靠性。
“两个或两个以上”任务可以是计算机执行的任务总数的子集。相比于计算所有任务的执行时间,仅确定任务子集的执行时间,从而确定该执行时间子集的平均值,在计算上可能更便宜。但是,为了提高可靠性,即使会产生额外的计算费用,也建议所述方法包括确定所有任务的执行时间和平均执行时间。
在一种实现方式中,所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行包括:如果所确定的所述执行时间的度量大于阈值执行时间,则使用所述第一强化学习模型调度其它任务以供所述计算机执行。
换句话说,任务调度器可以将一个或多个任务的一个或多个执行时间的度量与阈值执行时间值进行比较,并且如果度量超过阈值,则继续使用第二强化学***均)执行时间将迅速收敛到“最佳”时间。
在一种实现方式中,所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行包括:如果所确定的所述执行时间的度量小于阈值执行时间,则使用所述第一强化学习模型调度其它任务以供所述计算机执行。
换句话说,任务调度器可以将一个或多个任务的一个或多个执行时间的度量与阈值执行时间值进行比较,并且如果度量小于阈值,则继续使用第二强化学习模型调度其它任务以供执行。因此,在阈值执行时间定义目标执行时间或最大允许执行时间的情况下,任务的执行时间小于阈值指示任务的执行速度比要求的要快。因此,可以理解的是,该***现在可以实现优化资源利用率的进一步目标。
由于任务调度器主要根据任务的执行时间决定使用哪种强化学习模型来调度任务,因此由于***操作不当导致任务执行时间过长的风险降低。换句话说,***操作以优先实现所需任务执行时间,并且只有当达到所需执行时间时,***才会追求优化资源利用率的进一步目标。
在一种实现方式中,任务调度器还用于循环执行以下操作:所述确定由所述计算机执行的一个或多个任务的执行时间的度量,以及所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行。
换句话说,在任务调度器的操作期间,上述方法可以连续重复。重复这些程序可确保***追求提高资源利用率的目标,同时至少在中期内将任务执行时间保持在阈值时间以下。
在一种实现方式中,所述任务调度器还用于:如果所确定的所述执行时间的度量小于另一个阈值执行时间,则使用所述第二强化学习模型调度其它任务以供所述计算机执行,其中,所述另一个阈值执行时间小于所述阈值执行时间。
换句话说,在使用第一(时间优化)强化学***均任务执行时间)与其它、相对较低的阈值时间值进行比较,并且仅将操作更改为使用第二(利用率优化)强化学***均)任务执行时间减小到显著超过而不仅仅是达到阈值时间,然后切换到以资源利用率为目标的调度任务。当任务执行时间非常接近阈值时间时,这种操作模式可以有利地减少任务调度器发生“翻转”,却可能不合宜损害调度器的性能,和/或增加任务执行时间超过阈值的风险。因此,可以进一步改进任务调度器的操作。
在一种实现方式中,任务调度器还用于:确定执行未完成的待执行任务的数量;基于所确定的任务数量,使用奖励函数训练用于优化任务执行时间的所述第一强化学习模型。
换句话说,任务调度器可以使用等待计算机执行的任务数量的函数来训练第一强化学习模型,以优化任务执行时间。不完整任务的数量与计算机的任务执行时间间接相关,因为较慢的执行时间可能会增加不完整任务的数量,相反,较快的执行时间可能会减少不完整任务的数量。因此,使用这样的函数,可以训练强化学习模型以优化任务执行时间。此外,使用不完整任务数量的函数训练第一强化学习模型可以比简单地使用监控的一个或多个任务执行时间进行训练更有用,因为不完整任务的数量还是由任务调度器处理的工作负载大小(即需要调度的任务数量)的函数,从而使任务调度器除了任务执行时间之外还响应工作负载条件。
例如,奖励函数可以是不完整作业数量的倒数函数,这样可以通过具有较少不完整作业数量来奖励***。当第一强化学习模型的目标是最小化任务执行时间时,这样的奖励函数可能是合宜的。
在一种实现方式中,任务调度器还用于确定计算机的计算资源的利用率,并基于确定的利用率使用奖励函数训练第二强化学习模型。
换句话说,任务调度器可以使用计算机的计算资源的利用率的函数训练第二强化学习模型,以优化资源利用率。例如,调度器可以确定计算机的处理器容量的利用率,并基于该确定训练第二强化学习模型。有利地,这可以可靠地奖励接近或达到所需的利用率的模型。例如,确定计算机的计算资源的利用率可以表示测量已使用的资源,或者可以包括测量未使用的资源。
本发明的第二方面提供了一种计算***,所述计算***包括用于执行任务的计算机和根据本发明的第一方面的任务调度器,所述任务调度器用于调度任务以供计算机执行。
本发明的第三方面提供了一种调度任务以供计算机执行的方法,所述方法包括:获得用于优化任务执行时间的第一强化学习模型和用于优化所述计算机用于任务执行的计算资源的利用率的第二强化学习模型;确定所述计算机执行的一个或多个任务的执行时间的度量;基于所确定的所述执行时间的度量,使用所述第一强化学习模型和所述第二强化学习模型中的一个来调度其它任务以供所述计算机执行。
在一种实现方式中,所述确定由所述计算机执行的一个或多个任务的执行时间的度量包括:确定所述任务中的两个或两个以上任务的平均执行时间。
在一种实现方式中,所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行包括:如果所确定的所述执行时间的度量大于阈值执行时间,则使用所述第一强化学习模型调度其它任务以供所述计算机执行。
在一种实现方式中,所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行包括:如果所确定的所述执行时间的度量小于阈值执行时间,则使用所述第二强化学习模型调度其它任务以供所述计算机执行。
在一种实现方式中,所述方法还包括循环执行以下操作:所述确定由所述计算机执行的一个或多个任务的执行时间的度量,以及所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行。
在一种实现方式中,所述方法还包括:如果所确定的所述执行时间的度量小于另一个阈值执行时间,则使用所述第二强化学习模型调度其它任务以供所述计算机执行,其中,所述另一个阈值执行时间小于所述阈值执行时间。
在一种实现方式中,所述方法还包括:确定执行未完成的待执行任务的数量;基于所确定的任务数量,使用奖励函数训练用于优化任务执行时间的所述第一强化学习模型。
在一种实现方式中,所述方法还包括:确定计算机的计算资源的利用率,并基于确定的利用率使用奖励函数训练第二强化学习模型。
本发明的第三方面提供了一种包括指令的计算机程序,所述指令当由计算设备执行时,使计算设备执行根据本发明的第二方面所述的方法。
本发明的第四方面提供了一种计算机可读数据载体,其上存储有本发明的第三方面所述的计算机程序。
根据下文描述的一个或多个实施例,本发明的这些和其它方面是显而易见的。
附图说明
为了更容易理解本发明,现在将参考附图通过示例的方式描述本发明的实施例,在附图中:
图1示意性地示出了体现本发明各方面的计算***的示例,该计算***包括用于执行任务的计算机和用于调度任务以供计算机执行的任务调度器;
图2示意性地示出了先前参考图1标识的任务调度器的硬件;
图3示意性地示出了任务调度器硬件支持的虚拟模块;
图4示出了使用先前参考图1标识的计算***执行任务的方法所涉及的过程,该过程包括调度任务以供计算***的计算机执行的过程和训练任务调度器的过程;
图5示出了调度任务以供计算***的计算机执行的方法所涉及的过程,该过程包括确定计算机的可用计算资源和执行任务所需的计算资源的大小的过程;
图6示出了确定计算机的可用计算资源和执行任务所需的计算资源的大小的过程的可视化视图;
图7示出了训练任务调度器的方法所涉及的过程;
图8示出了训练任务调度器的方法的可视化视图。
具体实施方式
首先参考图1,体现本发明的一方面的计算***101包括多个客户端设备(例如两个客户端设备102和103)、多个计算机(例如两个计算机104和105)以及任务调度器106。组件102至106通过通信网络进行通信,在107处示出。例如,网络107是互联网。
客户端设备102和103是配置用于运行应用软件以执行一个或多个功能的计算设备。例如,客户端设备102和103中的每一个可以包括需要执行计算任务的个人计算机或移动计算设备,所述个人计算机或移动计算设备用于运行office相关软件。为了减少应用软件对相应客户端设备102和103的内部计算资源(例如处理器容量)的消耗,每个客户端设备用于通过网络107输出计算任务以供计算机104和105执行。
计算机104和105各自包括用于执行计算任务和用于与网络107连接的硬件。例如,每个计算机包括:中央处理单元,用于执行任务;支持缓冲器的存储器,用于将接收到的任务排队,并用于存储与由中央处理单元运行的程序相关的信息和在任务执行期间由程序生成的操作数据;网络接口,例如网卡,用于使计算机能够与网络107通信。例如,计算机104和105用作远离客户端设备102和103的数据中心,用于执行客户端设备以客户端-服务器关系输出的任务。
任务调度器106是计算机设备,包括用于读取由客户端设备102和103输出的任务并调度任务以供计算机104和105执行的硬件。例如,任务调度器106可以是计算机104和105的单独计算机设备。例如,任务调度器106可以作为服务器计算机提供。在其它示例中,任务调度器106可以被结合到客户端设备102和103或计算机104和105中的一个或多个中。如将描述,任务调度器106用于使用强化学习模型调度任务。将具体参考图2和图3进一步详细地描述任务调度器106。
接下来参考图2,任务调度器106包括中央处理单元201、存储器202、随机存取存储器203、网卡204和***总线205。
中央处理单元201用于执行与调度由计算机104和105执行的任务相关的处理。闪存存储器202用于非易失性存储与用于调度由中央处理单元102执行的任务的过程相关的程序。随机存取存储器104被配置为读/写存储器,用于存储与由中央处理单元102执行的程序相关联的操作数据,并用于存储与由客户端设备102和103输出的任务相关的数据。网络接口204(例如网卡)使任务调度器106能够通过网络107与客户端设备和计算机通信。任务调度器的组件201至204通过***总线205通信。
接下来参考图3,任务调度器106的硬件用于支持用于调度任务以供客户端设备102和103输出的方法的八个功能。
阈值标识符301用于标识用于由计算机104和105执行任务的服务水平参数。具体地,阈值标识符301用于识别用于由计算机104和105执行任务的阈值执行时间,例如最大执行时间。例如,阈值标识符301可以用于读取存储在任务调度器的存储器202中的标识任务执行的阈值时间和其它参数的服务级别协议。
任务缓冲器302用于接收和存储由客户端设备102和103输出的任务,以准备由任务调度器调度这些任务。例如,计算***101可以用于使得任务调度器接收和存储由客户端设备102和103输出的所有任务,确定用于执行任务的计划,并随后将任务转发到计算机104和105,以便与定义任务执行顺序的确定计划一起执行。在一个示例性替代方案中,由客户端设备102和103输出的任务可以直接发送到计算机104和105中的一个或两个,并存储在计算机的存储器中,并且任务调度器可以用于从一个或多个计算机104和105的存储器读取任务,以便生成任务的计划。在这个替代示例中,任务缓冲器302可以从任务调度器106中省略,并由从一个或多个计算机104和105的存储器读取任务的功能取代。
资源监视器303用于确定每个排队任务执行任务所需的计算资源。资源监视器303还用于确定计算机104和105用于执行任务的计算资源(例如处理器容量)的利用率。例如,资源监视器303可以例如经由网络107从计算机104和105接收报告,该报告标识相应计算机的未使用计算资源,或者可以用于动态测试计算机104和105的未使用资源。
任务指导器304用于指示计算机104和105根据由任务调度器生成的计划执行任务。例如,任务指导器304可以例如通过网络107将执行命令传输到计算机104和105。
时间监视器305用于确定计算机104和105执行调度任务所耗费的时间。例如,时间监视器305可以在相应计算机的任务执行实例的开始和结束时间,例如通过网络107从计算机104和105接收信号。作为替代示例,计算机104和105可以自我报告执行任务所耗费的时间,并且这种报告可以通过网络107传输到时间监视器305。此外,时间监视器305用于计算多个任务的平均执行时间。
队列监视器306用于确定由客户端设备102和103输出的计算机104和105执行未完成的任务的数量。例如,队列监视器可以用于在计数中包括等待执行的任务和部分执行的任务。例如,队列监视器可以从计算机104和105接收报告,该报告标识不完整任务的数量。
计划生成器307用于确定由客户端设备102和103输出的将由计算机104和105执行的任务的计划,并且还用于例如通过网络107将计划传输到计算机104和105。如将参考图5和图8进一步描述,计划生成器307部署强化学习模型以调度任务。
模型训练器308用于训练计划生成器307的强化学习模型,以调度任务供计算机104和105执行。
参考图4,操作计算***101以执行任务的方法包括六个阶段。
在阶段401,客户端设备102和103通过通信网络107输出计算任务以供计算机104和105执行。例如,这种计算任务可以包括在客户端设备102和103上运行的应用软件的性能中涉及的计算操作。例如,在客户端设备102和103上运行的应用软件可以涉及神经网络模型的执行,并且神经网络模型可以由计算机104和105执行,由此神经网络模型的执行结果可以由计算机104和105传输到客户端设备102和103。例如,输出用于执行的任务可以是由在客户端设备102和103上运行的应用软件控制的过程,使得该方法由应用软件自动启动。例如,计算***101可以用于使得客户端设备102和103将用于执行的任务输出到任务调度器106,由此任务缓冲器302接收并存储任务,例如,存储在随机存取存储器203中。
在阶段402,任务调度器106使用一个或多个强化学习模型确定任务执行的计划。该计划定义了计算机104和105执行任务的顺序,并定义了由计算机104执行的任务或任务的部分和由计算机105执行的任务或任务的部分的分割。
在阶段403,任务调度器106通过通信网络107向计算机104和105发送任务的细节。例如,阶段403可以涉及任务调度器106将定义要完成的一个或多个任务的数据(例如要执行的一个或多个计算操作和一个或多个计算操作的输入)传输到计算机104和105中的相应一个或两个。在将任务发送到计算机104和105之后,将任务的细节从任务调度器106的随机存取存储器203中擦除。任务调度器106还将在阶段402生成的计划发送到计算机104和105。任务的细节和计划随后可以存储在计算机104和105中的一个或两个的内部存储器中。
在阶段404,计算机104和105根据在阶段403接收的计划执行同样在阶段403接收的任务。
在阶段405,在阶段404执行任务之后,计算机104和105将任务的计算结果(例如神经网络模型任务的预测)返回到客户端设备102和103中的一个或两个。因此,在客户端设备102和103上运行的应用软件可以利用返回的结果。
在阶段406,训练由任务调度器106用于调度任务的强化学习模型。
具体参考图5,用于调度任务执行的阶段402的方法包括十个阶段。
在阶段501,计算机104和105执行任务的阈值执行时间(TT),例如最大允许时间,由任务调度器106的阈值标识符301确定。阈值标识符301可以读取存储在任务调度器106的存储器202中的静态阈值执行时间。例如,计算***101的开发人员的服务级别协议包括阈值执行时间,并存储在任务调度器106的存储器202中。作为示例性替代方案,阈值标识符301可以用于根据预定义规则动态确定阈值执行时间。例如,预定义规则可以将阈值执行时间定义为输出任务的特定客户端设备的函数,例如,定义为要服务的客户端的函数,或定义为日时间的函数。
在阶段502,任务调度器106的任务缓冲器302接收由客户端设备102和103输出的任务,并将接收到的任务存储在任务调度器的随机存取存储器203中。
在阶段503,任务调度器106的资源监视器303确定:(a)每个计算机104和105的计算资源的大小,具体是处理器容量和内存容量;(b)执行在阶段502接收的每个任务所需的计算资源的大小,具体是处理器容量和内存容量。
在阶段504,任务调度器106的任务指导器304将最初将在阶段502接收的一个或多个任务发送到计算机104和105中的一个或两个以执行。例如,该阶段涉及任务指导器按照任务缓冲器从客户端设备102和103接收任务的顺序,向计算机104和105中的一个或两个发送少量任务,例如10%的任务。任务指导器304将这些初始任务发送到计算机104和105的主要目的是分析计算机的任务执行时间,这将通知任务调度过程的稍后阶段。
在阶段505,任务调度器106的时间监视器305测量在阶段504由计算机发送执行的每个任务的执行持续时间(T)。例如,阶段505可以涉及时间监视器305通过网络107接收信号,由计算机104和105标记任务执行实例的开始和结束时间,由此时间监视器305可以确定一个或多个任务的执行时间。作为示例性替代方案,阶段505可以涉及计算机104和105向时间监视器305发送报告,报告执行任务所耗费的时间。
在阶段506,时间监视器305计算在阶段505确定的任务的执行时间的平均值(TAV),例如算术平均值。
在阶段507,时间监视器305确定在阶段506确定的平均执行时间TAV是否等于或小于在阶段501确定的阈值执行时间TT。如果在阶段507中的确定的回答是否定的,这指示任务的平均执行时间大于阈值执行时间,或者换句话说,平均执行时间过长,则任务调度器前进到阶段508。在替代方案中,如果阶段507的确定的回答是肯定的,这指示任务的平均执行时间确实等于或小于阈值执行时间,或者换句话说,平均执行时间适当地较短,则任务调度器前进到阶段509。
在阶段508,计划生成器307继续使用用于优化(例如最小化)任务执行时间的第一强化学习模型调度在阶段502接收的其它任务,即先前未在阶段504发送执行的任务。例如,第一强化学习模型可以通过在计算机104和105之间分配任务工作负载来调度任务以供执行,从而最小化任务执行时间。这种分布式工作负载可以预期减少每个计算机104和105对计算资源的瞬时需求,从而可以预期减少每个计算机执行任务所耗费的时间。
在阶段509,计划生成器307继续使用第二强化学习模型来调度任务,第二强化学习模型用于优化(例如最大化)用于执行任务的计算机104和105中的一个或两个的计算资源的利用率。例如,第二强化学习模型可以通过调度在阶段502接收的由一台计算机执行的相对大比例的任务,或甚至所有任务,来最大限度地利用计算机104和105中的一个计算机的计算资源。在某些情况下,将任务合并到一个频繁使用的计算机104和105上可以预期降低计算机104和105的总功耗。
在阶段510,计划生成器307基于阶段508或阶段509的输出生成一个或多个计划,这些计划定义了用于执行在阶段502接收的任务的参数。例如,在阶段510生成的计划可以定义计算机104和105中的哪一个应该执行每个任务,以及计算机104和105执行任务的顺序。
然后,在阶段510生成的一个或多个计划可以在阶段403被发送到计算机104和105,可选地与要执行的任务的细节一起发送,如前面参考图3所述。
如图5所示,任务调度过程的阶段505至510可以在阶段404由计算机104和105执行先前调度的任务之后重复。因此,在阶段505至510的第二迭代中,在阶段505,时间监视器305可以监视在上述第一迭代中调度的任务的执行时间。根据这些第一迭代任务的(平均)执行时间,在第二迭代中,任务调度器106可以在阶段508或阶段509调度其它任务以供执行。在特定示例中,任务调度器106用于调度小批量任务以供执行(例如数量少于100个的一批任务),然后在阶段403将任务批发送到计算机104和105。因此,在每个迭代中,时间监视器305监视在紧接的前一个迭代中发送的任务的执行时间,并基于监视的时间调度其它任务。在替代实施例中,任务调度器可以用于调度数量明显更小或更大的一批任务,例如,调度数量少于10个或多于1000个的一批任务。
接下来参考图6,用于确定每个计算机104和105的处理器计算资源和内存计算资源的利用率以及用于确定用于执行在阶段502由任务缓冲器302接收的每个任务的处理器容量和内存容量的阶段503的过程可以确定计算机104和105执行每个排队任务的能力。因此,参考示例,在此阶段的结果中,任务调度器106可以确定在作业槽1排队的示例任务的执行涉及两个时间单位的计算机104和105的两个处理器容量单位,以及两个时间单位的计算机104和105的一个内存单位,并且在作业槽2排队的示例任务的执行涉及一个时间单位的计算机104和105的一个处理器容量单位,以及一个时间单位的计算机104和105的两个内存单位,等等。对计算机104和105的计算资源的上述利用率以及执行任务所涉及的计算资源的了解有利地可以避免在执行需要的计算资源超过计算机104和105的可用计算资源的任务时使计算机104和105中的一个或两个过度利用,即过载。
接下来共同参考图7和图8,用于训练由任务调度器106分别在阶段508和509部署的强化学习模型RL1、RL2的阶段406的方法包括四个阶段。
在阶段701,队列监视器306确定由客户端设备102和103输出并由任务调度器106接收的计算机104和105执行未完成的任务的数量。例如,在此阶段的确定是包括由任务调度器接收的等待调度的任务和经调度以供计算机104和105执行的未完全完成的任务。在此阶段,队列监视器306可以查询任务调度器106的任务缓冲器302以确定等待调度的任务(即未发送到计算机104和105执行的任务)的数量,并且可以查询计算机104和105以确定经调度以供执行的任务的数量,即已经发送到计算机104和105的任务,以及计算机104和105当前正在执行的任务数量。
在阶段702,资源监视器303确定用于执行任务的计算机104和105的计算资源(例如处理器容量)的利用程度,即当前用于执行任务的相应计算机的计算资源的比例。例如,该阶段可以涉及任务调度器查询计算机104和105,以建立当前用于执行任务的相应计算机的处理器容量的比例。
在阶段703,模型训练器308生成分别用于训练第一强化学习模型RL1和第二强化学习模型RL2中的相应一个的第一奖励函数和第二奖励函数。
例如,第一强化学***均执行时间,而且还考虑了客户端设备102和103输出的用于执行的任务的工作负载。此外,例如,用于训练第二强化学习模型RL2的奖励函数,即用于训练模型RL2以最大化计算资源(例如计算机104和105的处理器容量)的利用率的奖励函数,被定义为在阶段702确定的计算机104和105的计算资源(例如处理器容量)的利用率的函数。
在阶段704,由任务调度器用于调度任务以供计算机104和105执行的强化学***衡任务执行时间和资源利用率。但是,由于参考图5的阶段507所描述的在阶段402调度任务的方法优先考虑用于最小化任务执行时间的第一强化学***,例如接近最小时间。
虽然已详细地描述了本发明及其优点,但是应理解,可以在不脱离如所附权利要求书所界定的本发明的精神和范围的情况下对本发明做出各种改变、替代和更改。在权利要求书中,词语“包括”不排除其它元件或步骤,并且“一”或“一个”不排除多个。此外,在通过示例的方式描述方法或过程涉及多个步骤或阶段的情况下,应当理解,在其它示例中,阶段可以省略或以所描述示例的替代顺序执行。
Claims (19)
1.一种用于调度任务以供计算机执行的任务调度器,其特征在于,所述任务调度器用于:
获得用于优化任务执行时间的第一强化学习模型和用于优化所述计算机用于任务执行的计算资源的利用率的第二强化学习模型;
确定所述计算机执行的一个或多个任务的执行时间的度量;
基于所确定的所述执行时间的度量,使用所述第一强化学习模型和所述第二强化学习模型中的一个来调度其它任务以供所述计算机执行。
2.根据权利要求1所述的任务调度器,其特征在于,所述确定由所述计算机执行的一个或多个任务的执行时间的度量包括:确定所述任务中的两个或两个以上任务的平均执行时间。
3.根据权利要求1或2所述的任务调度器,其特征在于,所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行包括:如果所确定的所述执行时间的度量大于阈值执行时间,则使用所述第一强化学习模型调度其它任务以供所述计算机执行。
4.根据上述权利要求中任一项所述的任务调度器,其特征在于,所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行包括:如果所确定的所述执行时间的度量小于阈值执行时间,则使用所述第二强化学习模型调度其它任务以供所述计算机执行。
5.根据上述权利要求中任一项所述的任务调度器,其特征在于,用于循环执行以下操作:所述确定由所述计算机执行的一个或多个任务的执行时间的度量,以及所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行。
6.根据权利要求3至5中任一项所述的任务调度器,其特征在于,用于:如果所确定的所述执行时间的度量小于另一个阈值执行时间,则使用所述第二强化学习模型调度其它任务以供所述计算机执行,其中,所述另一个阈值执行时间小于所述阈值执行时间。
7.根据上述权利要求中任一项所述的任务调度器,其特征在于,还用于:
确定执行未完成的待执行任务的数量,
基于所确定的任务数量,使用奖励函数训练用于优化任务执行时间的所述第一强化学习模型。
8.根据上述权利要求中任一项所述的任务调度器,其特征在于,还用于:
确定所述计算机的所述计算资源的利用率,
基于所确定的利用率,使用奖励函数训练所述第二强化学习模型。
9.一种计算***,其特征在于,包括用于执行任务的计算机和上述权利要求中任一项所述的用于调度任务以供所述计算机执行的任务调度器。
10.一种调度任务以供计算机执行的方法,其特征在于,所述方法包括:
获得用于优化任务执行时间的第一强化学习模型和用于优化所述计算机用于任务执行的计算资源的利用率的第二强化学习模型;
确定所述计算机执行的一个或多个任务的执行时间的度量;
基于所确定的所述执行时间的度量,使用所述第一强化学习模型和所述第二强化学习模型中的一个来调度其它任务以供所述计算机执行。
11.根据权利要求10所述的方法,其特征在于,所述确定由所述计算机执行的一个或多个任务的执行时间的度量包括:确定所述任务中的两个或两个以上任务的平均执行时间。
12.根据权利要求10或11所述的方法,其特征在于,所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行包括:如果所确定的所述执行时间的度量大于阈值执行时间,则使用所述第一强化学习模型调度其它任务以供所述计算机执行。
13.根据上述权利要求中任一项所述的方法,其特征在于,所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行包括:如果所确定的所述执行时间的度量小于阈值执行时间,则使用所述第二强化学习模型调度其它任务以供所述计算机执行。
14.根据上述权利要求中任一项所述的方法,其特征在于,还包括循环执行以下操作:所述确定由所述计算机执行的一个或多个任务的执行时间的度量,以及所述基于所确定的所述执行时间的度量使用所述第一强化学习模型和所述第二强化学习模型中的一个调度其它任务以供所述计算机执行。
15.根据权利要求12至14中任一项所述的方法,其特征在于,还包括:如果所确定的所述执行时间的度量小于另一个阈值执行时间,则使用所述第二强化学习模型调度其它任务以供所述计算机执行,其中,所述另一个阈值执行时间小于所述阈值执行时间。
16.根据上述权利要求中任一项所述的方法,其特征在于,还包括:
确定执行未完成的待执行任务的数量,
基于所确定的任务数量,使用奖励函数训练用于优化任务执行时间的所述第一强化学习模型。
17.根据上述权利要求中任一项所述的方法,其特征在于,还包括:
确定所述计算机的所述计算资源的利用率,
基于所确定的利用率,使用奖励函数训练所述第二强化学习模型。
18.一种包括指令的计算机程序,其特征在于,所述指令当由计算设备执行时,使所述计算设备执行根据权利要求10至17中任一项所述的方法。
19.一种计算机可读数据载体,其特征在于,存储有根据权利要求18所述的计算机程序。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2021/052997 WO2022171262A1 (en) | 2021-02-09 | 2021-02-09 | Scheduling tasks for execution by a computer based on a reinforcement learning model |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116848508A true CN116848508A (zh) | 2023-10-03 |
Family
ID=74587027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180093346.9A Pending CN116848508A (zh) | 2021-02-09 | 2021-02-09 | 基于强化学习模型调度任务以供计算机执行 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116848508A (zh) |
WO (1) | WO2022171262A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115331796B (zh) * | 2022-10-17 | 2022-12-27 | 中科厚立信息技术(成都)有限公司 | 基于强化学习的病床资源配置优化方法、***及终端 |
-
2021
- 2021-02-09 CN CN202180093346.9A patent/CN116848508A/zh active Pending
- 2021-02-09 WO PCT/EP2021/052997 patent/WO2022171262A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022171262A1 (en) | 2022-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220083395A1 (en) | Scheduling system for computational work on heterogeneous hardware | |
EP3553657A1 (en) | Method and device for allocating distributed system task | |
CN111767134B (zh) | 一种多任务动态资源调度方法 | |
US8547840B1 (en) | Bandwidth allocation of bursty signals | |
CN110389816B (zh) | 用于资源调度的方法、装置以及计算机可读介质 | |
US8645592B2 (en) | Balancing usage of hardware devices among clients | |
CN113448743B (zh) | 用于任务处理的方法、电子设备以及计算机程序产品 | |
KR101201904B1 (ko) | 클라우드 컴퓨팅에서의 리소스 분배 장치 및 그 방법 | |
CN111104211A (zh) | 基于任务依赖的计算卸载方法、***、设备及介质 | |
CN111176840B (zh) | 分布式任务的分配优化方法和装置、存储介质及电子装置 | |
CN116541134B (zh) | 多架构集群中容器的部署方法及装置 | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN108829519A (zh) | 基于云平台的任务调度方法、云平台及计算机可读存储介质 | |
CN106775975B (zh) | 进程调度方法及装置 | |
CN113127173B (zh) | 一种异构感知的集群调度方法及装置 | |
CN116848508A (zh) | 基于强化学习模型调度任务以供计算机执行 | |
CN113608852A (zh) | 任务调度方法、调度模块、推理节点和协同作业*** | |
CN115640113A (zh) | 多平面弹性调度方法 | |
CN116248699B (zh) | 多副本场景下的数据读取方法、装置、设备及存储介质 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN111143063A (zh) | 任务的资源预约方法及装置 | |
CN111258729A (zh) | 基于Redis的任务分配方法、装置、计算机设备及存储介质 | |
CN113419863B (zh) | 一种基于节点能力的数据分配处理方法及装置 | |
CN115952054A (zh) | 一种仿真任务资源管理方法、装置、设备及介质 | |
CN114661415A (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 |