CN115543615A - 一种资源分配方法、装置、电子设备及存储介质 - Google Patents

一种资源分配方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115543615A
CN115543615A CN202211203928.0A CN202211203928A CN115543615A CN 115543615 A CN115543615 A CN 115543615A CN 202211203928 A CN202211203928 A CN 202211203928A CN 115543615 A CN115543615 A CN 115543615A
Authority
CN
China
Prior art keywords
computing power
computing
resource
pool
calculation
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
Application number
CN202211203928.0A
Other languages
English (en)
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.)
Shanghai Sensetime Technology Development Co Ltd
Original Assignee
Shanghai Sensetime Technology Development Co 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 Shanghai Sensetime Technology Development Co Ltd filed Critical Shanghai Sensetime Technology Development Co Ltd
Priority to CN202211203928.0A priority Critical patent/CN115543615A/zh
Publication of CN115543615A publication Critical patent/CN115543615A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F9/5011Allocation 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
    • G06F9/5016Allocation 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 the resource being the memory
    • 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
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • 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

一种资源分配方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种资源分配方法、装置、电子设备及存储介质。
背景技术
高性能计算(High performance computing,HPC)在科学计算等领域发挥着重要作用,可以给用户分配所需的计算能力资源(简称算力资源),而目前对于大规模计算任务,例如,深度学习的人工智能(Artificial Intelligence,AI)训练任务,用户的需求越来越多,并且大规模计算任务所需要的算力资源也越来越大,如何进行高效的算力资源分配是亟待解决的问题。
发明内容
本公开实施例至少提供一种资源分配方法、装置、电子设备及存储介质。
第一方面,本公开实施例提供了一种资源分配方法,包括:
接收目标对象的计算任务,其中,所述计算任务中至少包括算力池标识、算力单元类型和算力单元需求量,算力池包括多个算力单元,每种算力单元类型对应预定义算力单元,每个所述算力单元包括多种类型的算力资源;
确定所述算力池标识对应的目标算力池中,所述算力单元类型对应的算力资源余量是否满足所述算力单元需求量;
在确定所述算力单元类型对应的算力资源余量满足所述算力单元需求量的情况下,从所述目标算力池中确定所述计算任务的目标算力资源。
本公开实施例中,定义算力单元和算力池,将多种类型的算力资源组合而定义为算力单元,基于算力单元构建算力池,这样,将算力单元规格化,将算力单元作为算力资源分配的基础单位,而不是以单一类型的算力资源为基础单位,可以同时兼顾对不同类型算力资源的需求,避免出现一种类型算力资源可用,而另一种类型算力资源不足的情况,可以进一步提高分配效率和资源使用率,进而针对接收到的目标对象的计算任务,可以根据计算任务中的算力池标识,确定算力池标识对应的目标算力池,并确定目标算力池中所需的算力单元类型的算力资源余量是否满足算力单元需求量,在确定满足的情况下,从目标算力池中的算力资源余量中确定该计算任务的目标算力资源,这样,在发送计算任务时,可以关联对应的算力池标识,从而可以对应的目标算力池中,分别所需算力单元类型的申请量,提高了分配效率和资源利用率。
一种可选的实施方式中,所述方法还包括:
接收所述目标对象的资源申请请求,其中,所述资源申请请求中至少包括算力单元申请量和算力单元类型;
根据所述资源申请请求中所述算力单元申请量和所述算力单元类型,为所述目标对象分配算力资源,并基于分配的算力资源,构建所述目标对象的目标算力池。
本公开实施例中,可以针对目标对象构建对应的目标算力池,支持静态划分可用的算力池。
一种可选的实施方式中,所述方法还包括:
在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源。
本公开实施例中,在计算任务的需求量超过所申请的算力池中的可用算力资源时,还可以租借其他用户的算力资源,而不需要排队等待自身的算力池中的算力资源的调度,可以进一步提升整体资源使用率,减少资源浪费。
一种可选的实施方式中,在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源,包括:
在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,确定所述算力资源余量和所述算力单元需求量之间的算力资源差值;
按照预设调度规则,从其他对象的其他算力池中调度所述算力资源差值大小的算力资源;
将所述算力资源余量和调度的算力资源,确定为所述计算任务的目标算力资源。
本公开实施例中,还可以根据计算任务的需求量,来从其他对象的其他算力池中调度使用,提高了资源利用率。
一种可选的实施方式中,还包括:
采用所述目标对象选择的固定计费方式,对所述目标算力池中算力资源进行计费;
针对从所述其他算力池中调度的算力资源,采用按使用量计费方式进行计费。
本公开实施例中,针对算力资源的不同使用情况,可以提供不同的计费方式,更加灵活,也更加合理化,满足用户的实际所需。
一种可选的实施方式中,每种算力单元类型对应预定义的算力单元,为多种类型的算力资源按照预设比例关系而组合成的,每种算力单元类型对应不同预设比例关系;所述多种类型的算力资源包括以下至少一种:CPU、内存、GPU、异构计算资源。
本公开实施例中,可以将多种类型的算力资源按照一定比例关系进行组合,而形成算力单元,并且还可以定义算力单元类型,不同算力单元类型还可以设置不同的算力单元,这样,可以根据不同算力单元类型的特点,设置不同的比例关系,使得算力资源划分更加合理化,提高灵活性和资源使用率。
一种可选的实施方式中,还包括:
接收所述目标对象的算力池信息查看请求,其中,所述算力池信息查看请求中至少包括算力池标识;
向所述目标对象返回所述算力池标识对应的目标算力池的算力池信息。
本公开实施例中,还可以支持用户查看算力池的相关信息,这样,便于用户及时了解算力池的分配情况、工作情况等。
一种可选的实施方式中,所述方法应用于计算平台,所述计算平台包括上游管理集群和下游作业集群,所述上游管理集群与所述下游作业集群采用预设通信方式进行双向隧道通信;
其中,所述上游管理集群用于与所述目标对象交互并管理所述下游作业集群,所述下游作业集群用于执行计算任务。
本公开实施例中,资源分配方法可以应用于多集群架构的计算平台,并且上游管理集群和下游作业集群可以进行双向隧道通信,这样可以解决集群间控制面数据同步问题,实现跨集群的算力资源分配,提高算力资源的利用率。
第二方面,本公开实施例还提供一种资源分配装置,包括:
第一接收模块,用于接收目标对象的计算任务,其中,所述计算任务中至少包括算力池标识、算力单元类型和算力单元需求量,算力池包括多个算力单元,每种算力单元类型对应预定义算力单元,每个所述算力单元包括多种类型的算力资源;
确定模块,用于确定所述算力池标识对应的目标算力池中,所述算力单元类型对应的算力资源余量是否满足所述算力单元需求量;
分配模块,用于在确定所述算力单元类型对应的算力资源余量满足所述算力单元需求量的情况下,从所述目标算力池中确定所述计算任务的目标算力资源。
一种可选的实施方式中,还包括:
第二接收模块,用于接收所述目标对象的资源申请请求,其中,所述资源申请请求中至少包括算力单元申请量和算力单元类型;
构建模块,用于根据所述资源申请请求中所述算力单元申请量和所述算力单元类型,为所述目标对象分配算力资源,并基于分配的算力资源,构建所述目标对象的目标算力池。
一种可选的实施方式中,所述分配模块还用于:
在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源。
一种可选的实施方式中,在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源时,所述分配模块用于:
在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,确定所述算力资源余量和所述算力单元需求量之间的算力资源差值;
按照预设调度规则,从其他对象的其他算力池中调度所述算力资源差值大小的算力资源;
将所述算力资源余量和调度的算力资源,确定为所述计算任务的目标算力资源。
一种可选的实施方式中,还包括,计费模块用于:
采用所述目标对象选择的固定计费方式,对所述目标算力池中算力资源进行计费;
针对从所述其他算力池中调度的算力资源,采用按使用量计费方式进行计费。
一种可选的实施方式中,每种算力单元类型对应预定义的算力单元,为多种类型的算力资源按照预设比例关系而组合成的,每种算力单元类型对应不同预设比例关系;所述多种类型的算力资源包括以下至少一种:CPU、内存、GPU、异构计算资源。
一种可选的实施方式中,还包括,查看模块用于:
接收所述目标对象的算力池信息查看请求,其中,所述算力池信息查看请求中至少包括算力池标识;
向所述目标对象返回所述算力池标识对应的目标算力池的算力池信息。
一种可选的实施方式中,所述装置应用于计算平台,所述计算平台包括上游管理集群和下游作业集群,所述上游管理集群与所述下游作业集群采用预设通信方式进行双向隧道通信;其中,所述上游管理集群用于与所述目标对象交互并管理所述下游作业集群,所述下游作业集群用于执行计算任务。
第三方面,本公开可选实现方式还提供一种电子设备,包括处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述资源分配装置、电子设备、及计算机可读存储介质的效果描述参见上述资源分配方法的说明,这里不再赘述。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种资源分配方法所应用的计算平台架构示意图;
图2示出了本公开实施例所提供的资源分配方法的流程图;
图3为本公开实施例中算力池结构示意图;
图4示出了本公开实施例所提供的资源分配方法的原理架构图;
图5示出了本公开实施例所提供的资源分配装置的示意图;
图6示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
为便于对本公开技术方案的理解,首先对本公开实施例中的技术用语加以说明:
高性能计算(High performance computing,HPC):通常使用很多处理器(作为单个机器的一部分)或者某一集群中组织的几台计算机(作为单个计算资源操作)的计算系统和环境,可以利用聚集起来的计算能力来处理标准工作站无法完成的数据密集型计算任务。
计算能力:本公开实施例中,将计算能力简称为算力,是通过对信息数据进行处理,实现目标结果输出的计算能力。
Kubernetes:也可以简称为K8s,是一个旨在自动化操作容器的开源平台,支持应用程序容器在多个主机的集群上部署、扩展以及其他操作,采用主从模式来实现其功能,其中,主节点作为控制节点,调度管理整个系统,从节点是运行节点,主要用于运行业务容器。例如,本公开实施例中,可以基于Kubernetes构建计算平台的系统架构,以用于执行本公开实施例中的资源分配方法。
用户自定义资源(Custom Resource Define,CRD):CRD机制允许用户在Kubernetes中根据自己的需求添加自定义的Kubernetes资源对象,并且提供一个CRD控制器,就能通过Kubernetes的应用程序接口(Application Program Interface,API)管理自定义资源对象了,例如,本公开实施例中,可以通过CRD机制来创建算力池的虚拟集群。
经研究发现,高性能计算(HPC)在科学计算等领域发挥着重要的作用,可以给用户分配所需的计算能力资源,而目前用户对于大规模计算任务的需求越来越多,并且大规模计算任务所需要的算力资源也越来越大,如何进行高效的算力资源分配是亟待解决的问题。
基于上述研究,本公开提供了一种资源分配方法,将多种类型的算力资源组合而定义为算力单元,基于算力单元构建算力池,这样,根据目标对象的资源申请请求,为目标用户分配算力资源并构建目标算力池,进而接收到目标对象的计算任务时,根据计算任务中的算力池标识,确定算力池标识对应的目标算力池,并确定目标算力池中所需的算力单元类型对应的算力资源余量是否满足算力单元需求量,在确定满足的情况下,从目标算力池中的算力资源余量中确定该计算任务的目标算力资源,这样,可以先基于目标对象的申请划分出对应的目标算力池,保证目标对象的资源需求,在目标对象发送计算任务时,可以从对应的目标算力池中分配算力资源,提高资源利用率和分配效率,并且本公开实施例中,将算力单元规格化,将多种类型的算力资源进行组合而定义算力单元,将算力单元作为算力资源分配的基础单位,可以同时兼顾对不同类型算力资源的需求,避免出现一种类型算力资源可用,而另一种类型算力资源不足的情况,可以进一步提高分配效率和资源使用率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,先对本公开实施例中资源分配方法的整体原理架构进行简单说明。本公开实施例中,可以基于Kubernetes来进行构建整体架构,当然也可以基于其它方式,具体并不进行限制。
参阅图1所示,为本公开实施例中资源分配方法所应用的计算平台架构示意图,如图1所示,本公开实施例中资源分配方法的整体架构,采用主从分布式架构,主要包括上游管理集群和下游作业集群,上游管理集群与下游作业集群采用预设通信方式进行双向隧道通信。
1)上游管理集群可以包括多个管理节点,主要用于与目标对象交互并管理下游作业集群,进行整体调度管理和控制。上游管理集群中部署有多个server服务以实现其不同的功能,例如,server服务可以控制前端,通过用户界面或命令行界面与前端的用户进行交互,如本公开实施例中,通过server服务可以接收目标对象的计算任务、资源申请请求、算力池信息查看请求等。又例如,本公开实施例中,server服务可以为目标对象构建算力池、记录算力池的相关描述信息、进行算力资源调度等。
2)下游作业集群可以包括多个作业节点,是真正的工作节点,主要用于执行计算任务,例如,本公开实施例中,server服务接收到计算任务后,基于计算任务中算力池标识,从该算力池标识对应的算力池中分配算力资源,进而将计算任务下发到下游作业集群中,下游作业集群基于上游管理集群的分配结果,下游作业集群中相应的作业节点执行该计算任务。
并且,本公开实施例中,在下游作业集群中还部署有多个代理(agent)服务,以提高处理效率和性能,agent服务主要用于与server服务进行信息同步,以及负责各作业节点的任务控制,例如,agent服务通过远程拨号器(remote dialer)实现与上游管理集群之间的心跳链接,进行双向隧道通信,又例如,agent服务中包括控制管理组件(ControllerManager),主要执行集群级别的功能,如追踪和控制各作业节点的工作状态、各用户对应构建的算力池的工作状态、计算任务的执行情况等。
并且,本公开实施例中,还可以支持多集群方案,通常一个server服务可以对应多个agent服务,一个agent服务可以对应一个下游作业集群,具体本公开实施例中并不进行限制,在进行算力资源分配时,还可以进行跨集群的算力资源分配,即可以从其它集群中为计算任务分配算力资源,为了实现跨集群的算力资源分配,需要保证集群间控制面数据同步,具体本公开提供了一种可能的实施方式,上游管理集群与下游作业集群可以通过websocket进行双向隧道通信。
本公开实施例中,采用上游管理集群和下游作业集群的分布式架构,并且下游作业集群和上游管理集群可以进行双向隧道通信,实现信息同步,这样可以解决跨集群的算力资源分配问题,并且本公开实施例中,基于该分布式架构,提供了一种资源分配方法,具体地,可以通过上游管理集群为目标对象构建算力池,并同步算力池信息到下游作业集群,进而在接收到目标对象的计算任务后,可以从该计算任务对应的算力池中,为该计算任务分配算力资源,并同步计算任务到下游作业集群,下游作业集群就可以基于分配的算力资源执行该计算任务,提高了资源利用率,保证了目标对象的算力资源需求。
基于上述实施例,下面对本公开实施例所公开的一种资源分配方法进行详细介绍,本公开实施例所提供的资源分配方法的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、计算设备、车载设备等。在一些可能的实现方式中,该资源分配方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为服务器为例对本公开实施例提供的资源分配方法加以说明。
参见图2所示,为本公开实施例提供的资源分配方法的流程图,该方法包括:
S201:接收目标对象的计算任务,其中,计算任务中至少包括算力池标识、算力单元类型和算力单元需求量,算力池包括多个算力单元,每种算力单元类型对应预定义算力单元,每个算力单元包括多种类型的算力资源。
其中,目标对象为有资源需求的任意用户,例如某个企业、个人等,目标对象可以通过客户端提交计算任务,具体并不进行限制。
例如,目标对象在客户端的交互界面上,输入计算任务的相关信息,并且选择算力池标识、算力单元类型和算力单元需求量,该算力池标识是该目标对象之前申请算力资源时所分配的,进而通过该交互界面进行提交,即向服务器发送了计算任务。
进一步地,本公开实施例中,目标对象在发送计算任务之前,还可以根据需求申请算力资源,进而可以构建该目标对象的算力池,具体提供了一种可能的实施方式:
1)接收目标对象的资源申请请求,其中,资源申请请求中至少包括算力单元申请量和算力单元类型。
其中,资源申请请求的类型可以为超文本传输协议(HyperText TransferProtocol,HTTP)请求,并不进行限制,例如,可以在交互界面上提供所支持的算力单元类型的选项,目标对象可以通过点击或文本框输入等方式来选择所需申请的算力单元类型,如选择的算力单元类型为CPU密集型、内存密集型等,并且还可以针对选择的算力单元类型,对应输入算力单元申请量,如申请3个CPU密集型的算力单元和5个内存密集型的算力单元。
2)根据资源申请请求中算力单元申请量和算力单元类型,为目标对象分配算力资源,并基于分配的算力资源,构建目标对象的目标算力池。
具体地,本公开实施例中,上游管理集群针对该资源申请请求,根据算力单元申请量和算力单元类型,在资源可用区中为该目标对象分配算力资源,并基于分配的算力资源,获得目标对象的目标算力池并生成目标算力池的虚拟集群对象。
并且本公开实施例中,上游管理集群生成目标算力池的虚拟集群对象后,将该虚拟集群对象的关联信息同步到下游作业集群,以使下游作业集群同步记录该虚拟集群对象并为该虚拟集群对象进行实际算力资源划分,其中,虚拟集群对象的关联信息例如包括对应的算力池标识、对应的目标对象的对象标识、包含的算力单元类型、算力单元申请量等。
在另一种可能实施例中,上游管理集群构建目标对象的目标算力池后,还可以将该目标算力池的算力池标识返回给所述目标对象,这样,目标对象可以通过客户端的交互界面获知所分配的算力池,进而在发送计算任务时,可以选择算力池标识,以将计算任务与相应的算力池绑定。
这样,本公开实施例中,目标对象通过发送资源申请请求,就可以完成对该目标对象的算力资源分配,而无需相关技术人员人为进行静态配置,提高了资源分配效率,并且可以针对目标对象,构建对应的算力池以进行算力资源管理,避免不同目标对象之间算力资源的相互影响,提高了管理效率和可靠性。
另外,需要说明的是,本公开实施例中,定义了算力单元概念,算力单元表示算力资源的基础单位,多个算力单元组成算力池,每个算力单元包括多种类型的算力资源,例如,参阅图3所示,为本公开实施例中算力池结构示意图,一个算力池中可以包括多个算力单元,每个算力单元中包括了多种类型的算力资源,例如,中央处理器(CentralProcessing Unit,CPU)、内存、图形处理器(Graphics Processing Unit,GPU)、异构计算资源等。
并且,本公开实施例中,每种算力单元类型对应预定义的算力单元,为多种类型的算力资源按照预设比例关系而组合成的,每种算力单元类型对应不同预设比例关系。
也就是说,本公开实施例中,可以针对不同的算力单元类型而定义不同的算力单元,其中,算力单元类型是与提供算力资源的产品定义相关的,例如,某产品A的产品定义类型为CPU密集型,某产品B的产品定义类型为GPU密集型,则产品A提供的算力资源对应的算力单元类型即可以为CPU密集型,产品B提供的算力资源对应的算力单元类型即可以为GPU密集型,并且可以将多种类型的算力资源按照第一预设比例关系组合而配置为CPU密集型的算力单元,将多种类型的算力资源按照第二预设比例关系组合而配置为GPU密集型的算力单元,当然对于比例关系并不进行限制,例如CPU密集型的算力单元中CPU数量的比例可以更高些,GPU密集型的算力单元中GPU数量的比例可以更高些。
这样,本公开实施例中,组合多种不同类型的算力资源来定义算力单元,将算力单元作为算力资源的基础单位,相比于相关技术中,以固定硬件机器资源或各类计算资源分别作为独立资源单位,无法同时兼容不同类型的算力资源需求,可能某类资源满足所需,某类资源无可用量,而通常一个计算任务的执行是需要多种类型的算力资源的,例如可能会出现该情况,用户把算力资源中CPU资源全部申请了,这时即使有足够的GPU资源剩余,但是仍导致新计算任务无法下发执行,需要等待所有类型的算力资源均满足需求后才能执行,而本公开实施例中,提供了不同算力单元类型对应的算力单元,可以根据类型特点将多种类型的算力资源组合而形成算力单元,以算力单元作为算力资源的计量单位,以进行算力资源的申请和分配,可以合理划分算力资源,使得能够同时兼容对不同类型的算力资源的需求,提高分配效率和资源利用率。
S202:确定算力池标识对应的目标算力池中,算力单元类型对应的算力资源余量是否满足算力单元需求量。
本公开实施例中,目标对象发送计算任务时,可以根据该计算任务的特点,选择执行该计算任务所需的算力单元类型,例如,计算任务为NLP训练任务,可以选择算力单元类型为内存密集型,并且算力单元申请量为2个内存密集型的算力单元,算力池标识为算力池a,则上游管理集群接收到计算任务后,确定算力池a中是否有内存密集型的算力资源,并且确定内存密集型的算力资源余量是否满足2个算力单元的数量,在内存密集型的算力资源余量小于2个算力单元情况下,即确定不满足,在内存密集型的算力资源余量大于等于2个算力单元情况下,确定满足需求。
S203:在确定算力单元类型对应的算力资源余量满足算力单元需求量的情况下,从目标算力池中确定计算任务的目标算力资源。
即本公开实施例中,在自身的目标算力池中算力资源满足所需时,可以从目标算力池中所需算力单元类型对应的算力资源余量中,为该计算任务分配所需的目标算力资源,进而上游管理集群将该计算任务也同步到下游作业集群,下游作业集群中符合该目标算力资源的作业节点,执行该计算任务。
进一步地,本公开实施例中,在目标对象的目标算力池的算力资源余量不满足算力单元需求量的情况下,还可以动态租借其他对象的算力资源,而不是进入队列等待该目标算力池中的资源调度,提升了整体资源使用效率,具体地,本公开提供了一种可能的实施例,在确定算力单元类型对应的算力资源余量不满足算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定计算任务的目标算力资源。
在一种可能的实施方式中,在确定算力单元类型对应的算力资源余量不满足算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定计算任务的目标算力资源,包括:
1)在确定算力单元类型对应的算力资源余量不满足算力单元需求量的情况下,确定算力资源余量和算力单元需求量之间的算力资源差值。
例如,计算任务的算力单元需求量为2个GPU密集型的算力单元,目标算力池中GPU密集型的算力资源余量只有1个算力单元了,这时,计算任务的算力单元需求量超过目标算力池的算力资源余量,可以确定算力资源余量和算力单元需求量之间的算力资源差值为1个算力单元。
2)按照预设调度规则,从其他对象的其他算力池中调度算力资源差值大小的算力资源。
本公开实施例中,可以确定其他对象的其他算力池中的可用算力资源,从其他算力池中的可用算力资源中进行租借,其中,预设调度规则,可以根据需求进行设置,本公开实施例中并不进行限制,本公开实施例中提供了几种可能的调度规则。
例如,预设调度规则可以为按照计算任务的提交顺序,来顺序分配其他算力池中的可用算力资源,例如,当前有两个计算任务,分别为计算任务A和计算任务B,均需要租借其他对象的其他算力池的算力资源,若计算任务A的提交时间早于计算任务B的提交时间,则优先给计算任务A调度其他算力池的算力资源。
又例如,预设调度规则可以为按照任务优先级或对象优先级,来分配其他算力池中的可用算力资源,例如计算任务A的优先级高于计算任务B,则优先给计算任务分配其他算力池的算力资源。
当然,也可以基于多种规则组合来确定调度规则,本公开实施例中并不进行限制,并且本公开实施例中,对于其他对象的其他算力池也不进行限制,可以是任意当前有可用算力资源的算力池,也可以是开放了租借权限的对象的算力池,又例如可以根据其他对象针对算力池的使用率,可以调用使用率较低的其他算力池,保证其他对象对预先申请的算力池的优先使用,又例如,可以根据使用时间段进行调度分配等,这样还可以提高算力池使用的可靠性,满足不同对象的需求。
3)将算力资源余量和调度的算力资源,确定为计算任务的目标算力资源。
例如,目标算力池中GPU密集型的算力资源余量为1个算力单元,调度的算力资源为算力池h中的1个GPU密集型的算力单元,则将目标算力池中的1个GPU密集型的算力单元和算力h中的1个GPU密集型的算力单元,分配给该计算任务,为该计算任务的目标算力资源。
这样,基于分配的目标算力资源,就可以执行该计算任务了,目标算力资源可能对应不同的作业节点,例如,可以将计算任务分成多个子计算任务,进而可以将多个子计算任务分别在不同的作业节点上执行。
在一种可能的实施方式中,在确定不满足的情况下,按照预设调度规则,从其他对象的其他算力池中确定计算任务的目标算力资源时,还可以从其他对象的其他算力池中,直接调度该算力单元需求量大小的算力资源,即在自身的目标算力池中算力资源余量不足时,可以全部租借其他对象的可用算力资源,这样也可以减少资源碎片,提高资源利用率。
这样,本公开实施例中,目标对象可以动态申请算力资源,保证目标对象的算力资源需求,并且在计算任务的需求量超过所申请量时,还可以从其他对象的算力池中调度使用,进一步提高了整体资源使用率。
另外,本公开实施例中,还可以支持用户查看算力池的相关信息,提供了一种可能的实施方式,接收目标对象的算力池信息查看请求,其中,算力池信息查看请求中至少包括算力池标识;向目标对象返回算力池标识对应的目标算力池的算力池信息。
例如,算力池信息可以为算力池的分配状态、工作状态、使用情况等,本公开实施例中不进行限制。
进一步地,为了提高管理效率和可靠性,本公开实施例中,还可以针对目标对象的算力资源使用情况,提供不同的计费方式,具体提供了几种可能的实施方式:
1)采用目标对象选择的固定计费方式,对目标算力池中算力资源进行计费。
例如,针对目标对象的资源申请请求,构建了目标算力池A,对于目标算力池A中的算力资源,该目标对象可以选择包年或包月的固定计费方式,并不进行限制,目标对象可以独占使用目标算力池A中的算力资源,也可以租借给其他对象使用。
2)针对从其他算力池中调度的算力资源,采用按使用量计费方式进行计费。
本公开实施例中,在自身的目标算力池中算力资源不足情况下,还可以租借其他算力池的算力资源,这部分算力资源为针对计算任务的动态分配,因此可以采用计算任务的使用量进行统计和计费,提高效率。
这样,本公开实施例中,可以针对目标对象的资源申请请求,划分可用的目标算力池,对于目标算力池的固定算力资源,支持固定计费方式计费,并且还可以支持租借方式使用其它对象的算力池,提高了资源利用率,对于动态租借的算力资源,还可以根据实际使用量进行计费,更加灵活,满足不同需求,兼顾了公平和效率。
下面采用具体应用场景对本公开实施例中资源分配方法进行说明,参阅图4所示,为本公开实施例中资源分配方法的原理架构图,主要可以分为以下几部分进行说明。
第一部分:算力池的构建。
本公开实施例中的计算平台,可以给不同用户提供不同的资源,这里用户即包括本公开实施例中的目标对象和其他对象,计算平台中提供的资源可以包括多个不同种类的产品的资源,不同产品的资源可以根据产品种类,划分为不同的资源组,例如包括算力池、存储、开发机、容器实例等,并且本公开实施例中,为了更加合理地划分资源,将多种类型算力资源组合以定义为算力单元,将算力单元规格化,用户在需要申请算力资源时,可以从中选择算力池的资源组,然后就可以根据需求输入所需申请的算力单元类型、算力单元申请量等,进而提交针对算力资源的资源申请请求。
例如,如图4中最左侧部分,计算平台包括资源组0,1,..n,在这n+1资源组中包括算力池资源组,用户可以通过交互界面,从中选择算力池资源组。
进而用户提交资源申请请求后,触发上游管理集群在可用区(Available Zone,AZ)构建算力池的虚拟集群(Virtual Cluster,VC),其中,在一个AZ中可以包含多个算力池VC,将算力池定义为VC,并将创建的算力池的相关信息同步到下游作业集群,例如算力池的相关信息包括算力池标识、对象标识、算力单元申请量等,下游作业集群进行具体算力资源划分,下游作业集群中对应有上游管理集群中VC的具体数据实例VC,两者相互对应并且信息同步。
第二部分:计算任务的算力资源分配。
本公开实施例中,构建用户的算力池后,用户下发计算任务时,可以选择对应的算力池标识,进而计算任务可以与对应的算力池绑定,通过上游管理集群同步计算任务的相关信息给下游作业集群,触发计算任务在下游作业集群中执行,分配计算任务的算力资源时,可以从绑定的算力池中分配算力资源,在该绑定的算力池中算力资源的算力资源余量不满足计算任务的算力单元需求量情况下,还可以租借其他用户的算力资源,如图4所示,可以通过工作(job)对象来处理计算任务,一个算力池VC中可以包括多个job对象,即根据计算任务所需的算力单元类型和算力单元需求量,一个算力池通常可以给多个计算任务提供所需的算力资源。
这样,本公开实施例中,以算力单元为基础单位,对算力资源进行划分,可以支持用户申请固定算力资源,也可以支持动态租借其他用户的算力资源,可以提升算力资源的利用率。
基于本公开实施例中的资源分配方法,可以满足不同的使用场景需求,例如一种可能的使用场景,满足多个不同用户的使用场景,用户基于成本考虑,一开始申请的算力池资源可能较少,仅满足一些简单的计算任务需求,例如一些简单的训练验证及前期小批量的训练任务,当该用户的生产训练业务的算力资源需求越来越大后,所需要的算力资源也越来越多,用户可能需要进行动态扩容,这样,基于本公开实施例中的资源分配方法,用户可以提交资源申请请求,申请更多的算力资源,可以快速满足用户所需,并及时扩容使用。
又例如,用户申请的算力池资源可能较少,对于某些大规模的训练任务,用户所申请的算力资源不能满足该训练任务的需求,这时可以通过租借的方式获取其他用户的算力资源,来执行大规模的训练任务。
又例如一种可能的使用场景,还可以满足同一用户关联的多个子用户的使用场景,某大公司客户可以购买大批量的算力资源,该大公司客户的下属有多个用户需要做计算任务,这时,可以基于本公开实施例中的资源分配方法,从该大公司客户购买的算力池中的算力资源,动态给各个下属用户分配算力资源,可以基于各个下属用户的优先等级,也可以基于各个计算任务的重要程度等进行分配,可以高效、公平地划分和使用算力资源。
又例如,某大公司客户为了高效使用算力资源,还可以将购买的大的算力池中的算力资源划分给多个下属用户,基于本公开实施例中的资源分配方法,可以分别针对每个下属用户创建一个子算力池VC,这样,可以使得算力资源在下属用户之间进行隔离,避免造成相互影响,并且还可以支持相互租借空闲的可用算力资源,极大地提高了算力资源使用率。
当然,本公开实施例中的资源分配方法,并不仅限于算力资源的分配场景,还可以应用于容器实例、开发机等资源分配场景,对此并不进行限制。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与资源分配方法对应的资源分配装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述资源分配方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图5所示,为本公开实施例提供的资源分配装置的示意图,该装置包括:
第一接收模块50,用于接收目标对象的计算任务,其中,所述计算任务中至少包括算力池标识、算力单元类型和算力单元需求量,算力池包括多个算力单元,每种算力单元类型对应预定义算力单元,每个所述算力单元包括多种类型的算力资源;
确定模块51,用于确定所述算力池标识对应的目标算力池中,所述算力单元类型对应的算力资源余量是否满足所述算力单元需求量;
分配模块52,用于在确定所述算力单元类型对应的算力资源余量满足所述算力单元需求量的情况下,从所述目标算力池中确定所述计算任务的目标算力资源。
一种可选的实施方式中,还包括:
第二接收模块53,用于接收所述目标对象的资源申请请求,其中,所述资源申请请求中至少包括算力单元申请量和算力单元类型;
构建模块54,用于根据所述资源申请请求中所述算力单元申请量和所述算力单元类型,为所述目标对象分配算力资源,并基于分配的算力资源,构建所述目标对象的目标算力池。
一种可选的实施方式中,所述分配模块52还用于:
在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源。
一种可选的实施方式中,在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源时,所述分配模块52用于:
在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,确定所述算力资源余量和所述算力单元需求量之间的算力资源差值;
按照预设调度规则,从其他对象的其他算力池中调度所述算力资源差值大小的算力资源;
将所述算力资源余量和调度的算力资源,确定为所述计算任务的目标算力资源。
一种可选的实施方式中,还包括,计费模块55用于:
采用所述目标对象选择的固定计费方式,对所述目标算力池中算力资源进行计费;
针对从所述其他算力池中调度的算力资源,采用按使用量计费方式进行计费。
一种可选的实施方式中,每种算力单元类型对应预定义的算力单元,为多种类型的算力资源按照预设比例关系而组合成的,每种算力单元类型对应不同预设比例关系;所述多种类型的算力资源包括以下至少一种:CPU、内存、GPU、异构计算资源。
一种可选的实施方式中,还包括,查看模块56用于:
接收所述目标对象的算力池信息查看请求,其中,所述算力池信息查看请求中至少包括算力池标识;
向所述目标对象返回所述算力池标识对应的目标算力池的算力池信息。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种电子设备,如图6所示,为本公开实施例提供的电子设备结构示意图,包括:
处理器61和存储器62;所述存储器62存储有处理器61可执行的机器可读指令,处理器61用于执行存储器62中存储的机器可读指令,所述机器可读指令被处理器61执行时,处理器61执行下述步骤:
接收目标对象的计算任务,其中,所述计算任务中至少包括算力池标识、算力单元类型和算力单元需求量,算力池包括多个算力单元,每种算力单元类型对应预定义算力单元,每个所述算力单元包括多种类型的算力资源;
确定所述算力池标识对应的目标算力池中,所述算力单元类型对应的算力资源余量是否满足所述算力单元需求量;
在确定所述算力单元类型对应的算力资源余量满足所述算力单元需求量的情况下,从所述目标算力池中确定所述计算任务的目标算力资源。
一种可选的实施方式中,处理器61还用于:
接收所述目标对象的资源申请请求,其中,所述资源申请请求中至少包括算力单元申请量和算力单元类型;
根据所述资源申请请求中所述算力单元申请量和所述算力单元类型,为所述目标对象分配算力资源,并基于分配的算力资源,构建所述目标对象的目标算力池。
一种可选的实施方式中,处理器61还用于:在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源。
一种可选的实施方式中,在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源时,所述处理器61用于:
在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,确定所述算力资源余量和所述算力单元需求量之间的算力资源差值;
按照预设调度规则,从其他对象的其他算力池中调度所述算力资源差值大小的算力资源;
将所述算力资源余量和调度的算力资源,确定为所述计算任务的目标算力资源。
一种可选的实施方式中,处理器61还用于:
采用所述目标对象选择的固定计费方式,对所述目标算力池中算力资源进行计费;
针对从所述其他算力池中调度的算力资源,采用按使用量计费方式进行计费。
一种可选的实施方式中,每种算力单元类型对应预定义的算力单元,为多种类型的算力资源按照预设比例关系而组合成的,每种算力单元类型对应不同预设比例关系;所述多种类型的算力资源包括以下至少一种:CPU、内存、GPU、异构计算资源。
一种可选的实施方式中,处理器61还用于:
接收所述目标对象的算力池信息查看请求,其中,所述算力池信息查看请求中至少包括算力池标识;
向所述目标对象返回所述算力池标识对应的目标算力池的算力池信息。
一种可选的实施方式中,所述电子设备应用于计算平台,所述计算平台包括上游管理集群和下游作业集群,所述上游管理集群与所述下游作业集群采用预设通信方式进行双向隧道通信;其中,所述上游管理集群用于与所述目标对象交互并管理所述下游作业集群,所述下游作业集群用于执行计算任务。
上述存储器62包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的资源分配方法的步骤,此处不再赘述。
另外需要说明的是,本公开实施例中的上游管理集群和下游作业集群,可以包括多个不同的电子设备,以实现相应的功能,并且本公开实施例中,针对不同类型的算力资源,可以对应有不同类型的电子设备,例如,GPU电子设备、xPU电子设备、FPGA电子设备等,多个不同类型的电子设备都连接到系统总线,以通过系统总线进行通信。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的资源分配方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的资源分配方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (11)

