CN113301087A - 资源调度方法、装置、计算设备和介质 - Google Patents

资源调度方法、装置、计算设备和介质 Download PDF

Info

Publication number
CN113301087A
CN113301087A CN202010706309.8A CN202010706309A CN113301087A CN 113301087 A CN113301087 A CN 113301087A CN 202010706309 A CN202010706309 A CN 202010706309A CN 113301087 A CN113301087 A CN 113301087A
Authority
CN
China
Prior art keywords
target
processor core
application container
container group
information
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
Application number
CN202010706309.8A
Other languages
English (en)
Other versions
CN113301087B (zh
Inventor
杨峻峰
张凯
车漾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010706309.8A priority Critical patent/CN113301087B/zh
Publication of CN113301087A publication Critical patent/CN113301087A/zh
Application granted granted Critical
Publication of CN113301087B publication Critical patent/CN113301087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了一种资源调度方法、装置、计算设备和介质。该方法,包括:获取针对目标应用容器组的资源调度请求,资源调度请求包括目标应用容器组请求的处理器核的目标数量;根据获取的工作节点上的处理器的设备信息,确定目标工作节点,基于预设分配条件以及目标数量,确定目标应用容器组的处理器核分配信息,处理器核分配信息包括在目标工作节点中为目标应用容器组分配的目标处理器核的信息;将处理器核分配信息存入目标应用容器组的配置信息中,以使目标工作节点从配置信息中获取处理器核分配信息,以及基于处理器核分配信息将目标处理器核调度至目标应用容器组。根据本申请实施例,能够解决处理器核利用率低导致的资源浪费的问题。

Description

资源调度方法、装置、计算设备和介质
技术领域
本申请涉及数据处理领域,尤其涉及一种资源调度方法、装置、计算设备和介质。
背景技术
随着云计算中容器技术迅猛发展以及容器技术的日益普及,越来越多的应用参与到容器技术中。例如,若某个应用容器组(pod)请求多个嵌入式神经网络处理器,则容器集群管理系统能够选择计算机集群中空闲的嵌入式神经网络处理器供应用容器组使用。如此,嵌入式神经网络处理器上的所有处理器核全部分配给该应用容器组使用。
但是,有些应用容器组并没有使用被分配的嵌入式神经网络处理器上的所有处理器核,而未被使用的处理器核却不能被分配至其他应用容器组,以供其他应用容器组使用。因而,目前的资源调度方法不能充分利用处理器中的处理器核,导致资源利用率较低。
发明内容
本申请实施例提供一种资源调度方法、装置、计算设备和介质,能够解决相关技术领域中资源浪费的问题。
根据本申请的第一方面,提供一种资源调度方法,包括:
获取针对目标应用容器组的资源调度请求,资源调度请求包括目标应用容器组请求的处理器核的目标数量;
根据获取的工作节点上的处理器的设备信息,确定目标工作节点,目标工作节点中空闲处理器核的数量不小于目标数量;
基于预设分配条件以及目标数量,确定目标应用容器组的处理器核分配信息,其中,处理器核分配信息包括在目标工作节点中为目标应用容器组分配的目标处理器核的信息;
将处理器核分配信息存入目标应用容器组的配置信息中,以使目标工作节点从配置信息中获取处理器核分配信息,并使目标工作节点基于处理器核分配信息将目标处理器核调度至目标应用容器组。
根据本申请的第二方面,提供一种资源调度方法,应用于目标工作节点,包括:
从目标应用容器组的配置信息中获取目标应用容器组的处理器核分配信息,处理器核分配信息是预定节点存入目标应用容器组的配置信息中的,处理器核分配信息是预定节点基于预设分配条件以及目标应用容器组请求的处理器核的目标数量确定的,处理器核分配信息包括目标工作节点中为目标应用容器组分配的目标处理器核的信息,目标工作节点是预定节点根据获取的工作节点上的处理器的设备信息确定的,目标工作节点中空闲处理器核的数量不小于目标数量;
基于处理器核分配信息将目标处理器核调度至目标应用容器组。
根据本申请的第三方面,提供一种资源调度方法,包括:
获取针对目标应用容器组的资源调度请求,所述资源调度请求包括所述目标应用容器组请求的第一处理器核的目标数量;所述第一处理器核包括人工智能芯片的处理器核;
根据获取的工作节点上的人工智能芯片的设备信息,确定目标工作节点,所述目标工作节点中空闲的第一处理器核的数量不小于所述目标数量;
基于预设分配条件以及所述目标数量,确定所述目标应用容器组的处理器核分配信息,其中,所述处理器核分配信息包括在所述目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息;
将所述处理器核分配信息存入所述目标应用容器组的配置信息中,以使所述目标工作节点从所述配置信息中获取所述处理器核分配信息,并使所述目标工作节点基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
根据本申请的第四方面,提供一种资源调度方法,应用于目标工作节点,包括:
从目标应用容器组的配置信息中获取所述目标应用容器组的处理器核分配信息,所述处理器核分配信息是预定节点存入所述目标应用容器组的配置信息中的,所述处理器核分配信息是所述预定节点基于预设分配条件以及所述目标应用容器组请求的第一处理器核的目标数量确定的,所述第一处理器核包括人工智能芯片的处理器核,所述处理器核分配信息包括目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息,所述目标工作节点是所述预定节点根据获取的工作节点上的人工智能芯片的设备信息确定的,所述目标工作节点中空闲第一处理器核的数量不小于所述目标数量;
基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
根据本申请的第五方面,提供一种资源调度装置包括:
第一获取模块,用于获取针对目标应用容器组的资源调度请求,资源调度请求包括目标应用容器组请求的处理器核的目标数量;
目标工作节点确定模块,用于根据获取的工作节点上的处理器的设备信息,确定目标工作节点,目标工作节点中空闲处理器核的数量不小于目标数量;
分配信息确定模块,用于基于预设分配条件以及目标数量,确定目标应用容器组的处理器核分配信息,其中,处理器核分配信息包括在目标工作节点中为目标应用容器组分配的目标处理器核的信息;
第一存储模块,用于将处理器核分配信息存入目标应用容器组的配置信息中,以使目标工作节点从配置信息中获取处理器核分配信息,并使目标工作节点基于处理器核分配信息将目标处理器核调度至目标应用容器组。
根据本申请的第六方面,提供一种资源调度装置,应用目标工作节点,包括:
第二获取模块,用于从目标应用容器组的配置信息中获取目标应用容器组的处理器核分配信息,处理器核分配信息是预定节点存入目标应用容器组的配置信息中的,处理器核分配信息是预定节点基于预设分配条件以及目标应用容器组请求的处理器核的目标数量确定的,处理器核分配信息包括目标工作节点中为目标应用容器组分配的目标处理器核的信息,目标工作节点是预定节点根据获取的工作节点上的处理器的设备信息确定的,目标工作节点中空闲处理器核的数量不小于目标数量;
调度模块,用于基于处理器核分配信息将目标处理器核调度至目标应用容器组。
根据本申请的第七方面,提供一种资源调度装置包括:
第一获取模块,用于获取针对目标应用容器组的资源调度请求,所述资源调度请求包括所述目标应用容器组请求的第一处理器核的目标数量;所述第一处理器核包括人工智能芯片的处理器核;
目标工作节点确定模块,用于根据获取的工作节点上的人工智能芯片的设备信息,确定目标工作节点,所述目标工作节点中空闲的第一处理器核的数量不小于所述目标数量;
分配信息确定模块,用于基于预设分配条件以及所述目标数量,确定所述目标应用容器组的处理器核分配信息,其中,所述处理器核分配信息包括在所述目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息;
第一存储模块,用于将所述处理器核分配信息存入所述目标应用容器组的配置信息中,以使所述目标工作节点从所述配置信息中获取所述处理器核分配信息,并使所述目标工作节点基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
根据本申请的第八方面,提供一种资源调度装置,应用目标工作节点,包括:
第二获取模块,用于从目标应用容器组的配置信息中获取所述目标应用容器组的处理器核分配信息,所述处理器核分配信息是预定节点存入所述目标应用容器组的配置信息中的,所述处理器核分配信息是所述预定节点基于预设分配条件以及所述目标应用容器组请求的第一处理器核的目标数量确定的,所述第一处理器核包括人工智能芯片的处理器核,所述处理器核分配信息包括目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息,所述目标工作节点是所述预定节点根据获取的工作节点上的人工智能芯片的设备信息确定的,所述目标工作节点中空闲第一处理器核的数量不小于所述目标数量;
调度模块,用于基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
根据本申请实施例的第九方面,提供了一种计算设备,包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现如上述第一方面、第二方面、第三方面或第四方面提供的资源调度方法。
根据本申请实施例的第十方面,提供一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如上述第一方面、第二方面、第三方面或第四方面提供的资源调度方法。
根据本申请实施例,针对目标应用容器组的资源调度请求以处理器核为单位,在为该目标应用容器组调度资源时,确定的是目标应用容器组的处理器核分配信息。也就是说,目标应用容器组请求资源的单位是处理器核,为该目标应用容器组分配的资源的单位也是处理器核,即应用容器组请求资源的最小单位与使用资源的最小单位一致,因此可以避免资源的浪费。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的资源调度方法的第一实施例的流程示意图;
图2为本申请提供的资源调度方法的第二实施例的流程示意图;
图3为本申请提供的资源调度方法的第三实施例的流程示意图;
图4为本申请提供的资源调度方法的第四实施例的流程示意图;
图5为本申请提供的资源调度方法的第五实施例的流程示意图;
图6为本申请提供的资源调度方法的第六实施例的流程示意图;
图7为本申请提供的资源调度装置的第一实施例的结构示意图;
图8为本申请提供的资源调度装置的第二实施例的结构示意图;
图9为本申请提供的资源调度装置的第三实施例的结构示意图;
图10为本申请提供的资源调度装置的第四实施例的结构示意图;
图11为本申请提供的计算设备的一实施例的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本申请,并不被配置为限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
容器(Container)作为一种轻量级的虚拟化技术,近年来发展迅速。容器技术为不同的应用程序创造了独立的运行环境,实现了资源隔离、配置与安全保障,能够满足应用按需分配的资源需求以及保证应用的隔离性和可用性。
为了满足大型应用的需求,实践中往往需要将很多容器部署在计算机集群中进行统一管理并对外提供服务,因此需要容器集群管理系统。例如,容器集群管理系统目前有Kubernetes。Kubernetes是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。
资源调度是容器集群管理系统需要解决的一个重要问题。资源调度是指为一个待部署的应用容器组通过一定的规则在计算机集群的众多节点中选择一个适合部署该容器进群的节点以及为待部署应用容器组分配资源。
其中,应用容器组包括一个或多个容器。应用容器组中封装有某个应用。应用容器组中的容器会被作为一个整体调度到一个节点上运行。
目前,容器集群管理系统在为应用容器组调度资源时,一般是以处理器级别进行调度。也就是说,若某个应用容器组请求N个处理器,容器集群管理系统能够选择空闲的处理器供应用容器组使用,并且N个处理器上的所有处理器核(core)也将全部分配给该应用容器组。
作为一个示例,容器集群管理系统为Kubernetes。图1示出本申请提供的资源调度方法的第一实施例的示意图。如图1所示,Kubernetes包括控制节点10和多个工作节点20。通过控制节点10可以对每个工作节点20发送命令。简单来说,控制节点10就是管理者,工作节点20就是被管理者。
工作节点20或控制节点10可以是一台机器或者一台虚拟机。在工作节点20上面可以运行多个应用容器组。Pod是Kubernetes管理的最小单位,同时每个Pod可以包含多个容器。
其中,控制节点10上运行的后台服务一般包括应用程序接口服务器(ApplicationProgramming Interface server,API server)和调度器(Scheduler)。
API server是Kubernetes的前端接口,各种客户端工具以及Kubernetes其他组件可以通过API server管理集群的各种资源。Scheduler负责决定将pod放在哪个工作节点上面去运行以及决定为pod分配的资源。
例如,应用容器组中封装有一个模型预测应用。参见图1,客户端向控制节点10发送应用容器组的资源调度请求,该应用容器组请求1个嵌入式神经网络处理器(NetworkProcessing Unit,NPU)和2个core。控制节点10中的API server接收客户端发送的资源调度请求。Scheduler基于API server接收的资源调度请求将该应用容器组调度至第一个工作节点20上运行,并分配第一个工作节点20上的一个NPU供应用容器组使用。假设为应用容器组分配的1个NPU上有4core(4核),但是应用容器组只是使用其中2core,另外2core没有使用,此时其他应用容器组也不能使用这空闲的2core,造成资源浪费。
基于此,本申请提供一种资源调度方法、装置、设备及介质,在为应用容器组分配资源时以处理器核为单位,即为应用容器组分配的资源的单位也是处理器核,即应用容器组请求资源的最小单位与使用资源的最小单位一致,因此可以避免资源的浪费。
下面结合Kubernetes的场景,介绍本申请提供的资源调度方法。
在本申请的实施例中,可以从计算机集群中预先选取一个节点,即预定节点,并在该节点上部署调度器扩展应用(Scheduler extender),以使预定节点执行本申请提供的资源调度方法。例如,可以预先从多个工作节点中预先选取一个工作节点作为预定节点。
在本申请的实施例中,可以预先在每个工作节点中均部署一个处理器设备插件(Device Plugin)。处理器设备插件用于获取其所在工作节点上处理器的设备信息。
在一些实施例中,工作节点上处理器的设备信息包括工作节点上每个处理器的设备标识、每个处理器上处理器核的总数量、每个处理器上空闲处理器核(未被利用的处理器核)的总数量以及处理器核的总数量信息等信息。图2中仅示意性示出了一个工作节点的信息处理过程。
继续参见图2,对于每个工作节点,当该工作节点上的处理器设备插件启动时,则该处理器设备插件则会获取该工作节点上处理器的设备信息。工作节点上的处理器设备插件可以将获取的该工作节点上的处理器的设备信息上报至该工作节点中的服务进程Kubelet。同时,工作节点上的处理器设备插件可以将获取的该工作节点上的处理器的设备信息存入该工作节点上的configMap资源对象。
其中,configMap资源对象用于保存配置信息,是一个信息临时交换场所。其中,服务进程Kubelet接收并执行控制节点10发来的指令,管理pod及pod中的容器。服务进程Kubelet会在API Server上注册所在工作节点的信息,定期向控制节点10汇报该工作节点的资源使用情况,并监控工作节点和容器的资源。
例如,预定节点为一个工作节点。从图2可以看出,预定节点上运行的调度器扩展应用通过configMap资源对象可以读取到自身上处理器的设备信息,并保存至自身的缓存中。预定节点上运行的调度器扩展应用还可以通过其他每个工作节点上的configMap资源对象读取其他工作节点上处理器的设备信息,并保存至自身的缓存中。
如图2所示,控制节点10中的API server接收客户端发送的针对目标应用容器组的资源调度请求。其中,该资源调度请求包括目标应用容器组请求的处理器核的目标数量。预定节点可以从控制节点10中获取资源调度请求。
预定节点根据获取的资源调度请求,以及获取的工作节点上的处理器的设备信息,确定目标工作节点。其中,目标工作节点中空闲处理器核的数量不小于目标数量。目标工作节点即是为目标应用容器组分配的工作节点。
接着,预定节点基于预设分配条件以及目标数量,确定目标应用容器组的处理器核分配信息。其中,处理器核分配信息包括在目标工作节点中为目标应用容器组分配的目标处理器核的信息。
预定节点将处理器核分配信息存入目标应用容器组的配置信息(pod spec)中。参见图2,预定节点中的调度器扩展应用将处理器核分配信息存入目标应用容器组的配置信息(pod spec)中。同时,将目标应用容器组绑定至目标工作节点。
目标工作节点从配置信息中获取处理器核分配信息,并基于处理器核分配信息将目标处理器核调度至目标应用容器组。
参见图2,目标工作节点中的处理器设备插件从目标应用容器组的配置信息中获取了目标应用容器组的处理器核分配信息,并基于处理器核分配信息将目标处理器核调度至目标应用容器组。
在本申请的实施例中,针对目标应用容器组的资源调度请求以处理器核为单位,在为该目标应用容器组调度资源时,确定的是目标应用容器组的处理器核分配信息。也就是说,目标应用容器组请求资源的单位是处理器核,为该目标应用容器组分配的资源的单位也是处理器核,即应用容器组请求资源的最小单位与使用资源的最小单位一致,因此可以避免资源的浪费。
图3是根据本申请提供的资源调度方法的一个实施例的流程示意图,该方法的执行主体是预先配置了调度器扩展应用的预定节点。如图3所示,本申请提供的资源调度方法300包括以下步骤:
步骤310,获取针对目标应用容器组的资源调度请求,资源调度请求包括目标应用容器组请求的处理器核的目标数量;
步骤320,根据获取的工作节点上的处理器的设备信息,确定目标工作节点,目标工作节点中空闲处理器核的数量不小于目标数量;
步骤330,基于预设分配条件以及目标数量,确定目标应用容器组的处理器核分配信息,其中,处理器核分配信息包括在目标工作节点中为目标应用容器组分配的目标处理器核的信息;
步骤340,将处理器核分配信息存入目标应用容器组的配置信息中,以使目标工作节点从配置信息中获取处理器核分配信息,并使目标工作节点基于处理器核分配信息将目标处理器核调度至目标应用容器组。
下面分别介绍步骤310~步骤340中每个步骤的具体实现方式。
在步骤310中,目标应用容器组包括一个或多个容器。目标应用容器组中封装有某个应用。例如,目标应用容器组中可以封装有人工智能应用,例如模型预测应用。
在申请的实施例中,为了提高工作节点中处理器的处理器核的利用率,针对目标应用容器组的资源调度请求所请求的资源级别是处理器核级别。因此针对目标应用容器组的资源调度请求中包括目标应用容器组运行所需要的处理器核的目标数量。
在一些实施例中,若目标应用容器组中封装的是人工智能应用,则资源调度请求中请求的可以是NPU的处理器核。其中,NPU中包括至少一个处理器核。
在另一些实施例中,工作节点上的处理器可以是中央处理器(CentralProcessing Unit,CPU)、张量处理器(Tensor Processing Unit,TPU)或现场可编程门阵列(Field Programmable Gate Array,FpGA)芯片等处理器。对于不同的处理器,均具有各自的处理器核。
在本申请的一些实施例中,若工作节点上存在多种类型的处理器,则目标应用容器组的资源调度请求中可以包括目标应用容器组所请求的处理器核的类别和对应的数量。
下面介绍步骤320的具体实现方式。在本申请的实施例中,工作节点上的处理器的设备信息包括工作节点上处理器的存在信息(即工作节点上是否存在处理器)、工作节点上处理器的数量、每个处理器的设备标识、每个处理器上空闲处理器核的数量、每个处理器上处理器核的数量以及工作节点上空闲处理器核的总数量等信息。
在一些实施例中,预定节点可以基于每个工作节点上的处理器的设备信息确定每个工作节点上空闲处理器核的总数量。若要实现目标应用容器组的运行,则需要为目标应用容器组分配的工作节点上的空闲处理器核的总数量要不小于目标数量,即目标应用容器组所请求的处理器核的总数量。
在一些实施例中,可以基于每个工作节点上的空闲处理器核的总数量以及目标数量,筛选出空闲处理器核的总数量不小于目标数量的工作节点。若空闲处理器核的总数量不小于目标数量的工作节点的数量为多个,可以从中任意选取一个工作节点作为目标工作节点。
在一些实施例中,为了提高资源调度的合理性,在确定目标工作节点时,可以综合考虑目标工作节点上的多种维度的信息,以实现负载均衡。因此,在一些实施例中,步骤320包括步骤3201~步骤3204。步骤3201,获取第一工作节点集合,第一工作节点集合中的每个工作节点上均具有处理器;步骤3202,从第一工作节点集合中筛选出第二工作节点集合,第二工作节点集合中每个工作节点上空闲处理器的数量不小于目标数量;步骤3203,基于第一预设评分条件以及第二工作节点集合中的每个工作节点上的处理器的设备信息,得到第二工作节点集合中每个工作节点的第一评分;第一预设评分条件基于工作节点上的处理器的数量以及工作节点上处理器中空闲处理器核的数量确定;步骤3204,根据每个第一评分,确定目标工作节点。
在本申请的实施例中,若想要实现目标应用容器组能够正常运行,则需要工作节点上具有目标应用容器组所需要的处理器。
在一些实施例中,预定节点上可以预先存储具有处理器的工作节点的标识信息。然后,预定节点根据预先存储的具有处理器的工作节点的标识信息可以确定第一工作节点集合。
在另一些实施例中,预定节点还可以从控制节点10的调度器中获取第一工作节点集合。其中,第一工作节点集合是调度器基于预设筛选条件筛选出的。其中,预设筛选条件基于工作节点中的处理器信息、内存信息和处理性能信息中的至少一种信息确定。
例如,预设筛选条件包括工作节点上存在处理器、工作节点的内存使用率大于第一预设内存使用率阈值、且工作节点的处理性能大于第一预设处理性能参数中的至少一种。
作为一个示例,控制节点10中的调度器可以获取容器集群管理系统中每个工作节点上的处理器信息、内存使用率和处理性能信息等信息。然后,调度器可以基于预设筛选条件以及每个工作节点上的处理器信息、内存使用率和处理性能信息进行筛选,将满足存在处理器、内存使用率大于预设内存使用率阈值、且处理性能大于预设处理性能参数的工作节点筛选出来,作为第一工作节点集合中的工作节点。
参见图2,预定节点中的调度器扩展应用可以从调度器获取第一工作节点集合。作为一个示例,调度器可以发送第一工作节点集合中每个工作节点的标识信息至预定节点。例如,调度器发送第一工作节点集合中工作节点的标识列表至预定节点中的调度器扩展应用。
在本申请的实施例中,通过从调度器中获取基于预设筛选条件筛选出的第一工作节点集合,可以过滤掉一部分性能不好的工作节点,可以提高容器集群管理系统的处理性能。
在步骤3202中,若想要实现目标应用容器组能够正常运行,则需要工作节点上空闲处理器核的数量不小于目标数量。
在本申请的实施例中,可以基于每个工作节点上的空闲处理器核的总数量以及目标数量,从第一工作节点集合中筛选出空闲处理器核的总数量不小于目标数量的工作节点,作为第二工作节点集合中的工作节点。
在步骤3203中,第二工作节点集合中可能存在多个工作节点,为了提高负载均衡,需要为目标应用容器组调度较为合适的工作节点。
在本申请的实施例中,第二工作节点集合中每个工作节点上的空闲处理器核的数量虽然都不小于目标数量,但是每个工作节点上处理器的数量以及每个处理器中空闲处理器核的数量不同。因此,对于不同的工作节点,从工作节点中分配目标数量的处理器核的组合方式不同。
作为一个示例,工作节点A具有1个处理器,包括4个处理器核,其中2个处理器核已被占用,即空闲处理器核的数量为2。工作节点B具有2个处理器,每个处理器包括2个处理器核,每个处理器中空闲处理器核的数量为1。若目标应用容器组请求2个处理器核,则对于工作节点A,满足目标应用容器组的资源调度请求的处理器核的组合方式包括工作节点A上1个处理器中的2个处理器核。则对于工作节点B,满足目标应用容器组的资源调度请求的处理器核的组合方式包括工作节点B上2个处理器中各自拥有的1个空闲处理器核。
由于处理器核组合方式的不同,可能会造成资源调度的效率不同,因此可以基于工作节点上的处理器的数量以及工作节点上处理器中空闲处理器核的数量确定第一预设评分条件,即利用工作节点上处理器核的组合方式确定第一预设评分条件,以对第二工作节点集合中每个工作节点进行评分,得到每个工作节点的第一评分。然后预定节点基于第二工作节点集合中每个工作节点的第一评分可以选取最合适目标应用容器组运行的工作节点。
作为一个示例,第一预设评分条件可以包括以下条件中的至少一个:
工作节点为目标应用容器组分配的处理器核是否可以在一个处理器上对应的评分,若为目标应用容器组分配的处理器核可以在一个处理器上,为目标应用容器组分配处理器核后该处理器上剩余的空闲处理器核的数量对应的评分以及工作节点上处理器的不同数量对应的评分。
在一个实施例中,例如,第一预设评分条件包括工作节点为目标应用容器组分配的处理器核是否可以在一个处理器上对应的评分。预定节点可以基于每个工作节点上空闲处理器核的数量可以判定该工作节点为目标应用容器组分配的处理器核是否可以在一个处理器上,从而可以得到对应的分数,并将该评分作为工作节点对应的第一评分。
在本申请的实施例中,若工作节点为目标应用容器组分配的处理器核可以在一个处理器上所对应的评分,大于工作节点为目标应用容器组分配的处理器核不可以在一个处理器上对应的评分。也就是说,为了提高通信带宽,更倾向于为目标应用容器组分配的处理器核都在一个处理器中。
作为一个示例,例如目标应用容器组请求2个处理器核。工作节点C包括2个NPU,每个NPU包括2个core,但每个NPU中只有1个空闲core,则需要两个NPU各自贡献一个core分配给目标应用容器组。工作节点D包括1个NPU,包括2个空闲core。则工作节点D的第一评分高于工作节点C的第一评分。
因为NPU之间通信会降低带宽,所以为了提高资源调度效率,一般倾向于为目标应用容器组分配的处理器核都在一个处理器中。
再例如,第一预设评分条件包括:若为目标应用容器组分配的处理器核可以在一个处理器上,为目标应用容器组分配处理器核后该处理器上剩余的空闲处理器核的数量对应的评分。预定节点基于获取的工作节点中处理器中空闲处理器核的数量,并将该数量减去目标数量,则可以得到为目标应用容器组分配处理器核后该处理器上剩余的空闲处理器核的数量,从而得到该数量对应的评分,并将该评分作为工作节点对应的第一评分。
若为目标应用容器组分配的处理器核在一个处理器上,则为目标应用容器组分配的处理器核后该处理器上剩余的空闲处理器核的数量越少,该数量对应的评分越高。为了提高处理器核的利用率,更倾向于将已经被部分利用的处理器剩余的处理器核优先分配,而不是去使用一个未曾被利用的处理器。
例如,目标应用容器组请求2个core。工作节点E包括1个NPU,该NPU包括4个core,有2个空闲core。工作节点F包括1个NPU,包括5个空闲core,则工作节点E的第一评分高于工作节点F的第一评分。
又例如,第一预设评分条件包括工作节点上处理器的不同数量对应的评分。预定节点可以获取工作节点上处理器的总数量,以得到该数量对应的评分,并将该评分作为工作节点对应的第一评分。
在一些实施例中,工作节点上处理器的总数量越高,该数量对应的评分越低。
例如,目标应用容器组请求2个处理器核。工作节点M包括2个NPU,每个NPU包括2个core,但每个NPU中只有1个空闲core。工作节点N包括1个NPU,包括2个空闲core,则工作节点N的第一评分比工作节点M的第一评分高。
在本申请的实施例中,还可以基于上述列举的三个条件分别得到工作节点的一个评分,然后将得到的评分进行相加,可以最终得到该工作节点的第一评分。
在本申请的实施例中,预定节点还可以利用其他预设评分条件得到工作节点的第一评分,在此不做具体限定。
在本申请的实施例中,在为目标应用容器组确定目标工作节点时,优先倾向于能够为目标应用容器组分配的处理器核在一个处理器上的工作节点,其次倾向于已经被部分利用的处理器所在的工作节点,再次倾向于处理器个数较少的工作的节点。
在一些实施例中,可以将第二工作节点集合中第一评分最高的工作节点作为目标工作节点。
在另一些实施例中,为了进一步提高资源调度的合理性,步骤1304包括:发送第二工作节点集合中的每个工作节点的第一评分至调度器,以使调度器基于第二工作节点集合中的每个工作节点的第一评分和第二评分确定每个工作节点的第三评分,并使调度器根据每个第三评分确定目标信息;工作节点的第二评分是调度器基于第二预设评分条件确定的;第二预设评分条件基于工作节点上的磁盘信息、内存信息和处理性能信息确定;接收调度器发送的目标信息;根据目标信息确定目标工作节点。
其中,目标信息用于指示将第三评分最高的工作节点确定为目标工作节点。
在一些实施例中,预定节点基于处理器核的组合方式对第二工作节点集合中的每个工作节点,得到了每个工作节点的第一评分。为了进一步对第二工作节点中的工作节点进行筛选,得到更为适合目标应用容器组运行的工作节点,可以再进行一次筛选。
由于工作节点上的磁盘空间大小、内存信息以及处理性能信息均会影响目标应用容器组的运行效率,因此可以基于工作节点上的磁盘信息、内存信息和处理性能信息中的至少一种信息确定第二评分条件。
例如,第二预设评分条件包括不同的磁盘剩余空间对应的分数、不同的内存使用率对应的分数以及不同的处理性能对应的分数中的至少一种评分条件。
作为一个示例,对于每个工作节点,调度器可以将该工作节点的磁盘剩余空间对应的分数、该工作节点的内存使用率对应的分数以及该工作节点的处理性能对应的分数之和确定为该工作节点的第二评分。
对于每个工作节点,调度器对该工作节点的第一评分和该工作节点的第二评分进行加权求和,得到该工作节点的第三评分。
在本申请的实施例中,由于处理器核的组合方式对资源调度的影响稍大,因此可以预先设置第一评分对应的权重大于第二评分对应的权重。
在本申请的实施例中,调度器确定第二工作节点集合中每个工作节点的第三评分,然后发送目标信息至预定节点。
其中,目标信息中包括第三评分最高的工作节点的标识信息,且目标信息用于指示将第三评分最高的工作节点确定为目标工作节点。预定节点中的调度器扩展应用接收到目标信息之后,基于目标信息将第三评分最高的工作节点确定为目标工作节点。
参见图2,预定节点中的调度器扩展应用将每个工作节点的第一评分发送至调度器。调度器基于该工作节点的第一评分和该工作节点的第二评分进行加权求和,得到该工作节点的第三评分。调度器将用于指示将第三评分最高的工作节点确定为目标工作节点的目标信息发送至预定节点中的调度器扩展应用。预定节点中的调度器扩展应用基于目标信息将第三评分最高的工作节点确定为目标工作节点。
在本申请的实施例中,通过结合基于处理器核的组合方式确定的工作节点的第一评分以及基于工作节点自身的性能信息确定的工作节点的第二评分,得到工作节点的第三评分,实现了根据工作节点的多个维度的信息来筛选适合目标应用容器组的工作节点。通过利用工作节点的多个维度的信息来筛选适合目标应用容器组的工作节点,考虑的影响因素更为全面,提高了资源调度的合理性。
下面介绍步骤330的具体实现方式。
在本身的实施例中,预设分配条件包括:为目标应用容器组分配的目标处理器核属于至少一个处理器。
在一些实施例中,为了提高通信带宽,预设分配条件可以是:目标工作节点为目标应用容器组分配的目标处理器核属于一个处理器。也就是说,目标工作节点的处理器可以分配部分处理器核给应用容器组,但是该应用容器组请求的处理器核不能来自两个或多个处理器。
例如:某应用容器组请求3个处理器核,目标工作节点上的1个处理器有4处理器核,可以分配3处理器核给该应用容器组,剩下的1处理器核可以留给其他应用容器组使用。
在另一些实施例中,为了满足处理器核需求量较大的需求,预设分配条件可以是目标工作节点为目标应用容器组分配的目标处理器核可以属于多个处理器。也就是说,某个应用容器组请求的处理器核可以来自多个处理器,这些处理器剩余的处理器核可以分配其他应用容器组使用,
例如:某个应用容器组请求3个处理器核,这3个处理器核可以来自一块NPU卡,也可以来自多块NPU卡。
在本申请的实施例中,由于为目标应用容器组分配的目标处理器核可以属于多个处理器,因此当目标工作节点上的每个处理器上的空闲处理器核的数量都小于目标应用容器组请求的处理器核的数量时,则可以将多个处理器上的空闲处理器核组合起来分配给目标应用容器组使用,从而可以提高应用的广泛性。
在本申请的实施例中,若工作节点上存在多个处理器核组合方式可以满足目标应用容器组,则可以随机选取一种处理器核组合方式,或者按照预先设置的不同处理器核组合方式对应的优先级,选取优先级最高的处理器核组合方式。
作为一个示例,目标工作节点具有3个处理器,第1个处理器具有3个空闲处理器核,第2个处理器具有1个空闲处理器核,第3个处理器具有2个处理器核。若目标应用容器组请求3个处理器核,则具有2种处理器核组合方式。第一种处理器核组合方式包括第1个处理器中的3个空闲处理器核,第二种处理器核组合方式包括第2个处理器中的1个空闲处理器核和第3个处理器中的2个空闲处理器核。
若预先设置的来自同一个处理器的处理器核组合方式的优先级大于来自多个处理器的处理器核组合方式的优先级,则目标节点为目标应用容器组分配的目标处理器核包括第1个处理器中的3个空闲处理器核。
在本申请的实施例中,处理器核分配信息包括目标工作节点中为目标应用容器组分配的目标处理器核的数量,以及每个目标处理器核所属的处理器的设备标识,以及每个目标处理器核在其所属的处理器中的位置信息等信息。
下面介绍步骤340的具体实现方式。
在本申请的一些实施例中,参见图2,预定节点中的调度器扩展应用将处理器核分配信息存入目标应用容器组的配置信息(pod spec)中,以使目标工作节点可以从目标应用容器组的配置信息中获取处理器核分配信息,以实现对目标应用容器组的调度。
需要说明的是,将处理器核分配信息存入目标应用容器组的配置信息中之前,本申请实施例提供的资源调度方法还包括将目标应用容器组与目标工作节点关联。
在本申请的实施例中,将目标应用容器组与目标工作节点关联即是将目标应用容器组绑定至目标工作节点。
图4是本申请实施例提供的资源调度方法的另一个实施例的流程示意图,该方法的执行主体是目标工作节点。如图4所示,本申请提供的资源调度方法包括:。
步骤410,从目标应用容器组的配置信息中获取目标应用容器组的处理器核分配信息,处理器核分配信息是预定节点存入目标应用容器组的配置信息中的,处理器核分配信息是预定节点基于预设分配条件以及目标应用容器组请求的处理器核的目标数量确定的,处理器核分配信息包括目标工作节点中为目标应用容器组分配的目标处理器核的信息,目标工作节点是预定节点根据获取的工作节点上的处理器的设备信息确定的,目标工作节点中空闲处理器核的数量不小于目标数量;
步骤420,基于处理器核分配信息将目标处理器核调度至目标应用容器组。
在本申请的实施例中,基于上述应用于预定节点侧的资源调度方法的实施例可知,预定节点将目标应用容器组的处理器核分配信息存入了目标应用容器组的配置信息。因此,目标工作节点可以从目标应用容器组的配置信息中获取目标应用容器组的处理器核分配信息。
参见图2,目标工作节点中的处理器设备插件可以从目标应用容器组的配置信息中获取目标应用容器组的处理器核分配信息。
在一些实施例中,步骤420包括:基于处理器核分配信息,将目标处理器核所属处理器挂载至目标应用容器组;将处理器核分配信息注入目标应用容器组,以使目标应用容器组利用目标处理器核进行运行。
在本申请的实施例中,目标工作节点上的处理器设备插件根据目标应用容器组的配置信息中的处理器核分配信息,可以获取目标工作节点为目标应用容器组分配的目标处理器核所属处理器的设备标识。目标工作节点上的处理器设备插件基于目标处理器核所属处理器的设备标识将目标处理器核所属处理器挂载至目标应用容器组中。
调度器部署目标应用容器组时,将为该应用容器组分配的目标处理器核所对应的处理器设备标识和目标处理器核在所属处理器中的位置信息等信息通过环境变量注入,同时在应用容器组中解析环境变量的值。
在本申请的实施例中,在步骤410之前,在目标工作节点上的处理器设备插件启动时,目标工作节点向预定节点发送目标工作节点上的处理器的设备信息,以使预定节点基于每个工作节点上的处理器的设备信息来确定目标工作节点。
随着人工智能技术的成熟,人工智能芯片也得到了快速发展。为了提高人工智能芯片中处理器核的利用率,本申请还提供一种资源调度方法。图5是本申请提供的资源调度方法的第三实施例的流程示意图。图5示出的资源调度方法500应用于预定节点,该方法包括:
步骤510,获取针对目标应用容器组的资源调度请求,所述资源调度请求包括所述目标应用容器组请求的第一处理器核的目标数量;所述第一处理器核包括人工智能芯片的处理器核;
步骤520,根据获取的工作节点上的人工智能芯片的设备信息,确定目标工作节点,所述目标工作节点中空闲的第一处理器核的数量不小于所述目标数量;
步骤530,基于预设分配条件以及所述目标数量,确定所述目标应用容器组的处理器核分配信息,其中,所述处理器核分配信息包括在所述目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息;
步骤540,将所述处理器核分配信息存入所述目标应用容器组的配置信息中,以使所述目标工作节点从所述配置信息中获取所述处理器核分配信息,并使所述目标工作节点基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
在本申请的实施例中,步骤510中的第一处理器核是人工智能芯片的处理器核。在本申请的实施例中,人工智能芯片是指对人工智能算法做了加速设计的芯片,即专门用于处理人工智能应用中的大量计算任务的模块。
在一些实施例中,人工智能芯片可以是GPU芯片、NPU芯片、FPGA芯片或专用集成电路芯片(Application Specific Integrated Circuit,ASIC)等芯片。人工智能芯片包括一个或多个处理器核。例如,NPU芯片可以用于处理模型预测任务。
在本申请的实施例中,步骤510的实现方式与步骤310的具体实现方式相类似,步骤520的实现方式与步骤320的具体实现方式相类似,步骤530的实现方式与步骤330的具体实现方式相类似,步骤540的实现方式与步骤340的具体实现方式相类似,在此不再赘述。在资源调度方法500中,处理器为人工智能芯片,目标应用容器组所请求的是人工智能芯片的处理器核。
需要说明的是,工作节点上人工智能芯片的设备信息包括工作节点上每个人工智能芯片的设备标识、每个人工智能芯片上处理器核的总数量、每个人工智能芯片上空闲处理器核(未被利用的处理器核)的总数量以及处理器核的总数量信息等信息。
在本申请的实施例中,针对目标应用容器组的资源调度请求以人工智能芯片的处理器核为单位,在为该目标应用容器组调度资源时,确定的是目标应用容器组的处理器核分配信息。也就是说,目标应用容器组请求资源的单位是人工智能芯片的处理器核,为该目标应用容器组分配的资源的单位也是人工智能芯片的处理器核,即应用容器组请求资源的最小单位与使用资源的最小单位一致,因此可以避免资源的浪费,提高人工智能芯片中处理核的利用率。
图6是本申请提供的资源调度方法的第四实施例的流程示意图。图6示出的资源调度方法600应用于目标工作节点,该方法包括:
步骤610,从目标应用容器组的配置信息中获取所述目标应用容器组的处理器核分配信息,所述处理器核分配信息是预定节点存入所述目标应用容器组的配置信息中的,所述处理器核分配信息是所述预定节点基于预设分配条件以及所述目标应用容器组请求的第一处理器核的目标数量确定的,所述第一处理器核包括人工智能芯片的处理器核,所述处理器核分配信息包括目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息,所述目标工作节点是所述预定节点根据获取的工作节点上的人工智能芯片的设备信息确定的,所述目标工作节点中空闲第一处理器核的数量不小于所述目标数量;
步骤620,基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
在本申请的实施例中,步骤610的实现方式与步骤410的具体实现方式相类似,步骤620的实现方式与步骤420的具体实现方式相类似,在此不再赘述。与资源调度方法400的不同之处在于,在资源调度方法600中,处理器为人工智能芯片,目标应用容器组所请求的是人工智能芯片的处理器核。
在本申请的实施例中,针对目标应用容器组的资源调度请求以人工智能芯片的处理器核为单位,在为该目标应用容器组调度资源时,确定的是目标应用容器组的处理器核分配信息。也就是说,目标应用容器组请求资源的单位是人工智能芯片的处理器核,为该目标应用容器组分配的资源的单位也是人工智能芯片的处理器核,即应用容器组请求资源的最小单位与使用资源的最小单位一致,因此可以避免资源的浪费,提高人工智能芯片中处理核的利用率。
图7为本申请提供的资源调度装置的一个实施例的结构示意图。如图7所示,该资源调度装置700包括:
第一获取模块710,用于获取针对目标应用容器组的资源调度请求,资源调度请求包括目标应用容器组请求的处理器核的目标数量;
目标工作节点确定模块720,用于根据获取的工作节点上的处理器的设备信息,确定目标工作节点,目标工作节点中空闲处理器核的数量不小于目标数量;
分配信息确定模块730,用于基于预设分配条件以及目标数量,确定目标应用容器组的处理器核分配信息,其中,处理器核分配信息包括在目标工作节点中为目标应用容器组分配的目标处理器核的信息;
第一存储模块740,用于将处理器核分配信息存入目标应用容器组的配置信息中,以使目标工作节点从配置信息中获取处理器核分配信息,并使目标工作节点基于处理器核分配信息将目标处理器核调度至目标应用容器组。
在本申请的一些实施例中,处理器核包括嵌入式神经网络处理器核。
在本申请的一些实施例中,工作节点上的处理器的设备信息包括工作节点上空闲处理器核的数量;
其中,目标工作节点确定模块720,包括:
第一工作节点集合获取单元,用于获取第一工作节点集合,第一工作节点集合中的每个工作节点上均具有处理器;
筛选单元,用于从第一工作节点集合中筛选出第二工作节点集合,第二工作节点集合中每个工作节点上空闲处理器核的数量不小于目标数量;
第一评分确定单元,用于基于第一预设评分条件以及第二工作节点集合中的每个工作节点上的处理器的设备信息,得到第二工作节点集合中每个工作节点的第一评分;第一预设评分条件基于工作节点上的处理器的数量以及工作节点上处理器中空闲处理器核的数量确定;
目标工作节点确定单元,用于根据每个第一评分,确定目标工作节点。
在本申请的一些实施例中,目标工作节点确定单元用于:
发送第二工作节点集合中的每个工作节点的第一评分至调度器,以使调度器基于第二工作节点集合中的每个工作节点的第一评分和第二评分确定每个工作节点的第三评分,并使调度器根据每个第三评分确定目标信息;工作节点的第二评分是调度器基于第二预设评分条件确定的;第二预设评分条件基于工作节点上的磁盘信息、内存信息和处理性能信息中的至少一种信息确定;
接收调度器发送的目标信息;
根据目标信息确定目标工作节点;
其中,目标信息用于指示将第三评分最高的工作节点确定为目标工作节点。
在本申请的一些实施例中,第一工作节点集合获取单元,用于:
从调度器中获取第一工作节点集合,第一工作节点集合是调度器基于预设筛选条件筛选出的;
其中,预设筛选条件基于工作节点中的处理器信息、内存信息和处理性能信息中的至少一种信息确定。
在本申请的一些实施例中,预设分配条件包括:
为目标应用容器组分配的目标处理器核属于至少一个处理器。
在本申请的一些实施例中,资源调度装置700还包括:
关联模块,用于将目标应用容器组与目标工作节点关联。
根据本申请实施例的资源调度装置700的其他细节与以上结合图3描述的根据本说明书实施例的资源调度方法类似,在此不再赘述。
图8为本申请提供的资源调度装置的一个实施例的结构示意图。如图8所示,该资源调度装置800应用于目标工作节点,包括:
第二获取模块810,用于从目标应用容器组的配置信息中获取目标应用容器组的处理器核分配信息,处理器核分配信息是预定节点存入目标应用容器组的配置信息中的,处理器核分配信息是预定节点基于预设分配条件以及目标应用容器组请求的处理器核的目标数量确定的,处理器核分配信息包括目标工作节点中为目标应用容器组分配的目标处理器核的信息,目标工作节点是预定节点根据获取的工作节点上的处理器的设备信息确定的,目标工作节点中空闲处理器核的数量不小于目标数量;
调度模块820,用于基于处理器核分配信息将目标处理器核调度至目标应用容器组。
在本申请的一些实施例中,资源调度装置800还包括:
第二存储模块,用于将目标工作节点上的处理器的设备信息存入资源对象,以使第一工作节点从资源对象中获取目标工作节点上的处理器的设备信息。
在本申请的一些实施例中,调度模块820用于:
基于处理器核分配信息,将目标处理器核所属处理器挂载至目标应用容器组;
将处理器核分配信息注入目标应用容器组,以使目标应用容器组利用目标处理器核进行运行。
根据本申请实施例的资源调度装置800的其他细节与以上结合图4描述的根据本说明书实施例的资源调度方法类似,在此不再赘述。
图9为本申请提供的资源调度装置的一个实施例的结构示意图。如图9所示,该资源调度装置900包括:
第一获取模块910,用于获取针对目标应用容器组的资源调度请求,所述资源调度请求包括所述目标应用容器组请求的第一处理器核的目标数量;所述第一处理器核包括人工智能芯片的处理器核;
目标工作节点确定模块920,用于根据获取的工作节点上的人工智能芯片的设备信息,确定目标工作节点,所述目标工作节点中空闲的第一处理器核的数量不小于所述目标数量;
分配信息确定模块930,用于基于预设分配条件以及所述目标数量,确定所述目标应用容器组的处理器核分配信息,其中,所述处理器核分配信息包括在所述目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息;
第一存储模块940,用于将所述处理器核分配信息存入所述目标应用容器组的配置信息中,以使所述目标工作节点从所述配置信息中获取所述处理器核分配信息,并使所述目标工作节点基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
在本申请的实施例中,针对目标应用容器组的资源调度请求以人工智能芯片的处理器核为单位,在为该目标应用容器组调度资源时,确定的是目标应用容器组的处理器核分配信息。也就是说,目标应用容器组请求资源的单位是人工智能芯片的处理器核,为该目标应用容器组分配的资源的单位也是人工智能芯片的处理器核,即应用容器组请求资源的最小单位与使用资源的最小单位一致,因此可以避免资源的浪费,提高人工智能芯片中处理核的利用率。
根据本申请实施例的资源调度装置900的其他细节与以上结合图5描述的根据本说明书实施例的资源调度方法类似,在此不再赘述。
图10为本申请提供的资源调度装置的一个实施例的结构示意图。如图10所示,该资源调度装置1000包括:
第二获取模块1010,用于从目标应用容器组的配置信息中获取所述目标应用容器组的处理器核分配信息,所述处理器核分配信息是预定节点存入所述目标应用容器组的配置信息中的,所述处理器核分配信息是所述预定节点基于预设分配条件以及所述目标应用容器组请求的第一处理器核的目标数量确定的,所述第一处理器核包括人工智能芯片的处理器核,所述处理器核分配信息包括目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息,所述目标工作节点是所述预定节点根据获取的工作节点上的人工智能芯片的设备信息确定的,所述目标工作节点中空闲第一处理器核的数量不小于所述目标数量;
调度模块1020,用于基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
在本申请的实施例中,针对目标应用容器组的资源调度请求以人工智能芯片的处理器核为单位,在为该目标应用容器组调度资源时,确定的是目标应用容器组的处理器核分配信息。也就是说,目标应用容器组请求资源的单位是人工智能芯片的处理器核,为该目标应用容器组分配的资源的单位也是人工智能芯片的处理器核,即应用容器组请求资源的最小单位与使用资源的最小单位一致,因此可以避免资源的浪费,提高人工智能芯片中处理核的利用率。
根据本申请实施例的资源调度装置1000的其他细节与以上结合图6描述的根据本说明书实施例的资源调度方法类似,在此不再赘述。
结合图3~图10描述的根据本申请实施例的资源调度方法和装置可以由计算设备来实现。图11为根据申请实施例的计算设备1100的硬件结构示意图。
如图11所示,计算设备1100包括输入设备1101、输入接口1102、处理器1103、存储器1104、输出接口1105、以及输出设备1106。其中,输入接口1102、处理器1103、存储器1104、以及输出接口1105通过总线1107相互连接,输入设备1101和输出设备1106分别通过输入接口1102和输出接口1105与总线1107连接,进而与计算设备1100的其他组件连接。
具体地,输入设备1101接收来自外部的输入信息,并通过输入接口1102将输入信息传送到处理器1103;处理器1103基于存储器1104中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器1104中,然后通过输出接口1105将输出信息传送到输出设备1106;输出设备1106将输出信息输出到计算设备1100的外部供用户使用。
其中,处理器1103可以包括:CPU、NPU、TPU或FpGA芯片等类型的处理器,该附图仅为示例性说明,并不局限于文中列举的类型的处理器。
也就是说,图11所示的计算设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图3~图10描述的资源调度方法和装置。
本申请实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本申请实施例提供的资源调度方法。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

Claims (18)

1.一种资源调度方法,包括:
获取针对目标应用容器组的资源调度请求,所述资源调度请求包括所述目标应用容器组请求的处理器核的目标数量;
根据获取的工作节点上的处理器的设备信息,确定目标工作节点,所述目标工作节点中空闲处理器核的数量不小于所述目标数量;
基于预设分配条件以及所述目标数量,确定所述目标应用容器组的处理器核分配信息,其中,所述处理器核分配信息包括在所述目标工作节点中为所述目标应用容器组分配的目标处理器核的信息;
将所述处理器核分配信息存入所述目标应用容器组的配置信息中,以使所述目标工作节点从所述配置信息中获取所述处理器核分配信息,并使所述目标工作节点基于所述处理器核分配信息将所述目标处理器核调度至所述目标应用容器组。
2.根据权利要求1所述的方法,其中,所述处理器核包括嵌入式神经网络处理器核。
3.根据权利要求1所述的方法,其中,所述工作节点上的处理器的设备信息包括所述工作节点上空闲处理器核的数量;
其中,所述根据获取的工作节点上的处理器的设备信息,确定目标工作节点,包括:
获取第一工作节点集合,所述第一工作节点集合中的每个工作节点上均具有处理器;
从所述第一工作节点集合中筛选出第二工作节点集合,所述第二工作节点集合中每个工作节点上空闲处理器核的数量不小于所述目标数量;
基于第一预设评分条件以及所述第二工作节点集合中的每个工作节点上的处理器的设备信息,得到所述第二工作节点集合中每个工作节点的第一评分;所述第一预设评分条件基于工作节点上的处理器的数量以及所述工作节点上处理器中空闲处理器核的数量确定;
根据每个所述第一评分,确定所述目标工作节点。
4.根据权利要求3所述的方法,其中,所述根据每个所述第一评分,确定所述目标工作节点,包括:
发送所述第二工作节点集合中的每个工作节点的第一评分至调度器,以使所述调度器基于所述第二工作节点集合中的每个工作节点的第一评分和第二评分确定每个所述工作节点的第三评分,并使所述调度器根据每个所述第三评分确定目标信息;所述工作节点的第二评分是所述调度器基于第二预设评分条件确定的;所述第二预设评分条件基于工作节点上的磁盘信息、内存信息和处理性能信息中的至少一种信息确定;
接收所述调度器发送的目标信息;
根据所述目标信息确定所述目标工作节点;
其中,所述目标信息用于指示将第三评分最高的工作节点确定为所述目标工作节点。
5.根据权利要求3所述的方法,其中,所述获取第一工作节点集合,包括:
从调度器中获取所述第一工作节点集合,所述第一工作节点集合是所述调度器基于预设筛选条件筛选出的;
其中,所述预设筛选条件基于工作节点中的处理器信息、内存信息和处理性能信息中的至少一种信息确定。
6.根据权利要求1所述的方法,其中,所述预设分配条件包括:
为所述目标应用容器组分配的目标处理器核属于至少一个处理器。
7.根据权利要求1所述的方法,其中,所述将所述处理器核分配信息存入所述目标应用容器组的配置信息中之前,所述方法还包括:
将所述目标应用容器组与所述目标工作节点关联。
8.一种资源调度方法,应用目标工作节点,包括:
从目标应用容器组的配置信息中获取所述目标应用容器组的处理器核分配信息,所述处理器核分配信息是预定节点存入所述目标应用容器组的配置信息中的,所述处理器核分配信息是所述预定节点基于预设分配条件以及所述目标应用容器组请求的处理器核的目标数量确定的,所述处理器核分配信息包括目标工作节点中为所述目标应用容器组分配的目标处理器核的信息,所述目标工作节点是所述预定节点根据获取的工作节点上的处理器的设备信息确定的,所述目标工作节点中空闲处理器核的数量不小于所述目标数量;
基于所述处理器核分配信息将所述目标处理器核调度至所述目标应用容器组。
9.根据权利要求8所述的方法,其中,在所述从目标应用容器组的配置信息中获取所述目标应用容器组的处理器核分配信息之前,所述方法还包括:
将所述目标工作节点上的处理器的设备信息存入资源对象,以使所述预定节点从所述资源对象中获取所述目标工作节点上的处理器的设备信息。
10.根据权利要求8所述的方法,其中,所述基于所述处理器核分配信息将所述目标处理器核调度至所述目标应用容器组,包括:
基于所述处理器核分配信息,将所述目标处理器核所属处理器挂载至所述目标应用容器组;
将所述处理器核分配信息注入所述目标应用容器组,以使所述目标应用容器组利用所述目标处理器核进行运行。
11.一种资源调度方法,包括:
获取针对目标应用容器组的资源调度请求,所述资源调度请求包括所述目标应用容器组请求的第一处理器核的目标数量;所述第一处理器核包括人工智能芯片的处理器核;
根据获取的工作节点上的人工智能芯片的设备信息,确定目标工作节点,所述目标工作节点中空闲的第一处理器核的数量不小于所述目标数量;
基于预设分配条件以及所述目标数量,确定所述目标应用容器组的处理器核分配信息,其中,所述处理器核分配信息包括在所述目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息;
将所述处理器核分配信息存入所述目标应用容器组的配置信息中,以使所述目标工作节点从所述配置信息中获取所述处理器核分配信息,并使所述目标工作节点基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
12.一种资源调度方法,应用目标工作节点,包括:
从目标应用容器组的配置信息中获取所述目标应用容器组的处理器核分配信息,所述处理器核分配信息是预定节点存入所述目标应用容器组的配置信息中的,所述处理器核分配信息是所述预定节点基于预设分配条件以及所述目标应用容器组请求的第一处理器核的目标数量确定的,所述第一处理器核包括人工智能芯片的处理器核,所述处理器核分配信息包括目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息,所述目标工作节点是所述预定节点根据获取的工作节点上的人工智能芯片的设备信息确定的,所述目标工作节点中空闲第一处理器核的数量不小于所述目标数量;
基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
13.一种资源调度装置,包括:
第一获取模块,用于获取针对目标应用容器组的资源调度请求,所述资源调度请求包括所述目标应用容器组请求的处理器核的目标数量;
目标工作节点确定模块,用于根据获取的工作节点上的处理器的设备信息,确定目标工作节点,所述目标工作节点中空闲处理器核的数量不小于所述目标数量;
分配信息确定模块,用于基于预设分配条件以及所述目标数量,确定所述目标应用容器组的处理器核分配信息,其中,所述处理器核分配信息包括在所述目标工作节点中为所述目标应用容器组分配的目标处理器核的信息;
第一存储模块,用于将所述处理器核分配信息存入所述目标应用容器组的配置信息中,以使所述目标工作节点从所述配置信息中获取所述处理器核分配信息,并使所述目标工作节点基于所述处理器核分配信息将所述目标处理器核调度至所述目标应用容器组。
14.一种资源调度装置,应用目标工作节点,包括:
第二获取模块,用于从目标应用容器组的配置信息中获取所述目标应用容器组的处理器核分配信息,所述处理器核分配信息是预定节点存入所述目标应用容器组的配置信息中的,所述处理器核分配信息是所述预定节点基于预设分配条件以及所述目标应用容器组请求的处理器核的目标数量确定的,所述处理器核分配信息包括目标工作节点中为所述目标应用容器组分配的目标处理器核的信息,所述目标工作节点是所述预定节点根据获取的工作节点上的处理器的设备信息确定的,所述目标工作节点中空闲处理器核的数量不小于所述目标数量;
调度模块,用于基于所述处理器核分配信息将所述目标处理器核调度至所述目标应用容器组。
15.一种资源调度装置,包括:
第一获取模块,用于获取针对目标应用容器组的资源调度请求,所述资源调度请求包括所述目标应用容器组请求的第一处理器核的目标数量;所述第一处理器核包括人工智能芯片的处理器核;
目标工作节点确定模块,用于根据获取的工作节点上的人工智能芯片的设备信息,确定目标工作节点,所述目标工作节点中空闲的第一处理器核的数量不小于所述目标数量;
分配信息确定模块,用于基于预设分配条件以及所述目标数量,确定所述目标应用容器组的处理器核分配信息,其中,所述处理器核分配信息包括在所述目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息;
第一存储模块,用于将所述处理器核分配信息存入所述目标应用容器组的配置信息中,以使所述目标工作节点从所述配置信息中获取所述处理器核分配信息,并使所述目标工作节点基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
16.一种资源调度装置,应用目标工作节点,包括:
第二获取模块,用于从目标应用容器组的配置信息中获取所述目标应用容器组的处理器核分配信息,所述处理器核分配信息是预定节点存入所述目标应用容器组的配置信息中的,所述处理器核分配信息是所述预定节点基于预设分配条件以及所述目标应用容器组请求的第一处理器核的目标数量确定的,所述第一处理器核包括人工智能芯片的处理器核,所述处理器核分配信息包括目标工作节点中为所述目标应用容器组分配的目标第一处理器核的信息,所述目标工作节点是所述预定节点根据获取的工作节点上的人工智能芯片的设备信息确定的,所述目标工作节点中空闲第一处理器核的数量不小于所述目标数量;
调度模块,用于基于所述处理器核分配信息将所述目标第一处理器核调度至所述目标应用容器组。
17.一种计算设备,其中,所述计算设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-12任意一项所述的资源调度方法。
18.一种计算机存储介质,其中,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-12任意一项所述的资源调度方法。
CN202010706309.8A 2020-07-21 2020-07-21 资源调度方法、装置、计算设备和介质 Active CN113301087B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010706309.8A CN113301087B (zh) 2020-07-21 2020-07-21 资源调度方法、装置、计算设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010706309.8A CN113301087B (zh) 2020-07-21 2020-07-21 资源调度方法、装置、计算设备和介质

Publications (2)

Publication Number Publication Date
CN113301087A true CN113301087A (zh) 2021-08-24
CN113301087B CN113301087B (zh) 2024-04-02

Family

ID=77318628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010706309.8A Active CN113301087B (zh) 2020-07-21 2020-07-21 资源调度方法、装置、计算设备和介质

Country Status (1)

Country Link
CN (1) CN113301087B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028230A (zh) * 2023-02-17 2023-04-28 浪潮电子信息产业股份有限公司 一种资源配置方法、装置、设备、介质及云平台

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120130680A1 (en) * 2010-11-22 2012-05-24 Zink Kenneth C System and method for capacity planning for systems with multithreaded multicore multiprocessor resources
CN106371894A (zh) * 2016-08-31 2017-02-01 华为技术有限公司 一种配置方法、装置和数据处理服务器
CN107040479A (zh) * 2016-02-04 2017-08-11 华为软件技术有限公司 一种云计算资源调节的方法和装置
CN107534583A (zh) * 2015-04-30 2018-01-02 华为技术有限公司 具有多资源可调度单元(mrsu)的数据中心的应用驱动和自适应统一资源管理
WO2018001004A1 (zh) * 2016-06-27 2018-01-04 中兴通讯股份有限公司 一种基于Docker的云平台控制方法及装置
CN107729126A (zh) * 2016-08-12 2018-02-23 中国移动通信集团浙江有限公司 一种容器云的任务调度方法和装置
CN108566370A (zh) * 2018-02-11 2018-09-21 北京奇艺世纪科技有限公司 一种数据回源的方法以及装置
CN110545326A (zh) * 2019-09-10 2019-12-06 杭州数梦工场科技有限公司 集群负载调度方法、装置、电子设备和存储介质
WO2020000944A1 (zh) * 2018-06-25 2020-01-02 星环信息科技(上海)有限公司 基于抢占式调度的资源共享使用方法、系统及设备
CN111158879A (zh) * 2019-12-31 2020-05-15 上海依图网络科技有限公司 一种系统资源的调度方法,装置、机器可读介质和系统
WO2020103465A1 (zh) * 2018-11-23 2020-05-28 中国银联股份有限公司 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120130680A1 (en) * 2010-11-22 2012-05-24 Zink Kenneth C System and method for capacity planning for systems with multithreaded multicore multiprocessor resources
CN107534583A (zh) * 2015-04-30 2018-01-02 华为技术有限公司 具有多资源可调度单元(mrsu)的数据中心的应用驱动和自适应统一资源管理
CN107040479A (zh) * 2016-02-04 2017-08-11 华为软件技术有限公司 一种云计算资源调节的方法和装置
WO2018001004A1 (zh) * 2016-06-27 2018-01-04 中兴通讯股份有限公司 一种基于Docker的云平台控制方法及装置
CN107729126A (zh) * 2016-08-12 2018-02-23 中国移动通信集团浙江有限公司 一种容器云的任务调度方法和装置
CN106371894A (zh) * 2016-08-31 2017-02-01 华为技术有限公司 一种配置方法、装置和数据处理服务器
CN108566370A (zh) * 2018-02-11 2018-09-21 北京奇艺世纪科技有限公司 一种数据回源的方法以及装置
WO2020000944A1 (zh) * 2018-06-25 2020-01-02 星环信息科技(上海)有限公司 基于抢占式调度的资源共享使用方法、系统及设备
WO2020103465A1 (zh) * 2018-11-23 2020-05-28 中国银联股份有限公司 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统
CN110545326A (zh) * 2019-09-10 2019-12-06 杭州数梦工场科技有限公司 集群负载调度方法、装置、电子设备和存储介质
CN111158879A (zh) * 2019-12-31 2020-05-15 上海依图网络科技有限公司 一种系统资源的调度方法,装置、机器可读介质和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
常旭征;焦文彬;: "Kubernetes资源调度算法的改进与实现", 计算机系统应用, no. 07 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028230A (zh) * 2023-02-17 2023-04-28 浪潮电子信息产业股份有限公司 一种资源配置方法、装置、设备、介质及云平台

Also Published As

Publication number Publication date
CN113301087B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
US11243805B2 (en) Job distribution within a grid environment using clusters of execution hosts
CN109684065B (zh) 一种资源调度方法、装置及系统
CN108337109B (zh) 一种资源分配方法及装置和资源分配系统
US20140165061A1 (en) Statistical packing of resource requirements in data centers
US8468530B2 (en) Determining and describing available resources and capabilities to match jobs to endpoints
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
US20090282413A1 (en) Scalable Scheduling of Tasks in Heterogeneous Systems
US20050132379A1 (en) Method, system and software for allocating information handling system resources in response to high availability cluster fail-over events
WO2011076608A2 (en) Goal oriented performance management of workload utilizing accelerators
CN107864211B (zh) 集群资源调度方法及系统
US9442764B2 (en) Allocating a global resource to consumers across different regions of a distributed grid environment based on use data and demand data of each consumer
CN111399970B (zh) 一种预留资源管理方法、装置和存储介质
US11126461B2 (en) Techniques for container scheduling in a virtual environment
US20130290979A1 (en) Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium
CN111459641B (zh) 一种跨机房的任务调度和任务处理的方法及装置
CN107430526B (zh) 用于调度数据处理的方法和节点
CN110914805A (zh) 用于分层任务调度的计算系统
Awada et al. Edge federation: A dependency-aware multi-task dispatching and co-location in federated edge container-instances
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
CN113301087B (zh) 资源调度方法、装置、计算设备和介质
CN114490062A (zh) 一种本地磁盘的调度方法、装置、电子设备及存储介质
CN111240824A (zh) 一种cpu资源调度方法及电子设备
Wu et al. Abp scheduler: Speeding up service spread in docker swarm
KR100788328B1 (ko) 그리드 컴퓨팅을 이용한 미들웨어 시스템 및 그 동작 방법
CN116157778A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40057552

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant