CN117971498A - 计算集群中gpu资源的调度方法、电子设备和存储介质 - Google Patents

计算集群中gpu资源的调度方法、电子设备和存储介质 Download PDF

Info

Publication number
CN117971498A
CN117971498A CN202410362111.0A CN202410362111A CN117971498A CN 117971498 A CN117971498 A CN 117971498A CN 202410362111 A CN202410362111 A CN 202410362111A CN 117971498 A CN117971498 A CN 117971498A
Authority
CN
China
Prior art keywords
gpu
resources
resource
gpu resources
client
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
CN202410362111.0A
Other languages
English (en)
Other versions
CN117971498B (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.)
Kirin Software Co Ltd
Original Assignee
Kirin Software 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 Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202410362111.0A priority Critical patent/CN117971498B/zh
Publication of CN117971498A publication Critical patent/CN117971498A/zh
Application granted granted Critical
Publication of CN117971498B publication Critical patent/CN117971498B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及计算集群中GPU资源的调度方法、电子设备和存储介质。该方法包括:获取计算集群中各个物理节点上的GPU信息;根据接收到的客户端的GPU资源请求,以及所述计算集群中各个物理节点的GPU信息,基于预定的GPU分配规则,为所述客户端分配所述计算集群中的GPU资源;所述GPU资源请求包括GPU资源调用请求和GPU资源释放请求。本发明既能够有效提高计算集群中GPU资源的利用率,降低GPU资源碎片化,使得用户被分配到的GPU资源更加集中,计算集群能够相应更多用户的GPU资源请求;又能够充分满足用户的保密需要。

Description

计算集群中GPU资源的调度方法、电子设备和存储介质
技术领域
本发明涉及计算资源分配领域,具体涉及计算集群中GPU资源的调度方法、电子设备和存储介质。
背景技术
近年来,由于模型复杂度增加、数据量增长、越来越多样化的应用场景、实时推理和边缘计算需求增加,人工智能(AI)算力需求呈现出快速增长的趋势,对大规模计算资源的需求也逐渐增长。因此,大集群应用在各个行业中变得越来越广泛,云计算平台和大规模集群技术的发展使得获取和使用大规模计算资源更加便捷和经济。各种云服务提供商纷纷推出高性能计算服务,使得大集群应用变得更为广泛。
现有技术中的集群GPU资源调度***和方法(公开号CN102541640A)用以解决现有的单个GPU无法承载复杂计算任务,且现有的集群GPU资源调度方式效率不高、且集群中的GPU卡无法即插即用的问题。该发明提供的集群GPU资源调度***和方法能够实现GPU资源的充分利用,使多个计算任务并行执行,此外,还能够实现集群中各子节点GPU的即插即用。然而该方案以用户提交的任务为核心进行任务调度,并不涉及基于用户直接远程请求GPU资源的调度与分配方法。
现有技术中的基于CUDA的GPU资源调度***和方法(公开号CN110471766A)针对不同类型的应用采用不同的GPU特性,提高整个***中GPU的利用率,加速应用在GPU中的运行效率。该***可以针对应用需求,动态切换GPU模式,根据应用需要选择最适合应用的GPU类型及其需要的GPU Factor,同一用户多个应用可通过GPU MPS以独占的方式共享使用GPU,提高GPU利用率;支持IBM NK互联的GPU上,通过把当前GPU的主要特性应用于资源调Power和NVIDIA DGX两种GPU NVLINK拓扑,将应用分配到带有NVLI度***中,提高了这个***的GPU资源利用率以及应用的运行效率,以解决上述背景技术中提出的问题,然而,该方案并未解决如何处理小于一个GPU的资源请求和如何避免GPU资源碎片化的问题
因此,以上述现有技术为例,当前在使用大规模集群中的图形处理器(GPU)资源时,并不是所有用户都能直接在集群中的物理机上使用。大部分用户则是通过网络远程访问GPU资源,利用容器、k8s等方法将任务和数据上传到集群进行训练或者推理。但对于一部分不愿意提交自己的数据到云端的远程访问用户来说,这种GPU资源的使用方式并不能满足这类远程访问用户的应用需求。另外,由于当前大多数GPU资源的调度方式均是以任务为调度单位,因此无法处理任务所需的GPU资源小于1导致的GPU资源碎片化的问题。
在满足用户需求的前提下,当用户的请求上传到集群时,若不合理地进行资源分配,则很有可能影响用户的使用体验或导致集群中的GPU资源浪费,在用户释放GPU资源时,若不及时对集群内资源分配进行调整,则有导致GPU资源碎片化、集群资源利用率下降的风险。
发明内容
本发明的主要目的是提供计算集群中GPU资源的调度方法、电子设备和存储介质,以消除或改善现有技术中存在的一个或多个缺陷。
为了完成上述目的,本发明一个方面提供了一种计算集群中GPU资源的调度方法,包括以下步骤:
获取计算集群中各个物理节点上的GPU信息,所述GPU信息包括GPU利用信息和GPU位置信息;
根据接收到的客户端的GPU资源请求,以及所述计算集群中各个物理节点的GPU信息,基于预定的GPU分配规则,为所述客户端分配所述计算集群中的GPU资源;所述GPU资源请求包括GPU资源调用请求和GPU资源释放请求。
本申请的一个或多个实施例中,所述GPU分配规则是基于GPU资源的分配原则预先确定的,所述GPU资源的调度原则包括针对资源调度请求的调度原则以及针对资源释放请求的调度原则。
本申请的一个或多个实施例中,若接收到的GPU资源调用请求对应的客户端目前没有占用计算集群中任一物理节点中的GPU资源,基于针对资源调度请求的调度原则确定的GPU分配规则包括:
(1)若所述GPU资源调用请求所需的GPU资源数等于1,则在所述计算集群中的各个物理节点中,选择空闲GPU资源满足所述GPU资源调用请求,且与所述GPU资源调用请求所需的GPU资源最相近的物理节点,将选择的物理节点的GPU资源分配给该客户端;
(2)若所述GPU资源调用请求中请求的GPU资源数小于1,则优先在所述计算集群中GPU资源已被部分调用的物理节点中,按照与(1)相同的分配规则进行分配;若所述计算集群中所有GPU资源已被调用的物理节点中的空闲GPU资源都无法满足所述GPU资源调用请求,则在所述计算集群中GPU资源未被调用的物理节点中,按照与(1)相同的分配原则进行分配;
(3)若所述GPU资源调用请求中请求的GPU资源数大于1,则优先在其内的空闲GPU资源之间存在高速连接通道的物理节点中,按照与(1)相同的分配规则进行分配;若所有的物理节点其内的空闲GPU资源之间均不存在高速连接通道,则在所述计算集群中的所有物理节点中,按照与(1)相同的分配规则进行分配。
本申请的一个或多个实施例中,基于针对资源调度请求的调度原则确定的GPU分配规则,还包括:
若所选择出的所有物理节点的空闲GPU资源均小于此次GPU资源调度请求所需要的GPU资源,则将所选择出的物理节点的按照空闲GPU资源从大到小排序,优先分配空闲GPU资源最大的物理节点的GPU资源给客户端,直至能够从剩下的物理节点中选择出空闲GPU资源满足所述GPU资源调用请求剩下所需的GPU资源,且与所述GPU资源调用请求所需的GPU资源最相近的物理节点,将选择出的物理节点的GPU资源分配给客户端。
本申请的一个或多个实施例中,若接收到的GPU资源调用请求对应的客户端在本次调用之前,已经占用计算集群中物理节点中的GPU资源,基于针对资源调度请求的调度原则确定的所述GPU分配规则,包括:
优先在该客户端已调用GPU资源对应的物理节点中,选择空闲GPU资源满足此次GPU资源调用请求的物理节点,且与所述GPU资源调动请求所需的GPU资源最相近的物理节点,将选择的物理节点的GPU资源分配给该客户端;
若该客户端已调用GPU资源对应的物理节点中的空闲GPU资源不能满足此次GPU资源调用请求,则选择所述计算集群中能满足该客户端的所有GPU资源调用请求之和,且与该客户端所有GPU资源调用请求之和最相近的物理节点,将该客户端已调用的GPU资源迁移至选择的物理节点中,并根据所述GPU资源调用请求将选择的物理节点的GPU资源分配给该客户端;
若所述计算集群中没有能满足该客户端的所有GPU资源调用请求之和的物理节点,则将该客户端已调用的GPU资源对应的物理节点的空闲GPU资源分配给该客户端,在对应的物理节点中执行GPU资源分配后,针对剩余的GPU资源调用请求需求的GPU资源,优先在其内的空闲GPU资源之间存在高速连接通道的物理节点中,按照上述GPU分配规则进行进一步调度;若所有的物理节点其内的空间GPU资源之间均不存在高速连接通道,则在所述计算集群中的所有物理节点中,按照上述GPU分配规则进行进一步调度。
本申请的一个或多个实施例中,基于针对资源释放请求的调度原则确定的GPU分配规则包括:
根据所述GPU资源释放请求在对应的第一物理节点集群中释放GPU资源,将满足资源迁移条件的第一GPU资源整合到第二物理节点集群中对应的物理节点中,使得该客户端所占用的GPU资源所属的物理节点最少;所述第一物理节点集群包括GPU资源释放请求对应的所有物理节点,所述第一GPU资源为所述第一物理节点集群经过GPU资源释放后剩下的被调用的各个GPU资源,所述第二物理节点集群包括调用所述第一GPU资源的客户端在所述计算集群中调用的除第一物理节点集群外的其他所有物理节点;
针对所述第一物理节点集群中的所有物理节点以及所述第一物理节点集群中的所有物理节点,将其中被调用的GPU资源数小于1的GPU资源调用请求合并同一个GPU上。
本申请的一个或多个实施例中,所述方法还包括:对所述计算集群中被调用的GPU资源进行整合:当到达预设的GPU资源整合时间时,对各物理节点中被调用的GPU资源进行整合,将所有物理节点中被调用的GPU资源数小于1的GPU资源调用请求合并到同一个GPU上。
本发明的另一方面提供了一种电子设备,包括处理器和存储器,其特征在于,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时,该电子设备实现上述计算集群中GPU资源的调度方法。
本发明的另一方面提供了一种计算机可读存储单元,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述的计算集群中GPU资源的调度方法。
由上述方案可见,本发明的有益效果为:本发明根据客户端的GPU资源请求直接将计算集群的GPU资源分配给对应的客户端,以使得该客户端可以直接调用计算集群中相应的GPU资源,既可以提高计算集群中GPU资源的利用率,降低GPU资源碎片化,使得用户被分配到的GPU资源更加集中,又可以满足用户的保密需要。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明一实施例的计算集群中GPU资源的调度流程图。
图2是针对没有拥有所述计算集群的GPU资源的客户端的GPU分配规则对应的分配流程图。
图3是针对已拥有所述计算集群的GPU资源的客户端的GPU分配规则对应的分配流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
针对上述背景技术中提出的技术问题,本申请提供了计算集群中GPU资源的调度方法、电子设备和存储介质。该方法以用户所需的GPU资源为基准,向用户分配计算集群中的GPU资源,以使得用户能够直接远程调用计算集群中的GPU资源,并使得计算集群中的GPU资源得到合理分配,同时保证计算集群的计算效率和资源利用率。本申请提供的计算集群中GPU资源的调度方法,如图1所示,包括如下步骤:
步骤S1,对计算集群进行初始化:由中央控制器对整个计算集群中的所有GPU信息进行统计和保存,并将该计算集群中的所有GPU资源置于未使用状态。
步骤S2,获取计算集群中的各个物理节点的GPU信息,所述GPU信息包括GPU利用信息和GPU位置信息;并将所述计算集群中的各个物理节点的GPU信息存储于GPU资源调用数据表,使得所述中央控制器能够在获取的计算集群中的各个GPU信息的基础上,根据从客户端接收到的GPU资源请求为用户分配合适的GPU资源或对所述计算集群中的被调用的GPU资源进行整合。
所述GPU利用信息用于指示该GPU的资源利用情况,包括GPU资源利用率、空闲GPU资源等各物理节点的GPU资源情况;所述GPU位置信息用于指示该GPU在计算集群中的位置相关信息,包括该GPU所处的物理节点,以及该GPU与其他GPU之间的连接方式等GPU位置相关的信息。
本申请的一个或多个实施例中,利用拥有大量GPU资源的计算集群面向普通用户提供GPU算力服务,由中央控制器执行计算集群中GPU资源的调用。所述中央控制器与计算集群中的各个物理节点分别相接,用于获取各个物理节点的GPU信息,还用于根据计算集群中各个物理节点的GPU信息构建该计算集群的拓扑树;所述中央控制器与用户的客户端相接,用于接收客户端发出的GPU资源请求,用于根据客户端的GPU资源请求和计算集群的GPU信息分配GPU资源,还用于根据计算集群的GPU信息和各个客户端应用GPU资源的GPU信息整理各个客户端的GPU资源调用。
所述GPU资源请求包括GPU资源调用请求和GPU资源释放请求。当客户端的GPU资源调用请求上传至计算集群中时,在满足用户需求的前提下,若不合理地进行资源分配,很有可能影响用户使用GPU资源的使用体验,或造成计算集群中GPU资源的浪费;当客户端的GPU资源释放请求上传至计算集群中时,若不及时调整所述计算集群中GPU资源的分配,容易造成GPU资源碎片化,导致计算集群的GPU资源利用率下降。针对上述计算集群中GPU资源分配过程容易出现的问题,本发明提供的计算集群中GPU资源的调度方法执行以下步骤S3。
步骤S3,根据接收到的客户端的GPU资源请求,以及所述计算集群中的GPU信息,基于预定的GPU分配规则,为所述客户端分配所述计算集群中的GPU资源或者对所述计算集群中被调用的GPU资源进行整合。
本申请的一个或多个实施例中,基于计算集群中的GPU资源的调度原则,确定该实施例中对于计算集群中GPU资源预定的GPU分配规则,并由中央控制器与所述计算集群的各个物理节点以及客户端分别相接,执行预定的GPU分配规则;所述GPU资源的调度原则包括针对资源调度请求的调度原则以及针对资源释放请求的调度原则。
本实施例的计算集群中,GPU资源的计量单位为0.1个GPU,每个物理节点中的GPU资源的GPU资源数至少为1个GPU,该计算集群作为服务端可以接受GPU资源请求的最小的GPU资源单位为0.1个GPU;所述预定的GPU分配规则包括两种情况:针对客户端的资源调用请求及资源释放请求。
一、资源调度请求
当接收到的客户端的GPU资源请求为GPU资源调用请求时,所述GPU分配规则包括:针对没有拥有所述计算集群的GPU资源的客户端(即该客户端目前没有占用计算集群中任一个物理节点中的GPU资源)的GPU分配规则,以及针对已拥有所述计算集群的GPU资源的客户端(即该客户端在本次调用之前,已经占用有计算集群中物理节点中的GPU资源)的GPU分配规则。
1、针对没有拥有所述计算集群的GPU资源的客户端的GPU分配规则,如图2所示:
(1)若所述GPU资源调用请求所需的GPU资源数等于1,则在所述计算集群中的各个物理节点中,选择空闲GPU资源满足所述GPU资源调用请求,且与所述GPU资源调用请求所需的GPU资源最相近的物理节点,将选择的物理节点的GPU资源分配给该客户端(对应图1中“是否存在空闲资源相匹配的物理节点”中,“是”所指向的“选择空闲资源最匹配的物理节点”);
(2)若所述GPU资源调用请求中请求的GPU资源数小于1,则优先在所述计算集群中GPU资源已被部分调用的物理节点中,选择空闲GPU资源满足所述GPU资源调用请求,且与所述GPU资源调用请求所需的GPU资源最相近的物理节点,将选择的物理节点的GPU资源分配给该客户端(对应图2中“GPU已被占用的物理节点是否可分配”中,“是”所指向逻辑);若所述计算集群中所有GPU资源已被调用的物理节点中的空闲GPU资源都无法满足所述GPU资源调用请求(对应图2中“GPU已被占用的物理节点是否可分配”中,“否”所指向逻辑),则在所述计算集群中GPU资源未被调用的物理节点中,选择空闲GPU资源满足所述GPU资源调用请求,且与所述GPU资源调用请求所需的GPU资源最相近的物理节点,将选择的物理节点的GPU资源分配给该客户端(对应图2中“GPU未被占用的物理节点是否可分配”中,“是”所指向逻辑);
(3)若所述GPU资源调用请求中请求的GPU资源数大于1,则优先在其内的空闲GPU资源之间存在高速连接通道的物理节点中,基于与(1)相同的原则,从这些物理节点中选择空闲GPU资源满足所述GPU资源调用请求,且与所述GPU资源调用请求所需的GPU资源最相近的物理节点,将选择的物理节点的GPU资源分配给该客户端(对应图2中“是否存在高速连接通道物理节点”中,“是”所指向的“空闲资源是否相匹配”之后,“是”所指向逻辑)(在分配时,也应分配相应物理节点中存在高速连接通道的空闲GPU资源);若所有其内的空闲GPU资源之间存在高速连接通道的物理节点中的空闲GPU资源均无法满足所述GPU资源调用请求(对应图2中“是否存在高速连接通道物理节点”中,“是”所指向的“空闲资源是否相匹配”之后,“否”所指向逻辑),或者,若所有的物理节点其内的空闲GPU资源之间均不存在高速连接通道(对应图2中“是否存在高速连接通道物理节点”中,“否”所指向逻辑),则直接按照与(1)相同的原则进行分配。
在上述(1)-(3)中,在基于空闲GPU资源与所述GPU资源调用请求所需的GPU资源最相近的物理节点的原则进行GPU资源分配时,若所选择出的所有物理节点的空闲GPU资源均小于此次GPU资源调度请求所需要的GPU资源(对应图2“是否存在空闲资源相匹配的物理节点”和/或“GPU未被占用的物理节点中是否可分配”中,“否”所指向的逻辑),则将所选择出的物理节点的按照空闲GPU资源大小从大到小排序,优先分配空闲GPU资源最大的物理节点的GPU资源给客户端,直至能够从剩下的物理节点中选择出空闲GPU资源满足所述GPU资源调用请求剩下所需的GPU资源,且与所述GPU资源调用请求所需的GPU资源最相近的物理节点,进而在选择出的物理节点中将与所述GPU资源调用请求剩下所需的GPU资源相等的空闲GPU资源分配给客户端。
2、针对已拥有所述计算集群的GPU资源的客户端的GPU分配规则,如图3所示:
(1)优先在该客户端已调用GPU资源对应的物理节点中,选择空闲GPU资源满足此次GPU资源调用请求,且与所述GPU资源调动请求所需的GPU资源最相近的物理节点,将选择的物理节点的GPU资源分配给该客户端(对应图3中“已调用GPU资源对应物理节点是否可满足此次请求”中,“是”所指向的逻辑);
在按照该原则进行分配时,针对满足的物理节点仅一个且这个物理节点内的GPU资源(不限于空闲GPU资源,因为该客户端的GPU资源调度请求已占用了部分GPU资源,而占用的这部分GPU资源也应考虑到此次的调度策略中)之间存在高速连接通道,同时该客户端的所有GPU资源调用请求所需GPU资源数大于1的情况,应分配该物理节点中存在高速连接通道的GPU资源给客户端(具体原则是将高速连接通道的GPU资源分配给客户端所有GPU资源调用请求的整合)(此部分对应图3“物理节点数”中,“=1”指向的逻辑)。
若满足的物理节点不只一个,则按照上文1部分中,针对没有拥有所述计算集群的GPU资源的客户端的GPU分配规则,从选择出的多个满足的物理节点中进行进一步的调度(此部分对应图3“物理节点数”中,“>1”指向的逻辑);
(2)若该客户端已调用GPU资源对应的物理节点中的空闲GPU资源不能满足此次GPU资源调用请求,则选择所述计算集群中能满足该客户端的所有GPU资源调用请求之和,且与该客户端所有GPU资源调用请求之和最相近的物理节点,将该客户端已调用的GPU资源迁移至选择的物理节点中,并根据所述GPU资源调用请求将选择的物理节点的GPU资源分配给该客户端(对应图3中“已调用GPU资源对应物理节点是否可满足此次请求”中,“否”所指向“是否存在满足客户端所有GPU资源调用请求之和的物理节点”之后“是“所指向的逻辑);
在按照该原则进行分配时,针对满足的物理节点仅一个,且这个物理节点内的空闲GPU资源之间存在高速连接通道,同时该客户端的所有GPU资源调用请求所需GPU资源数大于1的情况,应分配该物理节点中存在高速连接通道的空闲GPU资源给该客户端(具体原则是将高速连接通道的空间GPU资源分配给客户端所有GPU资源调用请求的整合)(此部分对应图3“物理节点数”中,“=1”指向的逻辑);
若满足的物理节点不只一个,则按照上文1部分中,针对没有拥有所述计算集群的GPU资源的客户端的GPU分配规则,从选择出的多个满足的物理节点中进行进一步的调度(此部分对应图3“物理节点数”中,“>1”指向的,逻辑);
(3)若所述计算集群中没有能满足该客户端的所有GPU资源调用请求之和的物理节点,则将该客户端已调用的GPU资源对应的物理节点的空闲GPU资源分配给该客户端,在对应的物理节点中执行GPU资源分配后,针对剩余的GPU资源调用请求需求的GPU资源,优先在其内的空闲GPU资源之间存在高速连接通道的物理节点中,按照上文1部分中,针对没有拥有所述计算集群的GPU资源的客户端的GPU分配规则进行进一步调度;若所有的物理节点其内的空间GPU资源之间均不存在高速连接通道,则按照上文1部分中,针对没有拥有所述计算集群的GPU资源的客户端的GPU分配规则进行进一步调度(即图3“物理节点数”中,“>1”指向的逻辑中所对应的“在剩下的物理节点中进行进一步调度“)。
二、资源释放请求
当接收到的客户端的GPU资源请求为GPU资源释放请求时,将所述GPU资源释放请求对应的所有物理节点作为第一物理节点集群,第一物理节点集群中的单个物理节点为第一物理节点,将所述第一物理节点集群经过GPU资源释放后剩下的被调用的GPU资源作为第一GPU资源,将调用第一GPU资源的客户端在所述计算集群中除第一物理节点集群外的其他物理节点组合中调用的GPU资源作为第二GPU资源,将所述第二GPU资源所对应的所有物理节点作为第二物理节点集群。第二物理节点集群中的单个物理节点为第二物理节点。
所述GPU分配规则包括:根据所述GPU资源释放请求在对应的第一物理节点集群中释放GPU资源,尽可能将第一GPU资源整合到占用第一GPU资源的客户端所占用的其他物理节点(即第二物理节点)中,使个客户端所占用的GPU资源处于同一个物理节点中。
具体方法包括:
(1)完成客户端在第一物理节点集群中第一GPU资源向第二物理节点集群中的迁移
遍历第一物理节点集群中的每个第一物理节点,针对每一个第一物理节点中被调用的第一GPU资源对应的各客户端,遍历各客户端调用的第二GPU资源所属的第二物理节点集群中相应的第二物理节点,判断第二物理节点是否能够容纳该被调用的第一GPU资源,若能够容纳,则将该被调用的第一GPU资源迁移至对应的第二物理节点中,若第一物理节点中,能够进行上述迁移的客户端为一个以上,则按照被调用的第一GPU资源由大到小的顺序,优先迁移最大的被调用的第一GPU资源。
需要注意的是,由于每个客户端所调用的GPU资源可能分散于不同的物理节点中,因此,上文中,“第一GPU资源”为泛指,指代某个客户端在整个第一物理节点集群中所有的第一物理节点中所调用的所有第一GPU资源的总和,而“被调用的第一GPU资源”则为特指,指某个客户端在一个特定的第一物理节点上所调用的第一GPU资源。
(2)最终的资源整合
经过资源迁移以后,针对第一物理节点集群中的所有第一物理节点,以及第二物理节点集群中的所有第二物理节点中,将被调用的GPU资源数小于1的GPU资源调用请求尽可能合并到同一个GPU上。
本发明还包括步骤S4,以预定的时间间隔对GPU资源进行整合:当到达预设的GPU资源整合时间时,对各物理节点中被调用的GPU资源进行整合,将所有物理节点中被调用的GPU资源数小于1的GPU资源调用请求尽可能合并到同一个GPU上。
本申请的一个或多个实施例中,所述中央控制器还用于存储分配至与其相接的各个客户端的GPU资源对应的GPU信息,上述步骤S3-S4还包括:存储分配至客户端的GPU资源对应的GPU信息,将分配至客户端的GPU资源对应的GPU信息存储于所述中央控制器中的GPU资源调用数据表中。具体的,针对资源调度请求,在执行步骤S3之前,在GPU资源调用数据表中查找该客户端对应的GPU信息,根据GPU资源调用数据表确定该客户端是否已拥有该中央控制器对应的计算集群的GPU资源。
针对资源调度请求,在执行步骤S4之前,在GPU资源调用数据表中查找该客户端发出的GPU资源释放请求对应的GPU资源所在的所述计算集群中的所有物理节点,即第一物理节点,第一物理节点对应的集群为第一物理节点集群。
本申请的一个或多个实施例中,预设的GPU资源整合时间设置为每日凌晨,预设的整合阈值设置为物理节点中GPU资源的调用率为50%,对应的所述对于整个计算集群中GPU资源的定期整合步骤包括:每日凌晨,均由中央控制器获取所述计算集群中各个物理节点的GPU信息,针对所述计算集群中GPU资源的调用率小于或等于50%的物理节点中被调用的GPU资源进行整合,将不同物理节点中被相同客户端调用的GPU资源迁移至相同的物理节点中,以使得同一个客户端调用的GPU资源所属的物理节点的数量最少;将不同物理节点中被调用的GPU资源迁移至相同物理节点中。同一个物理节点中被调用的合并的GPU资源的GPU资源数大于该物理节点中GPU资源的调用率大于50%,且小于或等于1。
同时,在执行玩步骤S3或S4之后,也即每次对物理节点中的GPU资源执行GPU资源调用和/或GPU资源迁移后,均在所述GPU资源调用数据表中对涉及的物理节点的GPU信息进行更新。
本申请的一个或多个实施例中,所述计算集群中GPU资源调用方法即可在Nvida、AMD等显卡组成的集群内工作,也可应用于国产显卡及各类国产计算芯片中。
本申请所述的计算集群中GPU资源调用方法中,以客户端所需的GPU资源为基础,分配计算集群中的GPU资源,能够有效地提高计算集群的GPU资源利用率;将计算集群的GPU资源直接分配给对应的客户端,能够使得该客户端直接调用所述计算集群中对应的GPU资源,以满足用户的保密需要。本申请的GPU资源的调用方法中提出的GPU分配规则,能够有效避免计算集群内GPU资源调用的碎片化,使得该计算集群中的GPU资源能响应更多的客户请求;还使得同一客户端调用的GPU资源更加集中,以大大增加客户端对GPU资源的调用效率,提高客户体验。
与上述方法相应地,本申请还提供了一种电子设备,包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时,该电子设备实现上述的计算集群中GPU资源的调度方法。
与上述方法相应地,本申请还提供了一种计算机可读存储单元,其上存储有计算机程序,该程序被处理器执行时实现如上述的计算集群中GPU资源的调度方法。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