1.一种资源分配方法,其特征在于,包括:
接收目标对象的计算任务,其中,所述计算任务中至少包括算力池标识、算力单元类型和算力单元需求量,算力池包括多个算力单元,每种算力单元类型对应预定义算力单元,每个所述算力单元包括多种类型的算力资源;
确定所述算力池标识对应的目标算力池中,所述算力单元类型对应的算力资源余量是否满足所述算力单元需求量;
在确定所述算力单元类型对应的算力资源余量满足所述算力单元需求量的情况下,从所述目标算力池中确定所述计算任务的目标算力资源。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述目标对象的资源申请请求,其中,所述资源申请请求中至少包括算力单元申请量和算力单元类型;
根据所述资源申请请求中所述算力单元申请量和所述算力单元类型,为所述目标对象分配算力资源,并基于分配的算力资源,构建所述目标对象的目标算力池。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源。
4.根据权利要求3所述的方法,其特征在于,在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,按照预设调度规则,从其他对象的其他算力池中确定所述计算任务的目标算力资源,包括:
在确定所述算力单元类型对应的算力资源余量不满足所述算力单元需求量的情况下,确定所述算力资源余量和所述算力单元需求量之间的算力资源差值;
按照预设调度规则,从其他对象的其他算力池中调度所述算力资源差值大小的算力资源;
将所述算力资源余量和调度的算力资源,确定为所述计算任务的目标算力资源。
5.根据权利要求3或4所述的方法,其特征在于,还包括:
采用所述目标对象选择的固定计费方式,对所述目标算力池中算力资源进行计费;
针对从所述其他算力池中调度的算力资源,采用按使用量计费方式进行计费。
6.根据权利要求1所述的方法,其特征在于,每种算力单元类型对应预定义的算力单元,为多种类型的算力资源按照预设比例关系而组合成的,每种算力单元类型对应不同预设比例关系;
所述多种类型的算力资源包括以下至少一种:中央处理器CPU、内存、图像处理器GPU、异构计算资源。
7.根据权利要求1所述的方法,其特征在于,还包括:
接收所述目标对象的算力池信息查看请求,其中,所述算力池信息查看请求中至少包括算力池标识;
向所述目标对象返回所述算力池标识对应的目标算力池的算力池信息。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法应用于计算平台,所述计算平台包括上游管理集群和下游作业集群,所述上游管理集群与所述下游作业集群采用预设通信方式进行双向隧道通信;
其中,所述上游管理集群用于与所述目标对象交互并管理所述下游作业集群,所述下游作业集群用于执行计算任务。
9.一种资源分配装置,其特征在于,包括:
第一接收模块,用于接收目标对象的计算任务,其中,所述计算任务中至少包括算力池标识、算力单元类型和算力单元需求量,算力池包括多个算力单元,每种算力单元类型对应预定义算力单元,每个所述算力单元包括多种类型的算力资源;
确定模块,用于确定所述算力池标识对应的目标算力池中,所述算力单元类型对应的算力资源余量是否满足所述算力单元需求量;
分配模块,用于在确定所述算力单元类型对应的算力资源余量满足所述算力单元需求量的情况下,从所述目标算力池中确定所述计算任务的目标算力资源。
10.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至8任一项所述的资源分配方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时,所述处理器执行如权利要求1至8任意一项所述的资源分配方法的步骤。
CN202211203928.0A 2022-09-29 2022-09-29 一种资源分配方法、装置、电子设备及存储介质 Pending CN115543615A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211203928.0A CN115543615A (zh) 2022-09-29 2022-09-29 一种资源分配方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211203928.0A CN115543615A (zh) 2022-09-29 2022-09-29 一种资源分配方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115543615A true CN115543615A (zh) 2022-12-30

