CN116302448A - 任务调度方法和系统 - Google Patents
任务调度方法和系统 Download PDFInfo
- Publication number
- CN116302448A CN116302448A CN202310532436.4A CN202310532436A CN116302448A CN 116302448 A CN116302448 A CN 116302448A CN 202310532436 A CN202310532436 A CN 202310532436A CN 116302448 A CN116302448 A CN 116302448A
- Authority
- CN
- China
- Prior art keywords
- target
- preset
- task
- node
- current
- 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 81
- 238000013468 resource allocation Methods 0.000 claims abstract description 70
- 238000012549 training Methods 0.000 claims description 92
- 238000012216 screening Methods 0.000 claims description 41
- 230000006870 function Effects 0.000 claims description 39
- 230000009471 action Effects 0.000 claims description 32
- 230000002787 reinforcement Effects 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 17
- 238000005457 optimization Methods 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- 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
- 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)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务调度方法和系统,该方法应用于kubernetes,通过接收目标任务并在接收到目标任务后获取若干个当前可用计算节点;将目标任务的资源需求参数和当前可用计算节点的当前资源分配参数输入至目标DQN模型,目标DQN模型输出符合预设服务指标的优选节点;对优选节点进行节点匹配并基于匹配结果确定目标计算节点;将目标任务调度至所述目标计算节点。本发明可通过目标DQN模型从当前可用计算节点中选取符合预设服务指标的优选节点,然后将节点匹配成功的优选节点确定为最终的目标计算节点,最后基于目标计算节点实现任务调度,即本发明可提高任务调度的服务质量,进而提高用户的使用体验。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务调度方法和系统。
背景技术
Kubernetes是一种基于Docker技术的分布式容器集群管理系统,该系统可实现容器集群的自动化管理,并为开发人员提供多个用于构建、测试和部署容器化应用程序的工具。任务调度是指根据一定的调度算法和策略,以一定的顺序将计算任务分配给不同的处理器或处理单元,以实现更高效的任务处理和资源利用,在Kubernetes中是指将kubernetes接收到的任务分配给指定计算节点。Kubernetes的任务调度需要经过筛选阶段和优选阶段,在筛选阶段中通过筛选策略对所有节点进行过滤,而优选阶段则根据优先策略对经过筛选的节点进行打分,根据打分结果确定最终的计算节点。其中,筛选策略基本是根据节点可用性以及亲和性进行节点筛选,这部分往往是硬性的约束且相对没有改进的余地,因而kubernetes中任务调度算法主要考虑的是优选策略的设计。
优选策略之间的区别在于选择的评分标准不同,现有常见的优选策略有:基于集群负载均衡的策略、基于任务依赖或相关性的策略以及基于节点资源利用率均衡性的策略等,但当前这些策略都有相似的缺点,一方面,这些策略都只是简单的数值汇总比较(例如各cpu利用率、内存利用率),在kubernetes上基于go语言实现复杂的调度逻辑较为困难;另一方面,当前调度策略仅着眼于当前的系统或集群、节点的状态,并没有考虑到此次调度之后的任务调度影响,即算法都是即时的,因而滞后性的以任务状态为主的服务质量无法被考量到,但服务质量指标却往往是用户更易感知更为关注的指标。因此现有的任务调度方法服务质量不高,用户体验感差。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种任务调度方法和系统,旨在解决现有的任务调度方法服务质量不高,用户体验感差的技术问题。
为实现上述目的,本发明提供了一种任务调度方法,所述任务调度方法应用于kubernetes,所述任务调度方法包括:
接收目标任务,并在接收到所述目标任务后获取若干个当前可用计算节点;
将所述目标任务的资源需求参数和所述当前可用计算节点的当前资源分配参数输入至目标DQN模型,所述目标DQN模型输出符合预设服务指标的优选节点;
对所述优选节点进行节点匹配,并基于匹配结果确定目标计算节点;
将所述目标任务调度至所述目标计算节点。
可选地,所述对所述优选节点进行节点匹配,并基于匹配结果确定目标计算节点的步骤,包括:
获取筛选节点集合,并判断所述优选节点与所述筛选节点集合是否匹配;
若是,则将所述优选节点作为目标计算节点。
可选地,所述接收目标任务之前,还包括:
在调度架构中配置预设接口函数;
注册预设打分插件,并基于预设ConfigMap资源配置文件在所述调度架构的打分扩展点配置所述预设打分插件,所述预设打分插件用于调用目标DQN模型。
可选地,所述将所述目标任务的资源需求参数和所述当前可用计算节点的当前资源分配参数输入至目标DQN模型之前,还包括:
获取预设计算任务,并通过所述预设计算任务进行随机任务调度获取预设数量的训练数据;
根据所述预设数量的训练数据创建训练数据集;
基于所述训练数据集和预设服务奖励函数对预设DQN模型进行深度强化学习迭代训练,获得目标DQN模型;
其中,所述预设服务奖励函数公式为:
可选地,所述基于所述训练数据集和预设服务奖励参数对预设DQN模型进行深度强化学习迭代训练,获得目标DQN模型的步骤,包括:
将所述预设计算任务的任务资源需求和所述训练数据集中各计算节点的第一资源分配参数输入预设DQN模型,获得所述各计算节点对应的动作参数;
获取所述各计算节点的第二资源分配参数和所述预设DQN模型的当前服务奖励参数;
通过所述各计算节点的所述第一资源分配参数、所述动作参数、所述第二资源分配参数和所述当前服务奖励参数确定所述预设DQN模型的当前损失参数;
判断所述预设DQN模型的当前损失参数是否小于预设损失参数;
若否,则返回至所述将所述预设计算任务的任务资源需求和所述训练数据集中各计算节点的第一资源分配参数输入预设DQN模型的步骤,直至检测到所述预设DQN模型的当前损失参数小于预设损失参数时,将所述预设DQN模型作为目标DQN模型。
可选地,所述将所述目标任务调度至所述目标计算节点之后,还包括:
检测所述目标任务对应的当前奖励周期参数与预设奖励更新周期参数是否匹配;
若是,则基于所述预设服务奖励函数确定所述各计算节点的当前服务奖励参数,并基于所述当前服务奖励参数更新所述目标DQN模型的模型参数。
可选地,所述基于所述当前服务奖励参数更新所述目标DQN模型的模型参数的步骤,包括:
获取所述当前可用计算节点的剩余资源分配参数,并根据所述当前服务奖励参数和所述当前可用计算节点的剩余资源分配参数对所述训练数据集进行数据更新;
从更新后的训练数据集中获取当前更新四元组;
基于所述当前更新四元组确定所述目标DQN模型的当前损失参数;
通过所述目标DQN模型的当前损失参数更新所述目标DQN模型的模型参数。
此外,为实现上述目的,本发明还提出一种任务调度系统,所述任务调度系统包括:
节点获取模块,用于接收目标任务,并在接收到所述目标任务后获取若干个当前可用计算节点;
节点优选模块,用于将所述目标任务的资源需求参数和所述当前可用计算节点的当前资源分配参数输入至目标DQN模型,所述目标DQN模型输出符合预设服务指标的优选节点;
节点匹配模块,用于对所述优选节点进行节点匹配,并基于匹配结果确定目标计算节点;
调度模块,用于将所述目标任务调度至所述目标计算节点。
本发明公开了一种任务调度方法和系统,该任务调度方法应用于kubernetes,该方法包括:在调度架构中配置预设接口函数;注册预设打分插件,并基于预设ConfigMap资源配置文件在调度架构的打分扩展点配置预设打分插件,预设打分插件用于调用目标DQN模型;接收目标任务并在接收到目标任务后获取若干个当前可用计算节点;将目标任务的资源需求参数和当前可用计算节点的当前资源分配参数输入至目标DQN模型,目标DQN模型输出符合预设服务指标的优选节点;获取筛选节点集合,并判断优选节点与筛选节点集合是否匹配;若是,则将优选节点作为目标计算节点;将目标任务调度至所述目标计算节点。与现有任务调度方法相比,本发明可通过目标DQN模型在获取目标任务的资源需求参数和当前可用计算节点的当前资源分配参数后,从若干个当前可用计算节点中选取符合预设服务指标的优选节点;同时,为了提高结果的准确性,本发明还会对优选节点进行节点匹配并将节点匹配成功的优选节点确定为最终的目标计算节点;最后将目标任务调度到目标计算节点实现任务调度。具体地,本发明可通过在kubernetes的调度架构的打分扩展点添加一个基于深度强化学习的评分插件来实现以服务质量(例如任务等待时间、执行时间)为考虑指标进行调度。因此本发明扩展了kubernetes的调度指标并以此提高了服务质量,进而提高了用户的使用体验。此外,本发明还可在调度架构的打分扩展点配置预设打分插件,而该预设打分插件涉及调度逻辑时的代码可使用python编写,因此本发明可通过使用go语言调用python库函数实现复杂的调度逻辑。
附图说明
图1为本发明任务调度方法第一实施例的流程示意图;
图2为本发明任务调度方法第一实施例的任务调度示意图;
图3为本发明任务调度方法第二实施例的流程示意图;
图4为本发明任务调度方法第三实施例的流程示意图;
图5为本发明任务调度系统第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供了一种任务调度方法,参照图1,图1为本发明任务调度方法第一实施例的流程示意图。
本实施例中,所述任务调度方法应用于kubernetes,所述任务调度方法包括:
步骤S10:接收目标任务,并在接收到所述目标任务后获取若干个当前可用计算节点;
需要说明的是,本实施例方法的执行主体可以是具有数据处理、网络通信以及程序运行功能的计算服务设备,例如平板电脑、个人电脑等,还可以是能够实现相同或相似功能的其他电子设备。此处以任务调度设备(简称调度设备)对本实施例和下述各实施例提供的任务调度方法进行具体说明。
需要说明的是,上述调度设备中需装载Kubernetes,Kubernetes是一种基于Docker技术的分布式容器集群管理系统,该系统可实现容器集群的自动化管理,包括负载均衡、服务发现、自动扩展、自动修复等功能,还可为开发人员提供多个用于构建、测试和部署容器化应用程序的工具。容器是Linux为了解决虚拟机存在的占用资源多、运行步骤复杂、运行速度慢等缺点发展而来的。容器的本质是将应用程序及其依赖项隔离运行,相较于虚拟机完整模拟一个独立的操作系统。对于容器内的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层程序的隔离,因此容器可实现对进程的隔离。而Docker是一个开源的、基于Go语言的应用容器引擎,可为容器提供一种封装方案和统一易用的API接口。上述目标任务可以是集群系统中待执行的任务,上述若干个当前可用计算节点可以是集群系统中所有可用的计算节点。
步骤S20:将所述目标任务的资源需求参数和所述当前可用计算节点的当前资源分配参数输入至目标DQN模型,所述目标DQN模型输出符合预设服务指标的优选节点;
需要说明的是,上述目标任务的资源需求参数可以是目标任务需要的CPU总数或GPU总数,而上述当前可用计算节点的当前资源分配参数可以是各当前可用计算节点中与目标任务的资源需求参数类型对应资源的数量。
需要理解的是,上述Kubernetes内可存在一个任务调度器,该任务调度器可将kubernetes接收到的任务分配给集群中的某一计算节点,从而实现任务调度。因此,调度设备可在接收到上述目标任务后获取可用当前集群中可用的计算节点,具体地,调度设备可根据目标任务获取集群的节点可用资源列表,该节点可用资源列表中可包含上述若干个当前可用计算节点。
可以理解的是,通常上述目标DQN模型的输入为各节点对应的状态参数,本实施例中可设计与上述目标任务的资源需求参数和当前可用计算节点的当前资源分配参数对应的状态参数为:
式中,St表示任务调度系统在t时刻的状态,Q为目标任务的资源需求参数,O表示集群当前可用资源。
需要说明的是,具体地,上述Q可以是:
其中,QC表示目标任务的CPU资源需求、QG表示目标任务的GPU资源需求。
相应地,上述O可以是:
其中,Ok表示当前集群中各当前可用计算节点k对应的当前空闲可用资源,OkC表示该计算节点k上空闲可用的CPU,OkG表示该计算节点k上空闲可用的GPU。
可以理解的是,上述状态参数S的维数与集群中当前可用计算节点的总数相关,若当前可用计算节点的总数为n,则该状态参数S的维数为(2n+2)。由上述分析可知,本实施例中该状态参数S不仅可包括当前可用计算节点的可用资源总数,还可包括目标任务的资源需求参数总数。此外,上述状态参数S中Q的资源需求类型并不局限为CPU或GPU,可根据实际情况进行替换或扩展,例如还可以是内存、磁盘空间等。因此,本实施例中,关于状态参数的具体设置方式,本实施例对此不加限制。
易理解的是,上述若干个当前可用计算节点的状态值可通过kubernetes中的命令行命令kubectl get命令获取,该命令涉及到的函数为NewCmdGet函数。
需要说明的是,现有的任务调度方法无法考量以任务执行时间、任务等待时间等有滞后性的任务状态为主的服务质量,但服务质量指标却往往是用户更易感知更为关注的指标。因此,本实施例可根据目标DQN模型将若干个当前可用计算节点中符合预设服务指标的计算节点作为优选节点。具体地,上述目标DQN模型可配置在任务调度的优选阶段的打分插件中,即本实施例可通过在kubernetes的调度架构的打分扩展点添加一个基于深度强化学习的评分插件,即调用上述目标DQN模型的评分插件,来实现以服务质量(例如任务等待时间、执行时间)为考虑指标进行调度。
因而,进一步地,作为一种可实施方式,本实施例中,步骤S10之前还包括:
步骤S00:在调度架构中配置预设接口函数;
步骤S10:注册预设打分插件,并基于预设ConfigMap资源配置文件在所述调度架构的打分扩展点配置所述预设打分插件,所述预设打分插件用于调用目标DQN模型。
需要说明的是,Kubernetes提供了一种可以自定义调度的方法,即通过调度架构(scheduler framework)来实现任务调度,该调度架构可通过向现有的任务调度器添加了一组插件化的API来扩展任务调度功能,其中,接口函数为任务调度器的输入输出,本实施例可基于kubernetes提供的官方函数进行扩展来配置上述预设接口函数。该预设接口函数的输入可包括上述任务处理信息和节点可用资源列表,输出可为单个计算节点,即本实施例中上述预设接口函数的输入输出可对应于上述目标DQN模型的输入输出。
需要理解的是,在任务调度环节中可以加入插件的环节称为扩展点,相应地,本实施例可通过在调度架构的评分扩展点添加一个基于深度强化学习的评分插件来实现以服务质量(例如任务等待时间、执行时间)为考虑指标进行任务调度,该基于深度强化学习的评分插件即为上述预设打分插件。本实施例主要通过在目标任务对应的调度架构的打分扩展点进行自定义任务调度策略的设计,即通过添加上述预设打分插件来实现修改平台任务调度策略功能。该预设打分插件的注册是向kubernetes注册的,预设打分插件的注册包括镜像的创建及上传,该镜像可以是一个包含容器运行所需的应用程序及其依赖项的只读文件系统,可用于创建容器的静态文件,即可将预设打分插件转化为一个文件,便于上传及后续使用。向调度架构注册预设打分插件后可在源码文件中找到对应的打分扩展点并设置扩展点接口的配置。具体地,本实施例可通过创建一个ConfigMap资源配置文件配置打分扩展点的预设打分插件,该ConfigMap资源配置文件中可指定打分扩展点启用自定义的插件。
需要说明的是,上述预设打分插件的插件代码的主体可使用go语言编写,涉及复杂调度逻辑的函数可使用python编写,即本实施例中预设打分插件的涉及调度逻辑的代码是使用python编写,因此上述预设打分插件中可使用go语言中go-python库来调用python的库函数go-python3,进而调用Python库函数中的上述目标DQN模型。
可以理解的是,该预设打分插件可调用的目标DQN模型为预先经过深度强化学习迭代训练且已收敛的DQN模型(深度学习的Q-learning算法)模型。此外,调度架构是kubernetes中实现自定义调度的方法,因此本实施例提出的任务调度方法应当适用于所有计算任务。
步骤S30:对所述优选节点进行节点匹配,并基于匹配结果确定目标计算节点;
需要说明的是,在Kubernetes中进行任务调度需要经过筛选阶段和优选阶段,通常可在筛选阶段中根据筛选策略对节点进行过滤,而优选阶段则根据优先策略对经过筛选的节点进行打分。可理解的是,经过筛选后的节点个数可能小于初始的节点可用资源列表中的节点个数,然而本实施例通过目标DQN模型进行节点优选时不能减小动作空间,即上述目标DQN模型的输入并不是经过筛选后的节点可用资源列表而是初始的节点可用资源列表,因此可能导致经目标DQN模型选择的动作确定的计算节点并不满足上述目标任务的资源需求。此时,需重新由目标DQN模型选择动作直至选择的计算节点在筛选计算节点中。尽管当DQN模型收敛时一般不会有此类情况,但为了提高结果准确性,本实施例可对上述优选节点进行匹配验证。
因此,进一步地,作为一种可实施方式,本实施例中所述步骤S30可包括:
步骤S301:获取筛选节点集合,并判断所述优选节点与所述筛选节点集合是否匹配;
步骤S302:若是,则将所述优选节点作为目标计算节点。
需要说明的是,上述筛选节点集合的获取过程可以是:获取目标任务的资源需求类型,并根据所述资源需求类型对所述若干个当前可用计算节点进行资源匹配筛选,并基于若干个匹配成功的计算节点获得筛选节点集合。具体地,在节点的筛选过程中通常都是根据节点可用性以及亲和性进行节点筛选,本实施例则可通过目标任务的资源需求类型对若干个当前可用计算节点进行资源匹配筛选,并将资源匹配成功的计算节点作为筛选节点,并基于若干个筛选节点构成筛选节点集合。上述资源需求类型可以是目标任务需要的CPU、GPU、内存和/或磁盘空间等,具体的筛选过程可以是:根据目标任务需要的资源需求类型和各资源需求类型对应的资源数量来对各计算节点进行资源匹配,只有资源需求类型和相应的资源数量均符合的计算节点才算匹配成功并计为筛选节点。此外,若上述优选节点位于上述筛选节点集合中即为节点匹配成功,否则匹配失败。可理解的是,只有当上述优选节点匹配成功才表示当前目标DQN模型输出的优选节点与上述目标任务的资源需求类型匹配,才能将优选节点确定为目标计算节点,否则需再次将目标任务的任务资源需求和当前可用计算节点的当前资源分配参数输入至目标DQN模型,直至目标DQN模型输出的优选节点匹配成功。
步骤S40:将所述目标任务调度至所述目标计算节点。
需要说明的是,kubernetes中任务调度的过程可以是根据目标DQN模型输出的动作参数指将待分配任务调度至该动作参数对应的计算节点,该动作参数可表示为:
式中,A表示动作空间,Ak表示将目标任务调度至k节点。
需要理解的是,上述目标DQN模型可根据输入的目标任务的资源需求参数和当前可用计算节点的当前资源分配参数(即上述状态参数S)为所有的计算节点对应的动作Ak打分,并从中选出得分最高的动作作为At并将At输出,以使任务调度器在接收到At后将目标任务调度至At对应的计算节点(即为上述目标计算节点)。
在具体实现中,为了便于理解,以图2为例进行举例说明,图2为本发明任务调度方法第一实施例中的任务调度示意图,如图2所示,在接收到目标计算任务后,若当前集群系统中有4个可用计算节点,均有一定数目可用的CPU和GPU。首先可经过筛选阶段,根据目标任务的资源需求类型筛掉节点1和4,并基于节点2和3构成筛选节点集合;然后使4个可用计算节点均进入优选阶段,本实施例中可在优选阶段对应的打分过程中通过目标DQN模型进行优选,目标DQN模型输出符合预设服务指标的优选节点t;再将优选节点t与筛选节点集合进行节点匹配,若匹配则将优选节点确定t作为目标计算节点,并输出对应的动作参数At至任务调度器,若不匹配则使目标DQN模型重新输出优选节点。例如,若t为节点2(或节点3),则优选节点与筛选节点集合匹配,可将节点2(或节点3)的分数设为10(优选阶段的最高分),其余节点的分数为0,并将动作A2(或A3)输出至任务调度器,则目标任务将被调度至节点2(或节点3);若t为节点1(或节点4),则优选节点与筛选节点集合不匹配,则可使目标DQN模型重新输出优选节点。
本实施例公开了一种任务调度方法,该任务调度方法应用于kubernetes,该方法包括:在调度架构中配置预设接口函数;注册预设打分插件,并基于预设ConfigMap资源配置文件在调度架构的打分扩展点配置预设打分插件,预设打分插件用于调用目标DQN模型;接收目标任务并在接收到目标任务后获取若干个当前可用计算节点;将目标任务的资源需求参数和当前可用计算节点的当前资源分配参数输入至目标DQN模型,目标DQN模型输出符合预设服务指标的优选节点;获取筛选节点集合,并判断优选节点与筛选节点集合是否匹配;若是,则将优选节点作为目标计算节点;将目标任务调度至所述目标计算节点。与现有任务调度方法相比,本实施例可通过目标DQN模型在获取目标任务的资源需求参数和当前可用计算节点的当前资源分配参数后,从若干个当前可用计算节点中选取符合预设服务指标的优选节点;同时,为了提高结果的准确性,本实施例还会对优选节点进行节点匹配并将节点匹配成功的优选节点确定为最终的目标计算节点;最后将目标任务调度到目标计算节点实现任务调度。具体地,本实施例可通过在kubernetes的调度架构的打分扩展点添加一个基于深度强化学习的评分插件来实现以服务质量(例如任务等待时间、执行时间)为考虑指标进行调度。因此本实施例扩展了kubernetes的调度指标并以此提高了服务质量,进而提高了用户的使用体验。此外,本实施例可在调度架构的打分扩展点配置预设打分插件,而该预设打分插件涉及调度逻辑时的代码可使用python编写,因此本实施例可通过使用go语言调用python库函数实现复杂的调度逻辑。
参照图3,图3为本发明任务调度方法第二实施例的流程示意图,基于上述图1所示的实施例,提出本发明任务调度方法的第二实施例。
可以理解的是,上述目标DQN模型为经过深度强化迭代训练且模型收敛的DQN模型,因此,进一步地,本实施例中,步骤S20之前还包括:
步骤S11:获取预设计算任务,并基于所述预设计算任务进行随机任务调度获取预设数量的训练数据;
需要说明的是,上述预设计算任务与上述目标任务的资源需求类型相同,因此可保证目标DQN模型的预测准确性。而上述随机任务调度可以是无逻辑的随机设定目标节点,具体地,可在调度架构的打分扩展点中自定义一个随机打分插件,即为各计算节点随机打分以此实现任务随机调度。然后可将随机调度过程中的各计算节点关于该随机任务调度的状态、动作、服务奖励参数以及下一状态(可状态转移p函数来随机抽一个新的状态)作为一个训练数据;也可对未经过筛选的节点的动作的奖励设置为0来作为一个训练数据;因此进行一次任务随机调度可以产生1个或多个训练数据,以加快训练数据的创建。上述预设数量可根据实际情况进行设置,本实施例对此不加限制。
步骤S12:根据所述预设数量的训练数据创建训练数据集;
需要理解的是,上述训练数据集不仅可用于存储上述进行随机任务调度后获取的样本数据,还可用于存储后续进行深度强化学习迭代训练过程中预设DQN模型与环境交互后的样本数据,例如上述资源需求参数、上述当前资源分配参数和上述动作参数。此外,在基于训练数据集进行深度强化学习的训练过程中,可从训练数据集中随机抽取部分数据进行预设DQN模型的训练,从而将训练数据集的数据序列打散,以在提高数据利用率的同时消除数据相关性,使得数据满足独立同分布,进而减小参数更新的方差,提高模型的收敛速度。
易理解的是,本实施例提出的训练数据集创建方法可以通用于其他使用调度架构的基于机器学习的kubernetes任务调度算法,有较强的适应性。
步骤S13:基于所述训练数据集和预设服务奖励函数对预设DQN模型进行深度强化学习迭代训练,获得目标DQN模型;
其中,所述预设服务奖励函数公式为:
需要理解的是,在基于所述训练数据集对预设DQN模型进行每一训练之后,预设DQN模型会基于上述预设服务奖励函数公式确定每一次训练对应的服务奖励参数,然后以服务奖励参数最大化作为选择标准输出预测结果。易理解的是,现有的任务调度方法无法考量以任务执行时间、任务等待时间等有滞后性的任务状态为主的服务质量,但服务质量指标却往往是用户更易感知更为关注的指标。因此为了提升用户的使用体验,上述预设服务奖励函数的设计主要考虑如何使预设DQN模型输出的训练结果向最小化任务等待时间逼近。
需要说明的是,上述平均执行占比表示集群在基于预设DQN模型输出的计算节点进行任务调度完成后一段时间内调度的任务的平均执行占比,本实施例可使用该值来体现任务等待时间的长短。该平均执行占比/>的值可通过kubectl get命令获得,具体地,平均执行占比/>的计算方式可为:
式中,TE为任务执行时间,TW为任务等待时间。
易理解的是,由平均执行占比的计算方式可知,上述平均执行占比越大,即任务执行时间的占比越大,相应地,任务等待时间越短。因此,本实施例可通过最大化该集群的平均任务加权执行时间,来使预设DQN模型输出的训练结果向最小化任务等待时间靠拢,进而使模型收敛后的目标DQN模型输出的优选节点为任务等待时间最短(即符合预设服务指标)的计算节点。
需要理解的是,上述c为资源匹配奖励,本实施例中当目标任务异构资源需求和节点内剩余资源相同时c设为一定的值,否则c设为零。资源匹配奖励c的设立一方面是为了提高DQN模型训练的收敛速度;另一方面是避免多余资源形成资源碎片,造成资源浪费。例如,在实际应用中,若任务a要5个CPU,任务b要6个CPU。现有节点1有6个空闲CPU,节点2有5个空闲CPU。若将任务a调度到节点1尽管任务a可以完成,但任务b就无法调度了。因此,资源匹配奖励c必须在任务需求资源与节点空闲资源完全匹配时才可设为一定值,否则为0。可理解的是,基于该资源匹配奖励c可使目标DQN模型的输出为若干个当前可用计算节点中集群任务等待时间最短且资源匹配效率最高的计算节点。
进一步地,作为一种可实施方式,本实施例中所述步骤S13可包括:
步骤S131:将所述预设计算任务的任务资源需求和所述训练数据集中各计算节点的第一资源分配参数输入预设DQN模型,获得所述各计算节点对应的动作参数;
步骤S132:获取所述各计算节点的第二资源分配参数和所述预设DQN模型的当前服务奖励参数;
步骤S133:通过所述各计算节点的所述第一资源分配参数、所述动作参数、所述第二资源分配参数和所述当前服务奖励参数确定所述预设DQN模型的当前损失参数;
步骤S134:判断所述预设DQN模型的当前损失参数是否小于预设损失参数;
步骤S135:若否,则返回至所述将所述预设计算任务的任务资源需求和所述训练数据集中各计算节点的第一资源分配参数输入预设DQN模型的步骤,直至检测到所述预设DQN模型的当前损失参数小于预设损失参数时,将所述预设DQN模型作为目标DQN模型。
需要说明的是,DQN模型是基于模型的损失值来判断模型是否收敛,损失值可表征DQN模型实际输出与预测值的相似值,损失值较小即模型的实际输出与预测相近,则为收敛。因此,通常当预设DQN模型的损失参数小于预设损失参数时,即可判断预设DQN模型收敛,并将收敛的预设DQN模型确定为上述目标DQN模型,预设损失参数的值可根据具体情况设置,本实施例对此不加限制。
需要理解的是,上述第一资源分配参数可以是每一次进行训练时各计算节点的当前资源分配参数,具体地,可以是从节点1到节点k所有节点的当前空闲可用资源,如:O=(Ok|Ok={OkC,OkG},k=1,2,...,n);上述第二资源分配参数可以是每一次进行训练且基于预设DQN模型输出的计算节点进行任务调度后各计算节点的当前资源分配参数。
本实施例可通过获取预设计算任务,并基于预设计算任务进行随机任务调度获取预设数量的训练数据;根据预设数量的训练数据创建训练数据集;将预设计算任务的任务资源需求和训练数据集中各计算节点的第一资源分配参数输入预设DQN模型,获得各计算节点对应的动作参数;获取各计算节点的第二资源分配参数和预设DQN模型的当前服务奖励参数;通过各计算节点的第一资源分配参数、动作参数、第二资源分配参数和当前服务奖励参数确定预设DQN模型的当前损失参数;判断预设DQN模型的当前损失参数是否小于预设损失参数;若否,则返回至将预设计算任务的任务资源需求和训练数据集中各计算节点的第一资源分配参数输入预设DQN模型的步骤,直至检测到预设DQN模型的当前损失参数小于预设损失参数时,将预设DQN模型作为目标DQN模型。因此,本实施例还可基于随机任务调度获取训练数据集,并基于训练数据集进行深度强化学习迭代训练获得目标DQN模型,以便后续可通过训练后收敛的目标DQN模型进行目标计算节点的确定,提高目标计算节点的准确性,进而降低了任务调度的等待时间,提升了用户体验。
参照图4,图4为本发明任务调度方法第三实施例的流程示意图,基于上述图1或4所示的实施例,提出本发明任务调度方法的第三实施例,图4以基于图1所示的实施例提出的实施例为例。
可以理解的是,尽管上述目标DQN模型已经是收敛后的模型,但为了进一步提高模型的预测准确性,本实施例还可继续对模型参数进行更新。
因此,进一步地,作为一种可实施方式,本实施例中,步骤S40之后还包括:
步骤S50:检测所述目标任务对应的当前奖励周期参数与预设奖励更新周期参数是否匹配;
步骤S60:若是,则基于所述预设服务奖励函数确定所述各计算节点的当前服务奖励参数,并基于所述当前服务奖励参数更新所述训练数据集和所述目标DQN模型的模型参数。
需要说明的是,奖励参数(即上述服务奖励参数)是深度强化学习中的监督信号,即上述目标DQN模型不仅需要靠奖励参数来进行训练,也需要靠奖励参数进行模型的参数更新。但DQN模型的奖励参数是输出动作执行之后的反馈参数,因此奖励参数的更新是有延迟的,因此本实施例可在目标DQN模型输出动作完成一定时间后再计算输出动作的服务奖励参数,进而更新目标DQN模型的模型参数。可以理解的是,上述当前奖励周期参数可以是目标DQN模型的参数更新线程内的定时计数参数,当目标任务的当前奖励周期参数与预设奖励更新周期参数匹配时,即代表当前定时计数已达到预设更新的定时值,即可获取目标DQN模型的服务奖励参数,进而更新目标DQN模型的模型参数。
需要理解的是,本实施例中,调度设备内还可存在一个线程用于定时更新模型参数。由于目标DQN模型的模型参数可根据目标DQN模型的损失参数进行更新,因此,进一步地,本实施例中,步骤S70包括:
步骤S601:获取所述当前可用计算节点的剩余资源分配参数,并根据所述当前服务奖励参数和所述当前可用计算节点的剩余资源分配参数对所述训练数据集进行数据更新;
步骤S602:从更新后的训练数据集中获取当前更新四元组;
步骤S603:基于所述当前更新四元组确定所述目标DQN模型的当前损失参数;
步骤S604:通过所述目标DQN模型的当前损失参数更新所述目标DQN模型的模型参数。
需要理解的是,上述当前可用计算节点的剩余资源分配参数可以是各计算节点在基于上述目标计算节点进行任务调度后的剩余的资源数量,并将获取的上述当前服务奖励参数和当前可用计算节点的剩余资源分配参数添加进上述训练数据集。上述当前更新四元组可为四元组(s,a,r,s’),该当前更新四元组可包含:当前状态参数s,动作参数a,当前服务奖励参数r和下一状态参数s’,其中,当前状态参数s可根据每一次通过目标DQN模型进行节点优选时保存在上述训练数据集中的当前资源分配参数进行自动更新,相应地,动作a可根据在每一次进行节点优选时保存在训练数据集中的动作参数进行自动更新,下一状态参数s’可根据在每一次进行节点优选时保存在训练数据集中的剩余资源分配参数进行自动更新。因此本实施例只需定时获取对应的当前服务奖励参数r并更新训练数据集中奖励列表的数据后,即可从训练数据集中获取当前更新四元组(s,a,r,s’),从而根据当前更新四元组(s,a,r,s’)获取确定当前目标DQN模型的当前损失参数,进而根据当前损失参数对目标DQN模型的模型参数,即目标DQN模型的权值矩阵,进行更新。
本实施例可通过检测目标任务对应的当前奖励周期参数与预设奖励更新周期参数是否匹配;若是,则获取当前可用计算节点的剩余资源分配参数,并根据当前服务奖励参数和当前可用计算节点的剩余资源分配参数对训练数据集进行数据更新;从更新后的训练数据集中获取当前更新四元组;基于当前更新四元组确定目标DQN模型的当前损失参数;通过目标DQN模型的当前损失参数更新目标DQN模型的模型参数。本实施例可定时获取目标DQN模型的当前服务奖励参数,并通过更新的当前服务奖励参数定时更新目标DQN模型的模型参数。因此本实施例可通过在线训练更新目标DQN模型,不仅可动态适应不同的任务,还可提高模型的预测性能和泛化能力。
参考图5,图5为本发明任务调度系统第一实施例的结构框图。
如图5所示,本发明实施例提出的任务调度系统包括:
节点获取模块501,用于接收目标任务,并在接收到所述目标任务后获取若干个当前可用计算节点;
节点优选模块502,用于将所述目标任务的任务资源需求和所述当前可用计算节点的当前资源分配参数输入至目标DQN模型,所述目标DQN模型输出符合预设服务指标的优选节点;
节点匹配模块503,用于对所述优选节点进行节点匹配,并基于匹配结果确定目标计算节点;
调度模块504,用于将所述目标任务调度至所述目标计算节点。
所述节点获取模块501,还用于在调度架构中配置预设接口函数;
所述节点获取模块501,还用于注册预设打分插件,并基于预设ConfigMap资源配置文件在所述调度架构的打分扩展点配置所述预设打分插件,所述预设打分插件用于调用目标DQN模型。
所述节点匹配模块503,还用于获取筛选节点集合,并判断所述优选节点与所述筛选节点集合是否匹配;
所述节点匹配模块503,还用于若是,则将所述优选节点作为目标计算节点。
本实施例通过在调度架构中配置预设接口函数;注册预设打分插件,并基于预设ConfigMap资源配置文件在调度架构的打分扩展点配置预设打分插件,预设打分插件用于调用目标DQN模型;接收目标任务并在接收到目标任务后获取若干个当前可用计算节点;将目标任务的资源需求参数和当前可用计算节点的当前资源分配参数输入至目标DQN模型,目标DQN模型输出符合预设服务指标的优选节点;获取筛选节点集合,并判断优选节点与筛选节点集合是否匹配;若是,则将优选节点作为目标计算节点;将目标任务调度至所述目标计算节点。与现有任务调度方法相比,本实施例可通过目标DQN模型在获取目标任务的资源需求参数和当前可用计算节点的当前资源分配参数后,从若干个当前可用计算节点中选取符合预设服务指标的优选节点;同时,为了提高结果的准确性,本实施例还会对优选节点进行节点匹配并将节点匹配成功的优选节点确定为最终的目标计算节点;最后将目标任务调度到目标计算节点实现任务调度。具体地,本实施例可通过在kubernetes的调度架构的打分扩展点添加一个基于深度强化学习的评分插件来实现以服务质量(例如任务等待时间、执行时间)为考虑指标进行调度。因此本实施例扩展了kubernetes的调度指标并以此提高了服务质量,进而提高了用户的使用体验。此外,本实施例可在调度架构的打分扩展点配置预设打分插件,而该预设打分插件涉及调度逻辑时的代码可使用python编写,因此本实施例可通过使用go语言调用python库函数实现复杂的调度逻辑。
基于本发明上述任务调度系统第一实施例,提出本发明任务调度系统的第二实施例。
在本实施例中,所述节点获取模块501,还用于获取预设计算任务,并基于所述预设计算任务进行随机任务调度获取预设数量的训练数据;
所述节点获取模块501,还用于根据所述预设数量的训练数据创建训练数据集;
所述节点获取模块501,还用于基于所述训练数据集和预设服务奖励函数对预设DQN模型进行深度强化学习迭代训练,获得目标DQN模型;
所述节点获取模块501,还用于将所述预设计算任务的任务资源需求和所述训练数据集中各计算节点的第一资源分配参数输入预设DQN模型,获得所述各计算节点对应的动作参数;
所述节点获取模块501,还用于获取所述各计算节点的第二资源分配参数和所述预设DQN模型的当前服务奖励参数;
所述节点获取模块501,还用于通过所述各计算节点的所述第一资源分配参数、所述动作参数、所述第二资源分配参数和所述当前服务奖励参数确定所述预设DQN模型的当前损失参数;
所述节点获取模块501,还用于判断所述预设DQN模型的当前损失参数是否小于预设损失参数;
所述节点获取模块501,还用于若否,则返回至所述将所述预设计算任务的任务资源需求和所述训练数据集中各计算节点的第一资源分配参数输入预设DQN模型的步骤,直至检测到所述预设DQN模型的当前损失参数小于预设损失参数时,将所述预设DQN模型作为目标DQN模型。
本实施例通过获取预设计算任务,并基于预设计算任务进行随机任务调度获取预设数量的训练数据;根据预设数量的训练数据创建训练数据集;将预设计算任务的任务资源需求和训练数据集中各计算节点的第一资源分配参数输入预设DQN模型,获得各计算节点对应的动作参数;获取各计算节点的第二资源分配参数和预设DQN模型的当前服务奖励参数;通过各计算节点的第一资源分配参数、动作参数、第二资源分配参数和当前服务奖励参数确定预设DQN模型的当前损失参数;判断预设DQN模型的当前损失参数是否小于预设损失参数;若否,则返回至将预设计算任务的任务资源需求和训练数据集中各计算节点的第一资源分配参数输入预设DQN模型的步骤,直至检测到预设DQN模型的当前损失参数小于预设损失参数时,将预设DQN模型作为目标DQN模型。因此,本实施例还可基于随机任务调度获取训练数据集,并基于训练数据集进行深度强化学习迭代训练获得目标DQN模型,以便后续可通过训练后收敛的目标DQN模型进行目标计算节点的确定,提高目标计算节点的准确性,进而降低了任务调度的等待时间,提升了用户体验。
基于本发明上述任务调度系统第一实施例和第二实施例,提出本发明任务调度系统的第三实施例。
在本实施例中,所述调度模块504,还用于检测所述目标任务对应的当前奖励周期参数与预设奖励更新周期参数是否匹配;
所述调度模块504,还用于若是,则基于所述预设服务奖励函数确定所述各计算节点的当前服务奖励参数,并基于所述当前服务奖励参数更新所述训练数据集和所述目标DQN模型的模型参数。
所述调度模块504,还用于获取所述当前可用计算节点的剩余资源分配参数,并根据所述当前服务奖励参数和所述当前可用计算节点的剩余资源分配参数对所述训练数据集进行数据更新;
所述调度模块504,还用于从更新后的训练数据集中获取当前更新四元组;
所述调度模块504,还用于基于所述当前更新四元组确定所述目标DQN模型的当前损失参数;
所述调度模块504,还用于通过所述目标DQN模型的当前损失参数更新所述目标DQN模型的模型参数。
本实施例通过检测目标任务对应的当前奖励周期参数与预设奖励更新周期参数是否匹配;若是,则获取当前可用计算节点的剩余资源分配参数,并根据当前服务奖励参数和当前可用计算节点的剩余资源分配参数对训练数据集进行数据更新;从更新后的训练数据集中获取当前更新四元组;基于当前更新四元组确定目标DQN模型的当前损失参数;通过目标DQN模型的当前损失参数更新目标DQN模型的模型参数。本实施例可定时获取目标DQN模型的当前服务奖励参数,并通过更新的当前服务奖励参数定时更新目标DQN模型的模型参数。因此本实施例可通过在线训练更新目标DQN模型,不仅可动态适应不同的任务,还可提高模型的预测性能和泛化能力。
本发明任务调度系统的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种任务调度方法,其特征在于,所述任务调度方法应用于kubernetes,所述任务调度方法包括:
接收目标任务,并在接收到所述目标任务后获取若干个当前可用计算节点;
将所述目标任务的资源需求参数和所述当前可用计算节点的当前资源分配参数输入至目标DQN模型,所述目标DQN模型输出符合预设服务指标的优选节点;
对所述优选节点进行节点匹配,并基于匹配结果确定目标计算节点;
将所述目标任务调度至所述目标计算节点。
2.如权利要求1所述的任务调度方法,其特征在于,所述对所述优选节点进行节点匹配,并基于匹配结果确定目标计算节点的步骤,包括:
获取筛选节点集合,并判断所述优选节点与所述筛选节点集合是否匹配;
若是,则将所述优选节点作为目标计算节点。
3.如权利要求2所述的任务调度方法,其特征在于,所述接收目标任务之前,还包括:
在调度架构中配置预设接口函数;
注册预设打分插件,并基于预设ConfigMap资源配置文件在所述调度架构的打分扩展点配置所述预设打分插件,所述预设打分插件用于调用目标DQN模型。
5.如权利要求4所述的任务调度方法,其特征在于,所述基于所述训练数据集和预设服务奖励参数对预设DQN模型进行深度强化学习迭代训练,获得目标DQN模型的步骤,包括:
将所述预设计算任务的任务资源需求和所述训练数据集中各计算节点的第一资源分配参数输入预设DQN模型,获得所述各计算节点对应的动作参数;
获取所述各计算节点的第二资源分配参数和所述预设DQN模型的当前服务奖励参数;
通过所述各计算节点的所述第一资源分配参数、所述动作参数、所述第二资源分配参数和所述当前服务奖励参数确定所述预设DQN模型的当前损失参数;
判断所述预设DQN模型的当前损失参数是否小于预设损失参数;
若否,则返回至所述将所述预设计算任务的任务资源需求和所述训练数据集中各计算节点的第一资源分配参数输入预设DQN模型的步骤,直至检测到所述预设DQN模型的当前损失参数小于预设损失参数时,将所述预设DQN模型作为目标DQN模型。
6.如权利要求5所述的任务调度方法,其特征在于,所述将所述目标任务调度至所述目标计算节点之后,还包括:
检测所述目标任务对应的当前奖励周期参数与预设奖励更新周期参数是否匹配;
若是,则基于所述预设服务奖励函数确定所述各计算节点的当前服务奖励参数,并基于所述当前服务奖励参数更新所述目标DQN模型的模型参数。
7.如权利要求6所述的任务调度方法,其特征在于,所述基于所述当前服务奖励参数更新所述目标DQN模型的模型参数的步骤,包括:
获取所述当前可用计算节点的剩余资源分配参数,并根据所述当前服务奖励参数和所述当前可用计算节点的剩余资源分配参数对所述训练数据集进行数据更新;
从更新后的训练数据集中获取当前更新四元组;
基于所述当前更新四元组确定所述目标DQN模型的当前损失参数;
通过所述目标DQN模型的当前损失参数更新所述目标DQN模型的模型参数。
8.一种任务调度系统,其特征在于,所述任务调度系统包括:
节点获取模块,用于接收目标任务,并在接收到所述目标任务后获取若干个当前可用计算节点;
节点优选模块,用于将所述目标任务的资源需求参数和所述当前可用计算节点的当前资源分配参数输入至目标DQN模型,所述目标DQN模型输出符合预设服务指标的优选节点;
节点匹配模块,用于对所述优选节点进行节点匹配,并基于匹配结果确定目标计算节点;
调度模块,用于将所述目标任务调度至所述目标计算节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310532436.4A CN116302448B (zh) | 2023-05-12 | 2023-05-12 | 任务调度方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310532436.4A CN116302448B (zh) | 2023-05-12 | 2023-05-12 | 任务调度方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116302448A true CN116302448A (zh) | 2023-06-23 |
CN116302448B CN116302448B (zh) | 2023-08-11 |
Family
ID=86830852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310532436.4A Active CN116302448B (zh) | 2023-05-12 | 2023-05-12 | 任务调度方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302448B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663610A (zh) * | 2023-08-02 | 2023-08-29 | 荣耀终端有限公司 | 调度网络训练方法、任务调度方法及相关设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210014872A1 (en) * | 2018-03-27 | 2021-01-14 | Nokia Solutions And Networks Oy | Method and apparatus for facilitating resource pairing using a deep q-network |
CN112241321A (zh) * | 2020-09-24 | 2021-01-19 | 北京影谱科技股份有限公司 | 基于Kubernetes的算力调度方法和装置 |
CN113641481A (zh) * | 2021-08-27 | 2021-11-12 | 西安交通大学 | 一种采用dqn的fpga任务调度优化方法及系统 |
WO2021248607A1 (zh) * | 2020-06-10 | 2021-12-16 | 深圳大学 | 一种基于深度强化学习的出租车调度方法及系统 |
CN114282645A (zh) * | 2021-11-24 | 2022-04-05 | 杭州电子科技大学 | 一种基于dqn的时空众包任务分配方法 |
CN114629906A (zh) * | 2022-03-14 | 2022-06-14 | 浙江大学 | 一种可靠的基于深度强化学习的云容器集群资源调度方法及装置 |
CN114745317A (zh) * | 2022-02-09 | 2022-07-12 | 北京邮电大学 | 面向算力网络的计算任务调度方法及相关设备 |
CN114826908A (zh) * | 2022-05-09 | 2022-07-29 | 新华智云科技有限公司 | kubernetes集群服务保障方法、组件、系统 |
CN114880079A (zh) * | 2022-06-27 | 2022-08-09 | 中国—东盟信息港股份有限公司 | 基于强化学习的Kubernetes集群规模调整方法、系统及设备 |
CN115481779A (zh) * | 2022-08-04 | 2022-12-16 | 中国电子科技集团公司第二十八研究所 | 一种基于联邦强化学习的卫星资源调度优化方法 |
CN116016550A (zh) * | 2022-12-17 | 2023-04-25 | 国网河南省电力公司信息通信公司 | 一种分散网络资源的服务可信提供系统及方法 |
-
2023
- 2023-05-12 CN CN202310532436.4A patent/CN116302448B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210014872A1 (en) * | 2018-03-27 | 2021-01-14 | Nokia Solutions And Networks Oy | Method and apparatus for facilitating resource pairing using a deep q-network |
WO2021248607A1 (zh) * | 2020-06-10 | 2021-12-16 | 深圳大学 | 一种基于深度强化学习的出租车调度方法及系统 |
CN112241321A (zh) * | 2020-09-24 | 2021-01-19 | 北京影谱科技股份有限公司 | 基于Kubernetes的算力调度方法和装置 |
CN113641481A (zh) * | 2021-08-27 | 2021-11-12 | 西安交通大学 | 一种采用dqn的fpga任务调度优化方法及系统 |
CN114282645A (zh) * | 2021-11-24 | 2022-04-05 | 杭州电子科技大学 | 一种基于dqn的时空众包任务分配方法 |
CN114745317A (zh) * | 2022-02-09 | 2022-07-12 | 北京邮电大学 | 面向算力网络的计算任务调度方法及相关设备 |
CN114629906A (zh) * | 2022-03-14 | 2022-06-14 | 浙江大学 | 一种可靠的基于深度强化学习的云容器集群资源调度方法及装置 |
CN114826908A (zh) * | 2022-05-09 | 2022-07-29 | 新华智云科技有限公司 | kubernetes集群服务保障方法、组件、系统 |
CN114880079A (zh) * | 2022-06-27 | 2022-08-09 | 中国—东盟信息港股份有限公司 | 基于强化学习的Kubernetes集群规模调整方法、系统及设备 |
CN115481779A (zh) * | 2022-08-04 | 2022-12-16 | 中国电子科技集团公司第二十八研究所 | 一种基于联邦强化学习的卫星资源调度优化方法 |
CN116016550A (zh) * | 2022-12-17 | 2023-04-25 | 国网河南省电力公司信息通信公司 | 一种分散网络资源的服务可信提供系统及方法 |
Non-Patent Citations (1)
Title |
---|
刘汪根;郑淮城;荣国平;: "云环境下大规模分布式计算数据感知的调度系统", 大数据, no. 01 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663610A (zh) * | 2023-08-02 | 2023-08-29 | 荣耀终端有限公司 | 调度网络训练方法、任务调度方法及相关设备 |
CN116663610B (zh) * | 2023-08-02 | 2023-12-19 | 荣耀终端有限公司 | 调度网络训练方法、任务调度方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116302448B (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200019435A1 (en) | Dynamic optimizing task scheduling | |
US12039976B2 (en) | Man- machine interaction system and multi-task processing method in the man-machine interaction system | |
CN115485690A (zh) | 用于处置聊天机器人的不平衡训练数据的分批技术 | |
US11677877B2 (en) | Utilizing machine learning with call histories to determine support queue positions for support calls | |
CN114356587B (zh) | 算力任务跨区域调度方法、系统及设备 | |
CN111143039B (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN116302448B (zh) | 任务调度方法和系统 | |
CN113225269B (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
AU2021240196B1 (en) | Utilizing machine learning models for determining an optimized resolution path for an interaction | |
CN112733511A (zh) | 表单处理方法、系统、电子设备及计算机可读存储介质 | |
US20210232438A1 (en) | Serverless lifecycle management dispatcher | |
CN110381150A (zh) | 区块链上的数据处理方法、装置、电子设备及存储介质 | |
CN113254200B (zh) | 资源编排方法及智能体 | |
US20230177425A1 (en) | System and method for resource allocation optimization for task execution | |
CN112130979B (zh) | 调度任务及训练神经网络模型的方法、装置、终端和介质 | |
US11645125B2 (en) | Method and apparatus for executing workflow including functions written in heterogeneous programing language | |
CN116719632B (zh) | 任务调度方法、装置、设备以及介质 | |
CN111625343A (zh) | 容器调度方法、装置、计算机设备及存储介质 | |
KR102642396B1 (ko) | 제한된 gpu리소스를 사용한 딥러닝 추론 모델을 위한 배치 스케줄링 장치 | |
US20230359908A1 (en) | Optimizing cogbot retraining | |
CN114615144B (zh) | 网络优化方法及系统 | |
CN111208980B (zh) | 一种数据分析处理方法和系统 | |
CN115617857A (zh) | 一种数据源配置方法、装置及其介质 | |
CN115510189A (zh) | 控制设备 | |
CN113900686A (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 |