Claims (9)

1.一种计算集群中GPU资源的调度方法,其特征在于,包括以下步骤:
获取计算集群中各个物理节点上的GPU信息,所述GPU信息包括GPU利用信息和GPU位置信息;
根据接收到的客户端的GPU资源请求,以及所述计算集群中各个物理节点的GPU信息,基于预定的GPU分配规则,为所述客户端分配所述计算集群中的GPU资源;所述GPU资源请求包括GPU资源调用请求和GPU资源释放请求。
2.根据权利要求1所述的,其特征在于,所述GPU分配规则是基于GPU资源的分配原则预先确定的,所述GPU资源的调度原则包括针对资源调度请求的调度原则以及针对资源释放请求的调度原则。
3.根据权利要求2所述的,其特征在于,若接收到的GPU资源调用请求对应的客户端目前没有占用计算集群中任一物理节点中的GPU资源,基于针对资源调度请求的调度原则确定的GPU分配规则包括:
(1)若所述GPU资源调用请求所需的GPU资源数等于1,则在所述计算集群中的各个物理节点中,选择空闲GPU资源满足所述GPU资源调用请求,且与所述GPU资源调用请求所需的GPU资源最相近的物理节点,将选择的物理节点的GPU资源分配给该客户端;
(2)若所述GPU资源调用请求中请求的GPU资源数小于1,则优先在所述计算集群中GPU资源已被部分调用的物理节点中,按照与(1)相同的分配规则进行分配;若所述计算集群中所有GPU资源已被调用的物理节点中的空闲GPU资源都无法满足所述GPU资源调用请求,则在所述计算集群中GPU资源未被调用的物理节点中,按照与(1)相同的分配原则进行分配;
(3)若所述GPU资源调用请求中请求的GPU资源数大于1,则优先在其内的空闲GPU资源之间存在高速连接通道的物理节点中,按照与(1)相同的分配规则进行分配;若所有的物理节点其内的空闲GPU资源之间均不存在高速连接通道,则在所述计算集群中的所有物理节点中,按照与(1)相同的分配规则进行分配。
4.根据权利要求3所述的,其特征在于,基于针对资源调度请求的调度原则确定的GPU分配规则,还包括:
若所选择出的所有物理节点的空闲GPU资源均小于此次GPU资源调度请求所需要的GPU资源,则将所选择出的物理节点的按照空闲GPU资源从大到小排序,优先分配空闲GPU资源最大的物理节点的GPU资源给客户端,直至能够从剩下的物理节点中选择出空闲GPU资源满足所述GPU资源调用请求剩下所需的GPU资源,且与所述GPU资源调用请求所需的GPU资源最相近的物理节点,将选择出的物理节点的GPU资源分配给客户端。
5.根据权利要求3或4所述的,其特征在于,若接收到的GPU资源调用请求对应的客户端在本次调用之前,已经占用计算集群中物理节点中的GPU资源,基于针对资源调度请求的调度原则确定的所述GPU分配规则,包括:
优先在该客户端已调用GPU资源对应的物理节点中,选择空闲GPU资源满足此次GPU资源调用请求的物理节点,且与所述GPU资源调动请求所需的GPU资源最相近的物理节点,将选择的物理节点的GPU资源分配给该客户端;
若该客户端已调用GPU资源对应的物理节点中的空闲GPU资源不能满足此次GPU资源调用请求,则选择所述计算集群中能满足该客户端的所有GPU资源调用请求之和,且与该客户端所有GPU资源调用请求之和最相近的物理节点,将该客户端已调用的GPU资源迁移至选择的物理节点中,并根据所述GPU资源调用请求将选择的物理节点的GPU资源分配给该客户端;
若所述计算集群中没有能满足该客户端的所有GPU资源调用请求之和的物理节点,则将该客户端已调用的GPU资源对应的物理节点的空闲GPU资源分配给该客户端,在对应的物理节点中执行GPU资源分配后,针对剩余的GPU资源调用请求需求的GPU资源,优先在其内的空闲GPU资源之间存在高速连接通道的物理节点中,按照权利要求3或4所述的GPU分配规则进行进一步调度;若所有的物理节点其内的空间GPU资源之间均不存在高速连接通道,则在所述计算集群中的所有物理节点中,按照权利要求3或4所述的GPU分配规则进行进一步调度。
6.根据权利要求1所述的,其特征在于,基于针对资源释放请求的调度原则确定的GPU分配规则包括:
根据所述GPU资源释放请求在对应的第一物理节点集群中释放GPU资源,将满足资源迁移条件的第一GPU资源整合到第二物理节点集群中对应的物理节点中,使得该客户端所占用的GPU资源所属的物理节点最少;所述第一物理节点集群包括GPU资源释放请求对应的所有物理节点,所述第一GPU资源为所述第一物理节点集群经过GPU资源释放后剩下的被调用的各个GPU资源,所述第二物理节点集群包括调用所述第一GPU资源的客户端在所述计算集群中调用的除第一物理节点集群外的其他所有物理节点;
针对所述第一物理节点集群中的所有物理节点以及所述第一物理节点集群中的所有物理节点,将其中被调用的GPU资源数小于1的GPU资源调用请求合并同一个GPU上。
7.根据权利要求1所述的,其特征在于,所述方法还包括:对所述计算集群中被调用的GPU资源进行整合:当到达预设的GPU资源整合时间时,对各物理节点中被调用的GPU资源进行整合,将所有物理节点中被调用的GPU资源数小于1的GPU资源调用请求合并到同一个GPU上。
8.一种电子设备,包括处理器和存储器,其特征在于,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时,该电子设备实现如权利要求1-7任一所述的计算集群中GPU资源的调度方法。
9.一种计算机可读存储单元,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一所述的计算集群中GPU资源的调度方法。
CN202410362111.0A 2024-03-28 2024-03-28 计算集群中gpu资源的调度方法、电子设备和存储介质 Active CN117971498B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410362111.0A CN117971498B (zh) 2024-03-28 2024-03-28 计算集群中gpu资源的调度方法、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410362111.0A CN117971498B (zh) 2024-03-28 2024-03-28 计算集群中gpu资源的调度方法、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN117971498A true CN117971498A (zh) 2024-05-03
CN117971498B CN117971498B (zh) 2024-05-31