Family

ID=84732056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211203928.0A Pending CN115543615A (zh) 2022-09-29 2022-09-29 一种资源分配方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115543615A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115840649A (zh) * 2023-02-16 2023-03-24 浙江云针信息科技有限公司 划分容量块式虚拟资源分配方法及装置、存储介质和终端
CN115858179A (zh) * 2023-02-16 2023-03-28 北京虹宇科技有限公司 一种自动发现组网的计算单元协同服务方法、装置及设备
CN116820687A (zh) * 2023-08-29 2023-09-29 银河麒麟软件(长沙)有限公司 基于kubelet的NUMA架构资源分配方法及系统
CN117194991A (zh) * 2023-11-03 2023-12-08 四川并济科技有限公司 基于gpu集群的高维数据推荐系统及方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115840649A (zh) * 2023-02-16 2023-03-24 浙江云针信息科技有限公司 划分容量块式虚拟资源分配方法及装置、存储介质和终端
CN115858179A (zh) * 2023-02-16 2023-03-28 北京虹宇科技有限公司 一种自动发现组网的计算单元协同服务方法、装置及设备
CN116820687A (zh) * 2023-08-29 2023-09-29 银河麒麟软件(长沙)有限公司 基于kubelet的NUMA架构资源分配方法及系统
CN116820687B (zh) * 2023-08-29 2023-12-05 银河麒麟软件(长沙)有限公司 基于kubelet的NUMA架构资源分配方法及系统
CN117194991A (zh) * 2023-11-03 2023-12-08 四川并济科技有限公司 基于gpu集群的高维数据推荐系统及方法
CN117194991B (zh) * 2023-11-03 2024-02-13 四川并济科技有限公司 基于gpu集群的高维数据推荐系统及方法

