CN114911598A - 任务调度方法、装置、设备以及存储介质 - Google Patents
任务调度方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN114911598A CN114911598A CN202210540844.XA CN202210540844A CN114911598A CN 114911598 A CN114911598 A CN 114911598A CN 202210540844 A CN202210540844 A CN 202210540844A CN 114911598 A CN114911598 A CN 114911598A
- Authority
- CN
- China
- Prior art keywords
- node
- resource
- target
- nodes
- determining
- 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
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
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/505—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 load
Abstract
本公开提供了一种任务调度方法、装置、设备以及存储介质。涉及计算机技术领域,尤其涉及人工智能技术开发领域。具体实现方案为:获取初始容器集(Pod)请求,该初始Pod请求中包括资源申请信息;基于资源申请信息,确定资源配置信息;基于该资源配置信息,获取目标Pod请求;发送该目标Pod请求,该目标Pod请求用于指示目标集群系统按照资源配置信息进行任务调度。根据本公开的技术方案,能提高目标集群系统的资源利用率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及人工智能技术开发领域,具体涉及一种任务调度方法、装置、设备以及存储介质。
背景技术
在机器学习场景中,计算资源往往需要做统一的管理。一些集群(如Kubernetes集群,简称K8S集群)虽能提供资源管理的功能,但是管理粒度还不够细致,资源利用率较低。
发明内容
本公开提供了一种任务调度方法、装置、设备以及存储介质。
根据本公开的第一方面,提供了一种任务调度方法,包括:
获取初始容器集(Pod)请求,该初始Pod请求中包括资源申请信息;
基于资源申请信息,确定资源配置信息;
基于该资源配置信息,获取目标Pod请求;
发送该目标Pod请求,该目标Pod请求用于指示目标集群系统按照资源配置信息进行任务调度。
根据本公开的第二方面,提供了一种任务调度装置,包括:
获取模块,用于获取初始Pod请求,该初始Pod请求中包括资源申请信息;
第一确定模块,用于基于该资源申请信息,确定资源配置信息;
第二确定模块,用于基于该资源配置信息,获取目标Pod请求;
发送模块,用于发送该目标Pod请求,该目标Pod请求用于指示目标集群系统按照该资源配置信息进行任务调度。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行上述第一方面所提供的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行上述第一方面所提供的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述第一方面所提供的方法。
本公开实施例,能够提高目标集群系统的资源利用率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的分布式集群系统的示意图;
图2是根据本公开实施例的任务调度方法的流程示意图一;
图3是根据本公开实施例的任务调度方法的流程示意图二;
图4是根据本公开实施例的节点管理示意图;
图5是根据本公开实施例的任务调度的架构示意图;
图6是根据本公开实施例的改变Pod亲和性的流程示意图;
图7是根据本公开实施例的任务调度装置的组成示意图;
图8是根据本公开实施例的任务调度系统的组成示意图;
图9是用来实现本公开实施例的任务调度方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开的说明书实施例和权利要求书及上述附图中的术语"第一"、"第二"和"第三"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语"包括"和"具有"以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1是根据本公开实施例的分布式集群系统的示意图,该分布式集群系统为集群系统的一个示例,可以利用该分布式集群系统进行任务处理,如处理模型训练、物体检测等任务。上述分布式集群系统可以是K8S集群系统。如图1所示,在该分布式集群系统中包括多个节点(如服务器集群101、服务器102、服务器集群103、服务器104、服务器105,服务器105还可以连接电子设备,如手机1051及笔记本电脑1052),多个节点间,以及多个节点与连接的电子设备间可以共同执行一个或多个任务。若能提高分布式集群系统如K8S集群系统的资源利用率,将有助于执行更多的任务。
本公开实施例提供了一种任务调度方法,图2是根据本公开实施例的任务调度方法的流程示意图,该任务调度方法可以应用于电子设备,该电子设备包括但不限于固定设备和/或移动设备,该电子设备为任务调度功能。例如,该电子设备可以部署于分布式集群系统上,或独立于分布式集群系统但能与分布式集群系统连接。在一些可能的实现方式中,该方法还可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。在一些可能的实现方式中,该方法可应用于与图1所示的分布式集群系统如K8S集群系统连接的电子设备中。如图2所示,该任务调度方法包括:
S201:获取初始Pod请求,该初始Pod请求中包括资源申请信息;
S202:基于该资源申请信息,确定资源配置信息;
S203:基于该资源配置信息,获取目标Pod请求;
S204:发送该目标Pod请求,该目标Pod请求用于指示目标集群系统按照该资源配置信息进行任务调度。
本公开实施例中,资源申请信息用于表示预申请使用资源的相关信息。示例性的,资源申请信息至少包括资源申请类型和资源申请量。这里,资源申请类型可分为:中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、内存。这里,资源申请量是预申请使用资源的多少。
本公开实施例中,目标集群系统包括多个节点池,不同节点池的标识不同。每个节点池包括至少一个节点(也可称为机器),节点可以是裸机、物理机、虚拟机等。
这里,目标集群系统可以是私有云交付的集群,如基于Kubernetes(简称K8S)构建的集群、基于开源分布式资源管理框架(例如,开源分布式资源管理框架mesos)和应用测试工具(例如,应用测试工具marathon)搭建的集群等。
其中,K8S是基于集群管理器开发的面向容器的容器集群管理平台,它基于容器技术等对底层的主机、网络和存储资源进行统一管理,其提供应用部署、维护、扩展机制等功能,利用K8S能方便地管理跨机器运行容器化的应用。
本公开实施例中,资源配置信息是为初始Pod请求分配的资源信息。资源配置信息至少包括目标节点。该目标节点是目标集群系统中用于执行Pod请求中所携带的任务的节点。
本公开实施例中,资源配置信息还可包括许可的资源使用量。
这里,资源配置信息中的资源使用量,可根据目标集群系统中可用资源以及初始Pod请求中携带的是否许可修改资源申请量等信息进行调整。比如,资源配置信息中的资源使用量,可以与初始Pod请求中携带的资源申请量相等。又比如,资源配置信息中的资源使用量,还可大于初始Pod请求中携带的资源申请量。再比如,资源配置信息中的资源使用量,还可小于初始Pod请求中携带的资源申请量。
本公开实施例中,基于该资源配置信息,获取目标Pod请求,可包括:基于资源配置信息修改该初始Pod请求,在该初始Pod请求中添加目标节点的标识,得到目标Pod请求。
本公开实施例中,基于该资源配置信息,获取目标Pod请求,还可包括:基于资源配置信息修改该初始Pod请求,在该初始Pod请求中添加许可的资源使用量,得到目标Pod请求。
本公开实施例所述的技术方案,相对于直接将初始Pod请求发送给目标集群系统而言,先基于初始Pod请求中的资源申请信息,为该初始Pod请求确定资源配置信息;基于资源配置信息获取目标Pod请求;然后再将目标Pod请求发送给目标集群系统;如此,不仅能减少目标集群系统的工作量,还能根据目标集群系统当前可用资源为Pod请求分配资源,实现对目标集群系统的资源的统一分配与管理,进而能提高资源利用率。另外,由于统一对各个初始Pod请求进行资源分配,有助于使资源分配更为合理,提高同一时间内目标集群系统处理任务的数量,从而进一步提高资源利用率。
在一些实施例中,资源申请信息中包括节点池标识,该节点池标识用于标识由至少一个节点组成的节点池。在一些实施例中,基于资源申请信息,确定资源配置信息,可包括:基于节点池标识确定目标节点池;获取目标节点池中可调度节点和该可调度节点的可调度资源信息;基于该可调度节点的可调度资源信息,从该可调度节点中确定目标节点,该资源配置信息包括目标节点。
这里,可调度节点是指存有尚未被使用的资源的节点,即存有处于空闲态资源的节点。
这里,可调度资源信息包括可调度资源类型、以及可调度资源类型对应的可调度资源量。
举例来说,目标集群系统包括N个节点池,分别记为节点池1、节点池2、…、节点池N。若初始Pod请求中携带的节点池标识为表征节点池1的标识,则将节点池1确定为目标节点池。若节点池1包括M个节点,其中,节点1~i具有GPU资源卡、CPU资源卡和内存,节点i+1~M具有CPU资源卡和内存;若初始Pod请求中携带的资源申请信息包括GPU资源申请量=0.1,则将节点1~i中存有可用GPU资源的节点,确定为目标节点。若节点1和节点i当前还存有可用GPU资源,则将节点1和节点i中之一确定为目标节点。
如此,能够为初始Pod请求确定出满足其资源申请信息如指定节点池中的目标节点,有助于提高任务调度的成功率。
在一些实施例中,基于可调度节点的可调度资源信息,从可调度节点中确定目标节点,包括:在资源申请信息包括GPU资源申请量的情况下,从可调度节点中确定出具有GPU资源的第一类节点;从第一类节点中确定出满足GPU资源申请量的第一候选节点;将第一候选节点中GPU资源占用量最高的节点,确定为目标节点。
这里,第一类节点是具有GPU资源的节点。
这里,第一候选节点是第一类节点中满足GPU资源申请量的节点。
举例来说,目标集群系统包括N个节点池,分别记为节点池1、节点池2、…、节点池N。若初始Pod请求1中携带的节点池标识为表征节点池1的标识,则将节点池1确定为目标节点池。若节点池1包括M个节点,其中,节点1~i具有GPU资源卡、CPU资源卡和内存,节点i+1~M具有CPU资源卡和内存;假设初始Pod请求1中携带的资源申请信息包括GPU资源申请量,若节点1、节点i-1和节点i当前还存有可用GPU资源,那么,节点1、节点i-1和节点i可作为第一类节点。假设初始Pod请求1中携带的资源申请信息包括GPU资源申请量=0.1,若节点1的GPU资源占用量为0.9,节点i-1的GPU资源占用量为0.7、节点i的GPU资源占用量为0.95,那么,节点1和节点i-1可作为第一候选节点。由于节点1的GPU资源占用量最高,且能满足Pod请求1中申请的GPU资源申请量=0.1,则将节点1确定为目标节点。若初始Pod请求2中携带的节点池标识为表征节点池1的标识,且GPU资源申请量=0.25,则只有节点i-1的GPU资源能满足该初始Pod请求2的资源申请量,将节点i-1确定为目标节点。
如此,不仅能够为Pod请求确定出满足其资源申请信息的目标节点,还能使该目标节点的资源得到充分利用,进而目标集群系统的资源利用率。
在一些实施例中,基于可调度节点的可调度资源信息,从可调度节点中确定目标节点,包括:在资源申请信息包括CPU资源申请量且不包括GPU资源申请量的情况下,从可调度节点中确定出不具有GPU资源的第二类节点;从第二类节点中确定出满足CPU资源申请量的第二候选节点;将第二候选节点中CPU资源占用量最高的节点,确定为目标节点。
这里,第二类节点是不具有GPU资源的节点。
这里,第二候选节点是第二类节点中满足CPU资源申请量的节点。
举例来说,目标集群系统包括N个节点池,分别记为节点池1、节点池2、…、节点池N。若初始Pod请求3中携带的节点池标识为表征节点池1的标识,则将节点池1确定为目标节点池。若节点池1包括M个节点,其中,节点1~i具有GPU资源卡、CPU资源卡和内存,节点i+1~M具有CPU资源卡和内存;假设初始Pod请求3中携带的资源申请信息仅包括CPU资源申请量,则将节点i+1~M中当前还存有可用CPU资源的节点,确定为第二类节点。假设初始Pod请求3中携带的资源申请信息包括CPU资源申请量=0.5,若节点i+2、节点M-1和节点M当前还存有可用CPU资源的节点,且节点i+2的CPU资源占用量为0.8,节点M-1的CPU资源占用量为0.4、节点M的CPU资源占用量为0.2,那么,能满足该初始Pod请求3中申请的CPU资源申请量=0.5的节点有节点M-1和节点M,将节点M-1和节点M作为第二候选节点。由于节点M-1的CPU资源占用量最高,且能满足CPU资源申请量=0.5,则将节点M-1确定为目标节点。
如此,不仅能够为Pod请求确定出满足其资源申请信息的目标节点,还能使该目标节点的资源得到充分利用,进而目标集群系统的资源利用率。
在一些实施例中,如图3所示,上述任务调度方法还可以包括:
S301:接收节点划分请求;
S302:基于该节点划分请求对目标集群系统的节点进行划分,得到多个节点池,该多个节点池分别对应有节点池标识。
其中,不同节点池对应有不同的节点池标识。
这里,S301和S302在S201之前执行。
这里,节点划分请求用于指示对目标集群系统的节点进行划分,以得到多个节点池。
这里,节点划分请求包括节点分组信息。比如,节点1、节点2和节点3为一组,赋予标识节点池a;节点4和节点5为一组,赋予标识节点池b;节点6、节点7、节点8和节点9为一组,赋予标识节点池c。
在一些实施方式中,接收节点划分请求,包括:通过用户接口接收用户输入的节点划分请求。在一些实施方式中,接收节点划分请求,包括:接收其他设备转发的节点划分请求。本公开不对如何获取节点划分请求进行限定。
如此,通过将目标集群系统的节点进行划分成多个节点池,有助于实现对目标集群系统的资源的有效管理与利用。
在一些实施例中,上述任务调度方法还可以包括:在多个节点池中任一节点池的节点数发生变化的情况下,输出提示信息。
这里,提示信息用于提示目标集群系统的节点的变化信息。比如,节点池1中的节点数由3变成2,节点池1当前包括的节点有节点1和节点2。又比如,节点3从节点池1中移除。本公开不对提示信息的具体类型和格式进行限定,在此不再穷举。
实际应用中,可通过用户界面输出提示信息,还通过语音播报器输出提示信息,也通过向用户终端如手机输出短消息的方式输出提示信息。本公开不对输出方式进行限定,在此不再穷举。
图4示出了节点管理示意图,如图4所示,创建多个节点池,包括节点池A、节点池B和节点池C;节点池A包括节点1、节点2和节点3;节点池B包括节点4;节点池C包括节点5和节点6。用户可以将现有节点在各个节点池内进行迁移。比如,将节点3从节点池A迁移至节点池B。用户也可以对多个节点进行上线和下线的操作。比如,将节点池中的节点6下线。这里,上线可以理解为启用节点。下线可以理解为关闭节点。
如此,通过输出提示信息,能够提醒用户目标集群系统的节点变化动态,避免出现因用户对节点变化不知情而导致用户编辑的任务不能达到预期效果的问题。
在一些实施例中,得到多个节点池之后,上述任务调度方法还可以包括:统计多个节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况。
这里,GPU资源剩余情况,采用GPU资源卡的GPU资源占用量与GPU资源卡的GPU资源总量的比值表示。
另外,可以将GPU资源剩余情况转换为用GPU卡表示的数值,其中,用GPU资源卡表示的数值大于0小于1。
这里,用GPU资源卡表示的数值,是对GPU资源卡中GPU资源进行量化后的值。
在一些实施方式中,采用GPU虚拟化技术,对每个节点池中节点所包括的GPU资源卡中资源进行划分。
本公开不对GPU虚拟化技术进行限定。凡是能够对GPU资源进行划分的技术,均可作为GPU虚拟化技术。
在一些实施例中,基于资源申请信息,确定资源配置信息,包括:在资源申请信息包括GPU资源申请量的情况下,根据GPU资源申请量以及节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况,确定目标节点,该资源配置信息包括目标节点。
举例来说,目标集群系统包括N个节点池,分别记为节点池1、节点池2、…、节点池N。若初始Pod请求4中携带的节点池标识为表征节点池1的标识,则将节点池1确定为目标节点池。若节点池1包括M个节点,其中,节点1~i具有GPU资源卡、CPU资源卡和内存,节点i+1~M具有CPU资源卡和内存;假设初始Pod请求4中携带的资源申请信息包括GPU资源申请量,且要求GPU资源申请量=0.3,若检测到节点1、节点i-1和节点i当前还存有可用GPU资源,且节点1、节点i-1和节点i各包括一张GPU资源卡,节点1的GPU剩余资源量为0.1,节点i-1的GPU剩余资源量为0.3、节点i的GPU剩余资源量为0.95,那么,节点i-1和节点i均可作为候选节点。为了使各节点资源得到充分利用,将节点i-1作为目标节点。
如此,通过将GPU资源卡中的GPU资源量化,同一个GPU资源卡在同一时间能为多个Pod请求提供服务,提高了GPU资源卡的利用率,进而也提高了节点的资源利用率。
图5给出了一个任务调度的架构示意图,如图5所示,该架构分为:节点管理服务、任务管理服务和资源监控服务三大部分。
其中,节点管理服务,包括:节点分类和GPU虚拟化。
其中,节点分类,具体包括:如果某一类节点只用来跑特定类型的作业,可以将这类节点划归到一个节点池中。系统初始化时,所有节点都属于默认的节点池,用户可以根据需求将某一些节点从默认的节点池迁移到其他节点池中。用户在提交任务时,可以指定使用哪个节点池中的资源。
其中,GPU虚拟化,包括:利用百度GPU虚拟化技术,实现多容器按照预先的资源分配复用一张GPU资源卡。用户提交任务时申请的GPU卡数量可以小于1,该架构中的资源管理部分,负责将用户的GPU申请转换成底层的资源描述,如GPU资源申请量=0.1。通过支持GPU资源复用,提高资源利用率。
其中,任务管理服务,包括:减少资源碎片。比如,利用Binpack机制,尽最大可能向对应GPU使用率高的节点上调度。
其中,任务管理,还包括:改变节点亲和性。根据Pod申请的资源信息以及节点池信息,对可调度的节点进行最优化的选择,然后修改Pod的节点亲和性。
图6示出了修改Pod亲和性的流程图,图6中,Pod创建服务接收到用户发送的任务后,调用K8S系统接口创建Pod请求。任务管理服务通过变更准入控制器(MutatingAdmission Controller)接收该Pod请求。任务管理服务对该Pod请求进行准入审查(Admission review);通过亲和性适配,修改Pod请求的属性(Pod Spec),属性包括修改节点、限制只能在某几个节点上运行该Pod请求;在修改完毕后,向变更准入控制器返回准入响应(Admission response),以由变更准入控制器将修改后的Pod请求(包括与Pod请求适配的节点的绑定信息、以及各节点的资源配置信息等信息)存储到K8S系统的配置文件,如分布式统一键值存储(etcd)文件中。
其中,资源监控服务,包括节点监控和已使用资源监控。
这里,节点监控,包括:动态感知系统占用(除用户任务之外)的资源。若节点异常感知,则上报异常节点情况。
这里,已使用资源监控,包括:将Pod请求中已经使用的资源转换为实际使用的资源卡的量化数值。
如此,上述系统架构利用节点亲和性和GPU虚拟化技术,进行资源和任务管理;能根据任务属性,为任务分配与该属性适配的节点,能提高目标集群系统中的任务隔离能力和资源使用率。
本公开实施例公开了一种任务调度装置,如图7所示,该任务调度装置可以包括:获取模块701,用于获取初始Pod请求,初始Pod请求中包括资源申请信息;第一确定模块702,用于基于资源申请信息,确定资源配置信息;第二确定模块703,用于基于资源配置信息,获取目标Pod请求;发送模块704,用于发送该目标Pod请求,该目标Pod请求用于指示目标集群系统按照资源配置信息进行任务调度。
在一些实施例中,该资源申请信息中包括节点池标识,节点池标识用于标识由至少一个节点组成的节点池。
在一些实施例中,该第一确定模块702,包括:第一确定子模块,用于基于节点池标识确定目标节点池;获取子模块,用于获取目标节点池中可调度节点和该可调度节点的可调度资源信息;第二确定子模块,用于基于可调度节点的可调度资源信息,从可调度节点中确定目标节点,资源配置信息包括目标节点。
在一些实施例中,该第二确定子模块,具体用于在资源申请信息包括GPU资源申请量的情况下,从可调度节点中确定出具有GPU资源的第一类节点;从第一类节点中确定出满足GPU资源申请量的第一候选节点;将第一候选节点中GPU资源使用占用量最高的节点,确定为目标节点。
在一些实施例中,该第二确定子模块,具体用于在资源申请信息包括CPU资源申请量且不包括GPU资源申请量的情况下,从可调度节点中确定出不具有GPU资源的第二类节点;从第二类节点中确定出满足CPU资源申请量的第二候选节点;将第二候选节点中CPU资源使用占用量最高的节点,确定为目标节点。
在一些实施例中,该任务调度装置还可包括:接收模块705(图中未示出),用于接收节点划分请求;节点划分模块706(图中未示出),用于基于节点划分请求对目标集群系统的节点进行划分,得到多个节点池,多个节点池分别对应有节点池标识。
在一些实施例中,该节点划分模块706,还用于在多个节点池中任一节点池的节点数发生变化的情况下,输出提示信息。
在一些实施例中,该任务调度装置还可包括:资源统计模块707(图中未示出),用于统计多个节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况。该第一确定模块702,还用于在资源申请信息包括GPU资源申请量的情况下,根据GPU资源申请量以及节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况,确定目标节点,资源配置信息包括目标节点。
本领域技术人员应当理解,本公开实施例的任务调度装置中各处理模块的功能,可参照前述的任务调度方法的相关描述而理解,本公开实施例的任务调度装置中各处理模块,可通过实现本公开实施例所述的功能的模拟电路而实现,也可以通过执行本公开实施例所述的功能的软件在电子设备上的运行而实现。
本公开实施例的任务调度装置,能提高目标集群系统的资源利用率,还能提高目标集群系统的任务隔离能力。
本公开实施例公开了一种任务调度系统,如图8所示,该任务调度系统可以包括:资源管理模块801,用于获取初始Pod请求,该初始Pod请求包括资源申请信息;基于资源申请信息,为该初始Pod请求确定资源配置信息;任务调度模块802,用于基于该资源配置信息,为该初始Pod请求获取目标Pod请求;发送该目标Pod请求,该目标Pod请求用于指示目标集群系统按照该资源配置信息进行任务调度。
在一些实施例中,资源申请信息中包括节点池标识,该资源管理模块801用于:基于节点池标识确定目标节点池;获取目标节点池中可调度节点和该可调度节点的可调度资源信息;基于可调度节点的可调度资源信息,从可调度节点中确定目标节点,资源配置信息包括目标节点。
在一些实施例中,资源申请信息中包括节点池标识,该资源管理模块801用于:在资源申请信息包括GPU资源申请量的情况下,从可调度节点中确定出具有GPU资源的第一类节点;从第一类节点中确定出满足GPU资源申请量的第一候选节点;将第一候选节点中GPU资源占用量最高的节点,确定为目标节点。
在一些实施例中,该资源管理模块801用于:在资源申请信息包括CPU资源申请量且不包括GPU资源申请量的情况下,从可调度节点中确定出不具有GPU资源的第二类节点;从第二类节点中确定出满足CPU资源申请量的第二候选节点;将第二候选节点中CPU资源占用量最高的节点,确定为目标节点。
在一些实施例中,上述任务调度系统还可以包括:节点管理模块803(图中未示出),用于接收节点划分请求;基于节点划分请求对目标集群系统的节点进行划分,得到多个节点池,多个节点池分别对应有节点池标识。
在一些实施例中,该节点管理模块803,还用于:在多个节点池中任一节点池的节点数发生变化的情况下,输出提示信息。
在一些实施例中,资源管理模块801还用于:在节点管理模块803得到多个节点池之后,统计多个节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况;在资源申请信息包括GPU资源申请量的情况下,根据GPU资源申请量以及节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况,确定目标节点,资源配置信息包括目标节点。
本实施例的任务调度系统,能提高目标集群系统的资源利用率,还能提高目标集群系统的任务隔离能力。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(Read-OnlyMemory,ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RandomAccess Memory,RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(Input/Output,I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)、各种专用的人工智能(ArtificialIntelligence,AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(Digital Signal Processor,DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如任务调度方法。例如,在一些实施例中,任务调度方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的任务调度方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行任务调度方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用标准产品(Application-Specific Standard Products,ASSP)、芯片上系统的系统(System on Chip,SOC)、负载可编程逻辑设备(Complex Programmable Logic Device,CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器、只读存储器、可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,EPROM)、快闪存储器、光纤、便捷式紧凑盘只读存储器(Compact Disk Read Only Memory,CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管(Cathode Ray Tube,CRT)或者液晶显示器(Liquid Crystal Display,LCD)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端和服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种任务调度方法,包括:
获取初始容器集Pod请求,初始Pod请求中包括资源申请信息;
基于所述资源申请信息,确定资源配置信息;
基于所述资源配置信息,获取目标Pod请求;
发送所述目标Pod请求,所述目标Pod请求用于指示目标集群系统按照所述资源配置信息进行任务调度。
2.根据权利要求1所述的方法,其中,所述资源申请信息中包括节点池标识,所述节点池标识用于标识由至少一个节点组成的节点池,所述基于所述资源申请信息,确定资源配置信息,包括:
基于所述节点池标识确定目标节点池;
获取所述目标节点池中可调度节点和所述可调度节点的可调度资源信息;
基于所述可调度节点的可调度资源信息,从所述可调度节点中确定目标节点,所述资源配置信息包括所述目标节点。
3.根据权利要求2所述的方法,其中,所述基于所述可调度节点的可调度资源信息,从所述可调度节点中确定目标节点,包括:
在所述资源申请信息包括图像处理器GPU资源申请量的情况下,从所述可调度节点中确定出具有GPU资源的第一类节点;
从所述第一类节点中确定出满足所述GPU资源申请量的第一候选节点;
将所述第一候选节点中GPU资源占用量最高的节点,确定为所述目标节点。
4.根据权利要求2所述的方法,其中,所述基于所述可调度节点的可调度资源信息,从所述可调度节点中确定目标节点,包括:
在所述资源申请信息包括中央处理器CPU资源申请量且不包括GPU资源申请量的情况下,从所述可调度节点中确定出不具有GPU资源的第二类节点;
从所述第二类节点中确定出满足所述CPU资源申请量的第二候选节点;
将所述第二候选节点中CPU资源占用量最高的节点,确定为所述目标节点。
5.根据权利要求1或2所述的方法,还包括:
接收节点划分请求;
基于所述节点划分请求对所述目标集群系统的节点进行划分,得到多个节点池,所述多个节点池分别对应有节点池标识。
6.根据权利要求5所述的方法,还包括:
在所述多个节点池中任一节点池的节点数发生变化的情况下,输出提示信息。
7.根据权利要求5所述的方法,其中,得到多个节点池之后,还包括:
统计所述多个节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况;
其中,所述基于所述资源申请信息,确定资源配置信息,包括:
在所述资源申请信息包括GPU资源申请量的情况下,根据所述GPU资源申请量以及节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况,确定目标节点,所述资源配置信息包括所述目标节点。
8.一种任务调度装置,包括:
获取模块,用于获取初始容器集Pod请求,初始Pod请求中包括资源申请信息;
第一确定模块,用于基于所述资源申请信息,确定资源配置信息;
第二确定模块,用于基于所述资源配置信息,获取目标Pod请求;
发送模块,用于发送所述目标Pod请求,所述目标Pod请求用于指示目标集群系统按照所述资源配置信息进行任务调度。
9.根据权利要求8所述的装置,其中,所述资源申请信息中包括节点池标识,所述节点池标识用于标识由至少一个节点组成的节点池,所述第一确定模块,包括:
第一确定子模块,用于基于所述节点池标识确定目标节点池;
获取子模块,用于获取所述目标节点池中可调度节点和所述可调度节点的可调度资源信息;
第二确定子模块,用于基于所述可调度节点的可调度资源信息,从所述可调度节点中确定目标节点,所述资源配置信息包括所述目标节点。
10.根据权利要求9所述的装置,其中,所述第二确定子模块,用于:
在所述资源申请信息包括图像处理器GPU资源申请量的情况下,从所述可调度节点中确定出具有GPU资源的第一类节点;
从所述第一类节点中确定出满足所述GPU资源申请量的第一候选节点;
将所述第一候选节点中GPU资源使用占用量最高的节点,确定为所述目标节点。
11.根据权利要求9所述的装置,其中,所述第二确定子模块,用于:
在所述资源申请信息包括中央处理器CPU资源申请量且不包括GPU资源申请量的情况下,从所述可调度节点中确定出不具有GPU资源的第二类节点;
从所述第二类节点中确定出满足所述CPU资源申请量的第二候选节点;
将所述第二候选节点中CPU资源使用占用量最高的节点,确定为所述目标节点。
12.根据权利要求8或9所述的装置,还包括:
接收模块,用于接收节点划分请求;
节点划分模块,用于基于所述节点划分请求对所述目标集群系统的节点进行划分,得到多个节点池,所述多个节点池分别对应有节点池标识。
13.根据权利要求12所述的装置,其中,所述节点划分模块,还用于:
在所述多个节点池中任一节点池的节点数发生变化的情况下,输出提示信息。
14.根据权利要求12所述的装置,还包括:
资源统计模块,用于统计所述多个节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况;
其中,所述第一确定模块,还用于:
在所述资源申请信息包括GPU资源申请量的情况下,根据所述GPU资源申请量以及节点池中各节点所包括的各GPU资源卡的GPU资源剩余情况,确定目标节点,所述资源配置信息包括所述目标节点。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210540844.XA CN114911598A (zh) | 2022-05-17 | 2022-05-17 | 任务调度方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210540844.XA CN114911598A (zh) | 2022-05-17 | 2022-05-17 | 任务调度方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114911598A true CN114911598A (zh) | 2022-08-16 |
Family
ID=82767833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210540844.XA Pending CN114911598A (zh) | 2022-05-17 | 2022-05-17 | 任务调度方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114911598A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658311A (zh) * | 2022-10-31 | 2023-01-31 | 北京百度网讯科技有限公司 | 一种资源的调度方法、装置、设备和介质 |
CN115904740A (zh) * | 2023-02-23 | 2023-04-04 | 青岛创新奇智科技集团股份有限公司 | 一种gpu资源调用方法及系统 |
CN115914117A (zh) * | 2022-11-17 | 2023-04-04 | 浪潮云信息技术股份公司 | 一种提高Kubernetes中使用本地存储Pod调度稳定性的方法及系统 |
-
2022
- 2022-05-17 CN CN202210540844.XA patent/CN114911598A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658311A (zh) * | 2022-10-31 | 2023-01-31 | 北京百度网讯科技有限公司 | 一种资源的调度方法、装置、设备和介质 |
CN115914117A (zh) * | 2022-11-17 | 2023-04-04 | 浪潮云信息技术股份公司 | 一种提高Kubernetes中使用本地存储Pod调度稳定性的方法及系统 |
CN115904740A (zh) * | 2023-02-23 | 2023-04-04 | 青岛创新奇智科技集团股份有限公司 | 一种gpu资源调用方法及系统 |
CN115904740B (zh) * | 2023-02-23 | 2023-05-30 | 青岛创新奇智科技集团股份有限公司 | 一种gpu资源调用方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN112508768B (zh) | 单算子多模型流水线推理方法、系统、电子设备及介质 | |
CN114155026A (zh) | 一种资源分配方法、装置、服务器及存储介质 | |
CN113608751B (zh) | 推理服务平台的运行方法、装置、设备及存储介质 | |
CN113032093B (zh) | 分布式计算方法、装置及平台 | |
CN113961289A (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN113342665A (zh) | 任务分配方法和装置、电子设备、计算机可读介质 | |
CN113220452A (zh) | 资源分配方法、模型训练方法、装置和电子设备 | |
CN112527509A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN113986497B (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
CN115328612A (zh) | 资源分配方法、装置、设备以及存储介质 | |
CN116032614A (zh) | 容器网络微隔离方法、装置、设备和介质 | |
CN113032092B (zh) | 分布式计算方法、装置及平台 | |
CN115952054A (zh) | 一种仿真任务资源管理方法、装置、设备及介质 | |
CN115617511A (zh) | 资源数据处理的方法、装置、电子设备和存储介质 | |
CN112965836B (zh) | 服务控制方法、装置、电子设备及可读存储介质 | |
CN114416357A (zh) | 容器组的创建方法、装置、电子设备和介质 | |
CN115567602A (zh) | Cdn节点回源方法、设备及计算机可读存储介质 | |
CN114070889A (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN113905040A (zh) | 文件传输方法、装置、系统、设备以及存储介质 | |
CN114461407B (zh) | 数据处理方法、装置、分发服务器、系统及存储介质 | |
CN112506582B (zh) | 小程序数据包处理方法、装置、设备及介质 | |
CN115981872A (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 |