Family

ID=90849876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410362111.0A Active CN117971498B (zh) 2024-03-28 2024-03-28 计算集群中gpu资源的调度方法、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN117971498B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162397A (zh) * 2018-05-28 2019-08-23 腾讯科技(深圳)有限公司 资源分配方法、装置及***
US20190354412A1 (en) * 2018-05-17 2019-11-21 International Business Machines Corporation Optimizing dynamical resource allocations in disaggregated data centers
CN110688218A (zh) * 2019-09-05 2020-01-14 广东浪潮大数据研究有限公司 资源调度方法及装置
CN110795241A (zh) * 2019-10-18 2020-02-14 北京并行科技股份有限公司 一种作业调度管理方法、调度中心和***
CN113110938A (zh) * 2021-05-08 2021-07-13 网易(杭州)网络有限公司 一种资源分配方法、装置、计算机设备及存储介质
CN113301087A (zh) * 2020-07-21 2021-08-24 阿里巴巴集团控股有限公司 资源调度方法、装置、计算设备和介质
CN113599803A (zh) * 2021-07-28 2021-11-05 腾讯科技(深圳)有限公司 一种基于边缘计算的数据处理方法、设备及可读存储介质
WO2022166480A1 (zh) * 2021-02-07 2022-08-11 华为技术有限公司 任务调度方法、装置及***

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190354412A1 (en) * 2018-05-17 2019-11-21 International Business Machines Corporation Optimizing dynamical resource allocations in disaggregated data centers
CN110162397A (zh) * 2018-05-28 2019-08-23 腾讯科技(深圳)有限公司 资源分配方法、装置及***
CN110688218A (zh) * 2019-09-05 2020-01-14 广东浪潮大数据研究有限公司 资源调度方法及装置
CN110795241A (zh) * 2019-10-18 2020-02-14 北京并行科技股份有限公司 一种作业调度管理方法、调度中心和***
CN113301087A (zh) * 2020-07-21 2021-08-24 阿里巴巴集团控股有限公司 资源调度方法、装置、计算设备和介质
WO2022166480A1 (zh) * 2021-02-07 2022-08-11 华为技术有限公司 任务调度方法、装置及***
CN113110938A (zh) * 2021-05-08 2021-07-13 网易(杭州)网络有限公司 一种资源分配方法、装置、计算机设备及存储介质
CN113599803A (zh) * 2021-07-28 2021-11-05 腾讯科技(深圳)有限公司 一种基于边缘计算的数据处理方法、设备及可读存储介质