Similar Documents

Publication Publication Date Title
US11263084B2 (en) Saving program execution state
CN115543615A (zh) 一种资源分配方法、装置、电子设备及存储介质
US9792155B2 (en) Dynamic job processing based on estimated completion time and specified tolerance time
Van den Bossche et al. Online cost-efficient scheduling of deadline-constrained workloads on hybrid clouds
CN106919445B (zh) 一种在集群中并行调度容器的方法和装置
Li et al. Adaptive resource allocation for preemptable jobs in cloud systems
Calheiros et al. Cost-effective provisioning and scheduling of deadline-constrained applications in hybrid clouds
CN109034396B (zh) 用于处理分布式集群中的深度学习作业的方法和装置
JP6254949B2 (ja) 仮想マシンプールにおけるリソースの価格設定
Tumanov et al. alsched: Algebraic scheduling of mixed workloads in heterogeneous clouds
US8701112B2 (en) Workload scheduling
WO2020113310A1 (en) System and method for resource partitioning in distributed computing
CN111966500A (zh) 资源调度方法、装置、电子设备及存储介质
US10884801B2 (en) Server resource orchestration based on application priority
US10884800B2 (en) Server resource balancing using a suspend-resume strategy
US11126466B2 (en) Server resource balancing using a fixed-sharing strategy
Soner et al. Integer programming based heterogeneous cpu–gpu cluster schedulers for slurm resource manager
US11307898B2 (en) Server resource balancing using a dynamic-sharing strategy
CN113946431B (zh) 一种资源调度方法、系统、介质及计算设备
KR20190028210A (ko) 컨테이너 기반 인공지능 어플리케이션을 배포하는 클라우드 서비스 방법과 시스템
CN114721818A (zh) 一种基于Kubernetes集群的GPU分时共享方法和系统
Hung et al. Task scheduling for optimizing recovery time in cloud computing
Singh et al. Scheduling algorithm with load balancing in cloud computing
García et al. An efficient cloud scheduler design supporting preemptible instances
Choi et al. Gpsf: general-purpose scheduling framework for container based on cloud environment

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