Also Published As

Publication number Publication date
CN117971498B (zh) 2024-05-31

Similar Documents

Publication Publication Date Title
CN107066319B (zh) 一种面向异构资源的多维调度***
CN100407152C (zh) 多策略资源调度的方法和***
WO2020001320A1 (zh) 一种资源分配方法、装置及设备
CN109788046B (zh) 一种基于改进蜂群算法的多策略边缘计算资源调度方法
CN114741207B (zh) 一种基于多维度组合并行的gpu资源调度方法和***
CN111538586A (zh) 集群gpu资源管理调度***、方法以及计算机可读存储介质
CN111798113B (zh) 资源分配方法、装置、存储介质和电子设备
CN110069341B (zh) 边缘计算中结合功能按需配置的有依赖关系任务的调度方法
CN110221920B (zh) 部署方法、装置、存储介质及***
KR20130118593A (ko) 데이터 분산 서비스를 위한 미들웨어에서 데이터를 처리하기 위한 장치 및 방법
CN113946431B (zh) 一种资源调度方法、***、介质及计算设备
Khalifa¹ et al. Collaborative autonomic resource management system for mobile cloud computing
CN112181613B (zh) 异构资源分布式计算平台批量任务调度方法及存储介质
CN103336719A (zh) 一种p2p模式下分布渲染***及方法
Khan et al. The utility model for adaptive multimedia systems
CN114443263A (zh) 显存管理方法、装置、设备及***
CN114356543A (zh) 一种基于Kubernetes的多租户机器学习任务资源调度方法
CN116089009A (zh) 一种gpu资源管理方法、***、设备和存储介质
JP7515710B2 (ja) リソーススケジューリング方法、システム、電子デバイスおよびコンピュータ可読記憶媒体
CN111796932A (zh) 一种gpu资源调度方法
Meng et al. Deep reinforcement learning based delay-sensitive task scheduling and resource management algorithm for multi-user mobile-edge computing systems
CN111240824A (zh) 一种cpu资源调度方法及电子设备
CN117971498B (zh) 计算集群中gpu资源的调度方法、电子设备和存储介质
CN109298949B (zh) 一种分布式文件***的资源调度***
CN115629854A (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