CN115509749A - 任务执行方法和装置、存储介质和电子设备 - Google Patents
任务执行方法和装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN115509749A CN115509749A CN202211192916.2A CN202211192916A CN115509749A CN 115509749 A CN115509749 A CN 115509749A CN 202211192916 A CN202211192916 A CN 202211192916A CN 115509749 A CN115509749 A CN 115509749A
- Authority
- CN
- China
- Prior art keywords
- gpu
- threads
- gpu resources
- resources
- group
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 20
- 238000012549 training Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 5
- 238000013468 resource allocation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Abstract
本申请实施例提供了一种任务执行方法和装置、存储介质和电子设备,其中,该方法包括:获取待执行的目标任务,其中,目标任务申请使用一组线程,一组线程中的每个线程需要使用N个图形处理器GPU资源,N为正整数;在GPU服务器集群中的各个GPU服务器上的GPU资源中,为一组线程中的每个线程分配允许使用的N个GPU资源,其中,GPU服务器集群中的M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入一组交换机中的同一交换机,一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;通过一组线程以及为一组线程中的每个线程分配的允许使用的N个GPU资源,执行目标任务。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种任务执行方法和装置、存储介质和电子设备。
背景技术
在AI训练场景中,随着模型训练参数的增加,需要越来越多的GPU资源,同时需要进行多机分布式训练,这导致需要越来越多的高性能网卡用于GPU服务器之间的数据传输,目前大部分的同一GPU服务器都会搭载2张、4张等多张高性能网卡,这也导致了需要更多的高性能交换机完成集群算力网络的组网,在大规模数据中心场景下,逐渐开始采用spine-leaf两层网络架构,在AI训练场景中,高性能网卡的组网架构也大多采用spine-leaf架构,如图1所示,此时,同一GPU服务器中的多个高性能网卡会被连接到不同的leaf交换机。
在图1所示的集群网络环境下,每个GPU服务器都会分别与leaf1和leaf2有连接,当进行GPU资源分配时,根据GPU训练任务RDMA通信的特性,一个训练任务可能会使用属于同一个leaf的高性能网卡进行通信,也可能会使用属于不同leaf的高性能网卡进行通信。当使用属于不同leaf的性能网卡进行通信时,需要经过spine交换机的上行链路完成通信,由于通信距离变长,或者受限于leaf交换机的上行链路带宽,因此,会出现通信带宽受限、时延增加的问题,进而影响训练任务性能。
针对相关技术中,在执行训练任务时,会出现通信会出现通信带宽受限、时延增加等问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种任务执行方法和装置、存储介质和电子设备,以至少解决相关技术中,在执行训练任务时,会出现通信会出现通信带宽受限、时延增加等问题。
根据本申请的一个实施例,提供了一种任务执行方法,包括:获取待执行的目标任务,其中,所述目标任务申请使用一组线程,所述一组线程中的每个线程需要使用N个图形处理器GPU资源,N为正整数;在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,其中,所述GPU服务器集群包括M个GPU服务器,所述M个GPU服务器中的每个GPU服务器均与一组交换机连接,所述每个GPU服务器上设置有一组网卡、所述一组网卡中的每个网卡接入所述一组交换机中的不同交换机、所述M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入所述一组交换机中的同一交换机,所述一组网卡中的每个网卡与所在的GPU服务器上的一组GPU资源对应,M为正整数,所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务。
在一个示例性实施例中,所述在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,包括:在所述M个GPU服务器中确定Y组GPU资源,其中,Y为正整数,所述Y组GPU资源包括Y个GPU服务器中的每个GPU服务器上与相同网卡名称的网卡对应的一组GPU资源,Y小于或等于M;在所述一组线程包括P个线程的情况下,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,其中,P=1,或,P为大于或等于2的正整数,所述P组GPU资源中的每组GPU资源包括N个GPU资源;在所述Y组GPU资源中查找到允许分配给所述P个线程使用的P组GPU资源的情况下,将查找到的所述P组GPU资源分配给所述P个线程,其中,所述P个线程中的每个线程被分配到所述P组GPU资源中对应的一组GPU资源。
在一个示例性实施例中,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,包括:在所述Y组GPU资源中的GPU资源的数量大于或等于目标数量的情况下,将所述Y组GPU资源中的所述目标数量的GPU资源确定为查找到的所述P组GPU资源,其中,所述目标数量为N与P的乘积。
在一个示例性实施例中,所述将所述Y组GPU资源中的所述目标数量的GPU资源确定为查找到的所述P组GPU资源,包括:在所述Y组GPU资源中选择所述P组GPU资源,其中,所述P组GPU资源包括所述Y个GPU服务器中的Q个GPU服务器上的GPU资源,Q小于或等于预设数量阈值,且小于或等于Y。
在一个示例性实施例中,将查找到的所述P组GPU资源分配给所述P个线程,包括:确定每个相同网卡名称分别对应的Y组GPU资源中允许分配给所述P个线程使用的P组GPU资源;根据所述每个相同网卡名称分别对应的P组GPU资源确定每个相同网卡名称分别对应的GPU服务器集群的集中度;在多个集中度中确定数值最大的目标集中度;确定所述目标集中度对应的目标网卡名称,以及将所述目标网卡名称对应的P组GPU资源分配给所述P个线程。
在一个示例性实施例中,根据所述每个相同网卡名称分别对应的P组GPU资源确定每个相同网卡名称分别对应的GPU服务器集群的集中度,包括:确定步骤:确定所述M个GPU服务器中的每个GPU服务器中所有的GPU资源的第一数量;确定在将任一相同网卡名称对应的P组GPU资源分配给所述P个线程的情况下,所述M个GPU服务器中的每个GPU服务器中已分配的GPU资源的第二数量,其中,所述已分配的GPU资源包括:为其他线程分配允许使用的GPU资源的数量和允许分配给所述P个线程使用的GPU资源的数量;根据所述第一数量和所述第二数量确定所述任一相同网卡名称对应的GPU服务器集群的集中度;循环执行所述确定步骤,直至确定所述每个相同网卡名称分别对应的GPU服务器集群的集中度。
在一个示例性实施例中,根据所述第一数量和所述第二数量确定所述任一相同网卡名称对应的GPU服务器集群的集中度,包括:确定所述第二数量和所述第一数量的商值的平方,并将所述商值的平方作为所述每个GPU服务器的集中度;将所述每个GPU服务器的集中度相加,以确定所述任一相同网卡名称对应的GPU服务器集群的集中度。
在一个示例性实施例中,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源之后,所述方法还包括:在所述Y组GPU资源中未查找到允许分配给所述P个线程使用的P组GPU资源的情况下,在所述M个GPU服务器中确定X组GPU资源,其中,X为正整数,所述X组GPU资源包括X个GPU服务器中的每个GPU服务器上与不同网卡名称的网卡对应的一组GPU资源,X小于或等于M;在所述一组线程包括P个线程的情况下,在所述X组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,其中,P=1,或,P为大于或等于2的正整数,所述P组GPU资源中的每组GPU资源包括N个GPU资源;在所述X组GPU资源中查找到允许分配给所述P个线程使用的P组GPU资源的情况下,将所述X组GPU资源中查找到的所述P组GPU资源分配给所述P个线程,其中,所述P个线程中的每个线程被分配到所述P组GPU资源中对应的一组GPU资源。
根据本申请的另一个实施例,提供了一种任务执行装置,包括:获取模块,用于获取待执行的目标任务,其中,所述目标任务申请使用一组线程,所述一组线程中的每个线程需要使用N个图形处理器GPU资源,N为正整数;分配模块,用于在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,其中,所述GPU服务器集群包括M个GPU服务器,所述M个GPU服务器中的每个GPU服务器均与一组交换机连接,所述每个GPU服务器上设置有一组网卡、所述一组网卡中的每个网卡接入所述一组交换机中的不同交换机、所述M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入所述一组交换机中的同一交换机,所述一组网卡中的每个网卡与所在的GPU服务器上的一组GPU资源对应,M为正整数,所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;执行模块,用于通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,由于确定目标任务申请使用的一组线程中的每个线程需要使用N个图形处理器GPU资源,并为所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;以及通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务,即优先在选择不同节GPU服务器上相同高性能网卡名称的网卡对应的GPU资源,避免目标任务跨leaf通信,因此,可以解决在执行训练任务时,会出现通信会出现通信带宽受限、时延增加等问题,达到提高训练任务性能的效果。
附图说明
图1是现有技术中spine-leaf两层网络架构示意图;
图2是根据本申请实施例的网络架构结构框图;
图3是根据本申请实施例的任务执行方法的流程图;
图4是根据本申请可选实施例的任务执行方法的流程图;
图5是根据本申请可选实施例的任务执行方法的示意图(一);
图6是根据本申请可选实施例的任务执行方法的示意图(二);
图7是根据本申请可选实施例的任务执行方法的示意图(三);
图8是根据本申请实施例的任务执行装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例可以运行于图2所示的网络架构上,如图2所示,该网络架构包括:GPU服务器集群200、leaf交换机301、leaf交换机302……leaf交换机N、spine交换机401、spine交换机402……spine交换机N,其中,所述GPU服务器集群包括:GPU服务器201、GPU服务器202……GPU服务器M,所述M个GPU服务器中的每个GPU服务器均与leaf交换机301、leaf交换机302……leaf交换机N连接,所述每个GPU服务器上设置有一组网卡(网卡1、网卡2……网卡N)、所述一组网卡中的每个网卡接入所述一组交换机中的不同leaf交换机(leaf交换机301、leaf交换机302……leaf交换机N)、所述M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入所述一组leaf交换机中的同一leaf交换机(交换机301、交换机302、交换机N)。
在本实施例中提供了一种运行于网络架构的方法,图3是根据本申请实施例的任务执行方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,获取待执行的目标任务,其中,所述目标任务申请使用一组线程,所述一组线程中的每个线程需要使用N个图形处理器GPU资源,N为正整数;
步骤S304,在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,其中,所述GPU服务器集群包括M个GPU服务器,所述M个GPU服务器中的每个GPU服务器均与一组交换机连接,所述每个GPU服务器上设置有一组网卡、所述一组网卡中的每个网卡接入所述一组交换机中的不同交换机、所述M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入所述一组交换机中的同一交换机,所述一组网卡中的每个网卡与所在的GPU服务器上的一组GPU资源对应,M为正整数,所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;
需要说明的是,在交换机与GPU服务器进行接线时,要求每个GPU服务器的相同位置的网卡接入相同的交换机,以GPU服务器包含4个网卡为例,即每个GPU服务器的网卡1接入交换机1、网卡2接入交换机2、网3接入交换机3、网卡4接入交换机4。
需要说明的是,每个GPU服务器均部署GPU服务器资源管理组件,将每个GPU服务器上部署的多个网卡的网卡名称,以及所述网卡分别对应的一组GPU资源进行上报,数据格式可以参考如下所示:{“ib0”:“gpu0,gpu1”,“ib1”:“gpu2,gpu3”,“ib2”:“gpu4,gpu5”,“ib3”:“gpu6,gpu7”};其中,ib0相当于上述实施例中的网卡1,ib1相当于上述实施例中的网卡2、ib2相当于上述实施例中的网卡3、ib3相当于上述实施例中的网卡4,需要说明的是gpu0,gpu1与所述ib0的通信距离相同。
步骤S306,通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务。
通过上述步骤,由于确定目标任务申请使用的一组线程中的每个线程需要使用N个图形处理器GPU资源,并为所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;以及通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务,即优先在选择不同节GPU服务器上相同高性能网卡名称的网卡对应的GPU资源,避免目标任务跨leaf通信,因此,可以解决在执行训练任务时,会出现通信会出现通信带宽受限、时延增加等问题,达到提高训练任务性能的效果。
需要说明的是,在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源之前,所述方法还包括:确定为每个线程分配允许使用的GPU资源的第三数量;根据所述第三数量在第一GPU服务器集群中确定所述GPU服务器集群,其中,GPU服务器集群中的任一GPU服务器的GPU资源的剩余数量均大于等于所述第三数量。
上述步骤S102有很多种实现方式,在本申请实施例中给出了一种实现方式,具体的:在所述M个GPU服务器中确定Y组GPU资源,其中,Y为正整数,所述Y组GPU资源包括Y个GPU服务器中的每个GPU服务器上相同网卡名称的网卡对应的一组GPU资源,Y小于或等于M;在所述一组线程包括P个线程的情况下,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,其中,P=1,或,P为大于或等于2的正整数,所述P组GPU资源中的每组GPU资源包括N个GPU资源;在所述Y组GPU资源中查找到允许分配给所述P个线程使用的P组GPU资源的情况下,将查找到的所述P组GPU资源分配给所述P个线程,其中,所述P个线程中的每个线程被分配到所述P组GPU资源中对应的一组GPU资源。
也就是说,确定M个GPU服务器中任一相同网卡名称的网卡对应的Y组GPU资源;确定是否可以根据Y组GPU资源为所述一组线程中的所有线程分配允许使用的N个GPU资源;在确定可以根据所述Y组GPU资源为所述一组线程中的所有线程分配允许使用的N个GPU资源的情况下,将Y组GPU资源中的P组GPU资源分配给所述一组线程中的所有线程。
以网卡名称为网卡1、4个线程中每个线程需要3个GPU资源为例来讲,确定每个GPU服务器上网卡名称为网卡1的网卡对应的GPU资源;在GPU服务器1网卡名称为网卡1的网卡对应的GPU资源为4个、GPU服务器2网卡名称为网卡1的网卡对应的GPU资源为3个、GPU服务器3网卡名称为网卡1的网卡对应的GPU资源为4个、GPU服务器4网卡名称为网卡1的网卡对应的GPU资源为3个的情况下,确定P组GPU资源为GPU服务器1网卡名称为网卡1的网卡对应的GPU资源、GPU服务器2网卡名称为网卡1的网卡对应的GPU资源、GPU服务器3网卡名称为网卡1的网卡对应的GPU资源、GPU服务器4网卡名称为网卡1的网卡对应的GPU资源。
需要说明的是,通过上述实施例,可以准确地为每个线程分配N个GPU资源,进而由于每个线程分配N个GPU资源为同一网卡名称的网卡对应的GPU资源,以及同一网卡名称的网卡连接相同的交换机,因此,可以解决在执行训练任务时,会出现通信会出现通信带宽受限、时延增加等问题,达到提高训练任务性能的效果。
在一个示例性实施例中,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,包括:在所述Y组GPU资源中的GPU资源的数量大于或等于目标数量的情况下,将所述Y组GPU资源中的所述目标数量的GPU资源确定为查找到的所述P组GPU资源,其中,所述目标数量为N与P的乘积。
可选的,在所述Y组GPU资源中的GPU资源的数量小于目标数量的情况下,确定在所述Y组GPU资源中未查找到允许分配给所述P个线程使用的P组GPU资源。
举例来讲,在Y组GPU资源中的GPU资源的数量为12,P个线程使用的GPU资源为10个的情况下,确定可以在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源;在Y组GPU资源中的GPU资源的数量为12,P个线程使用的GPU资源为18个的情况下,确定不可以在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,需要说明的是,上述数值仅是为了更好的理解本发明实施例,本发明实施例对上述Y组GPU资源中的GPU资源的数量以及P个线程使用的GPU资源的数量不作限定。
需要说明的是,通过上述实施例,可以准确地确定是否可以为P个线程分配同一网卡名称的网卡对应的GPU资源。
在一个示例性实施例中,所述将所述Y组GPU资源中的所述目标数量的GPU资源确定为查找到的所述P组GPU资源,包括:在所述Y组GPU资源中选择所述P组GPU资源,其中,所述P组GPU资源包括所述Y个GPU服务器中的Q个GPU服务器上的GPU资源,Q小于或等于预设数量阈值,且小于或等于Y。
上述实施例中的“Q小于或等于预设数量阈值,且小于或等于Y”可以理解为尽可能使用较少数量上的GPU服务器上的GPU资源。举例来讲,以每个线程需要3个GPU资源为例来讲,确定每个GPU服务器上网卡名称为网卡1的网卡对应的GPU资源;在GPU服务器1网卡名称为网卡1的网卡对应的GPU资源为2个、GPU服务器2网卡名称为网卡1的网卡对应的GPU资源为3个、GPU服务器3网卡名称为网卡1的网卡对应的GPU资源为1个、GPU服务器4网卡名称为网卡1的网卡对应的GPU资源为3个的情况下,确定优先将GPU服务器2和GPU服务器4上的GPU资源分配给每个线程。
在一个示例性实施例中,将查找到的所述P组GPU资源分配给所述P个线程,包括:确定每个相同网卡名称分别对应的Y组GPU资源中允许分配给所述P个线程使用的P组GPU资源;根据所述每个相同网卡名称分别对应的P组GPU资源确定每个相同网卡名称分别对应的GPU服务器集群的集中度;在多个集中度中确定数值最大的目标集中度;确定所述目标集中度对应的目标网卡名称,以及将所述目标网卡名称对应的P组GPU资源分配给所述P个线程。
需要说明的是,根据所述每个相同网卡名称分别对应的P组GPU资源确定每个相同网卡名称分别对应的GPU服务器集群的集中度,即根据所述集中度可以确定所述GPU服务器中GPU资源的使用情况;集中度越大,说明GPU服务器中GPU资源的使用率越高;集中度越小,说明GPU服务器中GPU资源的使用率越第,因此,为了减少资源碎片,因此选用集中度高的网卡名称对应的GPU资源,进而可以达到减少资源碎片的效果。
具体的,通过以下方式确定每个相同网卡名称分别对应的GPU服务器集群的集中度:确定步骤:确定所述M个GPU服务器中的每个GPU服务器中所有的GPU资源的第一数量;确定在将任一相同网卡名称对应的P组GPU资源分配给所述P个线程的情况下,所述M个GPU服务器中的每个GPU服务器中已分配的GPU资源的第二数量,其中,所述已分配的GPU资源包括:为其他线程分配允许使用的GPU资源的数量和允许分配给所述P个线程使用的GPU资源的数量;根据所述第一数量和所述第二数量确定所述任一相同网卡名称对应的GPU服务器集群的集中度;循环执行所述确定步骤,直至确定所述每个相同网卡名称分别对应的GPU服务器集群的集中度。
也就是说,根据上述实施例,确定出每个相同网卡名称分别对应的Y组GPU资源,以及确定在将每个相同网卡名称分别对应的Y组GPU资源分配给P个线程时使用的P组GPU资源;进而确定每个GPU服务器中已分配的GPU资源的第二数量,以及每个GPU服务器中所有的GPU资源的第一数量;根据所述第一数量和第二数量确定任一相同网卡名称对应的GPU服务器集群的集中度。
需要说明的是,根据上述方式,确定第一数量和第二数量的比值,将所述比值确定GPU服务器集群的集中度,可以准确确定GPU服务器集群的集中度。
具体的,通过以下方式确定所述任一相同网卡名称对应的GPU服务器集群的集中度,包括:确定所述第二数量和所述第一数量的商值的平方,并将所述商值的平方作为所述每个GPU服务器的集中度;将所述每个GPU服务器的集中度相加,以确定所述任一相同网卡名称对应的GPU服务器集群的集中度。
举例来讲,每个GPU服务器的集中度=(gpuUsedi/gpuNumi)2,其中,gpuUsedi表示第i个GPU服务器被占(包括已经使用和本次预计被分配)的GPU资源,gpuNumi表示第i个GPU服务器的GPU资源总量,当GPU服务器的全部GPU资源占满,或者GPU服务器的全部GPU资源空闲,默认同样的取值为1。
在一个示例性实施例中,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源之后,还包括:在所述Y组GPU资源中未查找到允许分配给所述P个线程使用的P组GPU资源的情况下,在所述M个GPU服务器中确定X组GPU资源,其中,X为正整数,所述X组GPU资源包括X个GPU服务器中的每个GPU服务器上与不同网卡名称的网卡对应的一组GPU资源,X小于或等于M;在所述一组线程包括P个线程的情况下,在所述X组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,其中,P=1,或,P为大于或等于2的正整数,所述P组GPU资源中的每组GPU资源包括N个GPU资源;在所述X组GPU资源中查找到允许分配给所述P个线程使用的P组GPU资源的情况下,将所述X组GPU资源中查找到的所述P组GPU资源分配给所述P个线程,其中,所述P个线程中的每个线程被分配到所述P组GPU资源中对应的一组GPU资源。
也就是说,随着GPU资源的使用和释放,会逐渐产生资源碎片,可能出现相同高性能网卡名称所属的GPU资源,不满足执行任一线程的资源需求,尽量使用较多的属于同一网卡名称的GPU资源,对于无法分配属于同一高性能网卡名称的线程,按照GPU服务器空闲GPU数量,基于bestfit算法对线程进行资源分配。
需要说明的是,根据上述实施例,即使无法为所有线程分配属于同一高性能网卡名称的情况下,依旧可以为无法分配属于同一高性能网卡名称的线程进行资源分配。
进一步的,在所述M个GPU服务器中确定X组GPU资源,包括:在所述M个GPU服务器中确定A组GPU资源,其中,A为正整数,所述A组GPU资源包括A个GPU服务器中的每个GPU服务器上与相同网卡名称的网卡对应的一组GPU资源,A小于X;在所述一组线程包括P个线程的情况下,将所述A组GPU资源分配给所述P个线程中的A个线程;确定所述每个GPU服务器中的空闲GPU资源;在所述空闲GPU资源中确定B组GPU资源,将所述B组GPU资源分配给所述P个线程中的B个线程,其中,所述B组GPU资源与所述A组GPU资源为不同网卡名称的网卡对应的一组GPU资源,A和B的和为X。
为了更好的理解上述任务执行方法的过程,以下再结合可选实施例对上述任务执行的实现方法流程进行说明,但不用于限定本申请实施例的技术方案。
在本实施例中提供了一种任务执行方法,具体如下步骤:
步骤S1:集群进行环境实施时,使用spine-leaf网络,在进行交换机与GPU服务器接线时,要求每个GPU服务器相同位置的IB网卡(相当于上述实施例中的网卡),接入相同的leaf交换机(相当于上述实施例中的交换机),以GPU服务器包含4个IB网卡为例,即每个GPU服务器的ib0网卡接入leaf交换机1、ib1网卡接入leaf交换机2、ib2网卡接入leaf交换机3、ib3网卡接入leaf交换机4;
步骤S2:每个GPU服务器部署自研的GPU服务器资源管理组件,将GPU服务器的网卡名称、GPU资源进行上报,数据格式可以参考如下所示:
{“ib0”:“gpu0,gpu1,gpu2,gpu3”,“ib1”:“gpu4,gpu5,gpu6,gpu7”,...};其中,ib0和“gpu0,gpu1,gpu2,gpu3”的亲和性距离相同,ib1和“gpu4,gpu5,gpu6,gpu7”的亲和性距离相同。
步骤S3:当GPU服务器的多个IB网卡与GPU资源亲和性距离相同时,对IB网卡进行聚合处理,数据格式如下所示:
{“ib0,ib1”:“gpu0,gpu1”,“ib2,ib3”:“gpu2,gpu3”,“ib4,ib5”:“gpu4,gpu5”,...};
需要说明的是,为了简化描述,我们将上述数据格式中的多个聚合IB网卡,也认为是一个IB网卡。每个GPU服务器有ib0,ib1...ibk k>0个IB网卡,每个IB网卡可以使用的GPU资源个数为gpuib0,gpuib1...gpuk k≥0。
步骤S4:创建多机多卡任务,任务申请tasknum个worker(相当于上述实施例中的线程),每个worker需要taskgpu个GPU资源,确定为选择每个高性能网卡时对应的为tasknum个worker分配的GPU服务器和GPU资源;
步骤S5:计算选择每个高性能网卡时对应的GPU服务器集群的GPU集中度,选择最大GPU集中度对应的目标高性能网卡名称,使用目标高性能网卡名称的GPU服务器和GPU资源为每个worker分配GPU资源。
图4是根据本申请可选实施例的任务执行方法的流程图,上述步骤S4和S5的具体实现方式如图4所示,具体步骤如下:
步骤S401:创建多机多卡任务;
步骤S402:对集群的GPU服务器进行筛选,将GPU服务器空闲GPU数量gpuFree小于taskgpu的GPU服务器过滤,获得GPU服务器列表nodeListgpu;
需要说明的是,GPU服务器列表内空闲的GPU资源可能属于同一个IB网卡,也可能属于不同的IB网卡;
步骤S403:遍历集群中存在的所有高性能网卡名称;
步骤S404:选择任一高性能网卡名称;
步骤S405:当选择任一高性能网卡名称时,确定需要使用的GPU服务器列表及其GPU资源的UUID;
以某个高性能网卡名称ibk为例,确定需要使用的GPU服务器列表及其GPU资源的UUID包括:
步骤S4051:按照该高性能网卡ibk所属GPU资源空闲数量,升序排列,获得GPU服务器列表信息nodeIbListgpu,即将高性能网卡ibk所属空闲GPU资源数量小的GPU服务器放在列表前端,可以用sortNodeListByIbName(nodeListgpu)表示;
步骤S4052:按照排序后的GPU服务器顺序,优先选择最靠前的GPU服务器,并将该GPU服务器的GPU资源分配给该woker,为每个worker分配GPU资源,如图5所示,其中nodeIbListgpu[i]表示第i个GPU服务器该ibk卡所属的空闲GPU资源数量,allocTaskNum表示可以被分配GPU资源的worker数量,
步骤S406:确定是否为所有worker分配GPU资源;
步骤S407:在没有为所有worker分配GPU资源的情况下,按照GPU服务器空闲GPU资源的数量,基于bestfit算法进行资源分配,如图6所示,其中sortNodeListByFreeGpu(nodeListgpu)表示对GPU服务器列表按照GPU服务器空闲GPU进行升序排列;
步骤S408:计算此时的GPU集中度Hk;
具体的:如图7所示,gpuUsedi表示第i个节点被占(包括已经使用和本次被分配预占)的GPU资源的数量(相当于上述实施例中的第二数量),gpuNumi表示第i个节点的GPU资源的总量(相当于上述实施例中的第一数量),默认为8,即,集群中的全部节点都为8卡GPU服务器,当节点的全部GPU资源占满,或者节点的全部GPU资源空闲,默认同样的取值为1。
步骤S409:选择最大GPU集中度对应的目标高性能网卡名称,使用目标高性能网卡名称的GPU服务器和GPU资源为每个worker分配GPU资源。
本发明实施例,在GPU服务器具有多张IB网卡的场景下,通过在进行GPU资源分配时,优先将训练任务使用的GPU资源调度到属于相同高性能网卡名称下,从而避免跨leaf交换机通信,从而降低通信时延和带宽限制,从而提高训练性能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种任务执行装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的任务执行装置的结构框图,如图8所示,该装置包括:
获取模块82,用于获取待执行的目标任务,其中,所述目标任务申请使用一组线程,所述一组线程中的每个线程需要使用N个图形处理器GPU资源,N为正整数;
分配模块84,用于在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,其中,所述GPU服务器集群包括M个GPU服务器,所述M个GPU服务器中的每个GPU服务器均与一组交换机连接,所述每个GPU服务器上设置有一组网卡、所述一组网卡中的每个网卡接入所述一组交换机中的不同交换机、所述M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入所述一组交换机中的同一交换机,所述一组网卡中的每个网卡与所在的GPU服务器上的一组GPU资源对应,M为正整数,所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;
执行模块86,用于通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务。
通过上述装置,由于确定目标任务申请使用的一组线程中的每个线程需要使用N个图形处理器GPU资源,并为所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;以及通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务,即优先在选择不同节GPU服务器上相同高性能网卡名称的网卡对应的GPU资源,避免目标任务跨leaf通信,因此,可以解决在执行训练任务时,会出现通信会出现通信带宽受限、时延增加等问题,达到提高训练任务性能的效果。
在一个示例性实施例中,上述分配模块84,还用于在所述M个GPU服务器中确定Y组GPU资源,其中,Y为正整数,所述Y组GPU资源包括Y个GPU服务器中的每个GPU服务器上与相同网卡名称的网卡对应的一组GPU资源,Y小于或等于M;在所述一组线程包括P个线程的情况下,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,其中,P=1,或,P为大于或等于2的正整数,所述P组GPU资源中的每组GPU资源包括N个GPU资源;在所述Y组GPU资源中查找到允许分配给所述P个线程使用的P组GPU资源的情况下,将查找到的所述P组GPU资源分配给所述P个线程,其中,所述P个线程中的每个线程被分配到所述P组GPU资源中对应的一组GPU资源。
在一个示例性实施例中,上述分配模块84,还用于在所述Y组GPU资源中的GPU资源的数量大于或等于目标数量的情况下,将所述Y组GPU资源中的所述目标数量的GPU资源确定为查找到的所述P组GPU资源,其中,所述目标数量为N与P的乘积。
在一个示例性实施例中,上述分配模块84,还用于在所述Y组GPU资源中选择所述P组GPU资源,其中,所述P组GPU资源包括所述Y个GPU服务器中的Q个GPU服务器上的GPU资源,Q小于或等于预设数量阈值,且小于或等于Y。
在一个示例性实施例中,上述分配模块84,还用于确定每个相同网卡名称分别对应的Y组GPU资源中允许分配给所述P个线程使用的P组GPU资源;根据所述每个相同网卡名称分别对应的P组GPU资源确定每个相同网卡名称分别对应的GPU服务器集群的集中度;在多个集中度中确定数值最大的目标集中度;确定所述目标集中度对应的目标网卡名称,以及将所述目标网卡名称对应的P组GPU资源分配给所述P个线程。
在一个示例性实施例中,上述分配模块84,还用于执行以下确定步骤:确定所述M个GPU服务器中的每个GPU服务器中所有的GPU资源的第一数量;确定在将任一相同网卡名称对应的P组GPU资源分配给所述P个线程的情况下,所述M个GPU服务器中的每个GPU服务器中已分配的GPU资源的第二数量,其中,所述已分配的GPU资源包括:为其他线程分配允许使用的GPU资源的数量和允许分配给所述P个线程使用的GPU资源的数量;根据所述第一数量和所述第二数量确定所述任一相同网卡名称对应的GPU服务器集群的集中度;循环执行所述确定步骤,直至确定所述每个相同网卡名称分别对应的GPU服务器集群的集中度。
在一个示例性实施例中,上述分配模块84,还用于确定所述第二数量和所述第一数量的商值的平方,并将所述商值的平方作为所述每个GPU服务器的集中度;将所述每个GPU服务器的集中度相加,以确定所述任一相同网卡名称对应的GPU服务器集群的集中度。
在一个示例性实施例中,上述分配模块84,还用于在所述Y组GPU资源中未查找到允许分配给所述P个线程使用的P组GPU资源的情况下,在所述M个GPU服务器中确定X组GPU资源,其中,X为正整数,所述X组GPU资源包括X个GPU服务器中的每个GPU服务器上与不同网卡名称的网卡对应的一组GPU资源,X小于或等于M;在所述一组线程包括P个线程的情况下,在所述X组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,其中,P=1,或,P为大于或等于2的正整数,所述P组GPU资源中的每组GPU资源包括N个GPU资源;在所述X组GPU资源中查找到允许分配给所述P个线程使用的P组GPU资源的情况下,将所述X组GPU资源中查找到的所述P组GPU资源分配给所述P个线程,其中,所述P个线程中的每个线程被分配到所述P组GPU资源中对应的一组GPU资源。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,获取待执行的目标任务,其中,所述目标任务申请使用一组线程,所述一组线程中的每个线程需要使用N个图形处理器GPU资源,N为正整数;
S2,在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,其中,所述GPU服务器集群包括M个GPU服务器,所述M个GPU服务器中的每个GPU服务器均与一组交换机连接,所述每个GPU服务器上设置有一组网卡、所述一组网卡中的每个网卡接入所述一组交换机中的不同交换机、所述M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入所述一组交换机中的同一交换机,所述一组网卡中的每个网卡与所在的GPU服务器上的一组GPU资源对应,M为正整数,所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;
S3,通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取待执行的目标任务,其中,所述目标任务申请使用一组线程,所述一组线程中的每个线程需要使用N个图形处理器GPU资源,N为正整数;
S2,在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,其中,所述GPU服务器集群包括M个GPU服务器,所述M个GPU服务器中的每个GPU服务器均与一组交换机连接,所述每个GPU服务器上设置有一组网卡、所述一组网卡中的每个网卡接入所述一组交换机中的不同交换机、所述M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入所述一组交换机中的同一交换机,所述一组网卡中的每个网卡与所在的GPU服务器上的一组GPU资源对应,M为正整数,所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;
S3,通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种任务执行方法,其特征在于,包括:
获取待执行的目标任务,其中,所述目标任务申请使用一组线程,所述一组线程中的每个线程需要使用N个图形处理器GPU资源,N为正整数;
在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,其中,所述GPU服务器集群包括M个GPU服务器,所述M个GPU服务器中的每个GPU服务器均与一组交换机连接,所述每个GPU服务器上设置有一组网卡、所述一组网卡中的每个网卡接入所述一组交换机中的不同交换机、所述M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入所述一组交换机中的同一交换机,所述一组网卡中的每个网卡与所在的GPU服务器上的一组GPU资源对应,M为正整数,所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;
通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务。
2.根据权利要求1所述的方法,其特征在于,所述在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,包括:
在所述M个GPU服务器中确定Y组GPU资源,其中,Y为正整数,所述Y组GPU资源包括Y个GPU服务器中的每个GPU服务器上与相同网卡名称的网卡对应的一组GPU资源,Y小于或等于M;
在所述一组线程包括P个线程的情况下,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,其中,P=1,或,P为大于或等于2的正整数,所述P组GPU资源中的每组GPU资源包括N个GPU资源;
在所述Y组GPU资源中查找到允许分配给所述P个线程使用的P组GPU资源的情况下,将查找到的所述P组GPU资源分配给所述P个线程,其中,所述P个线程中的每个线程被分配到所述P组GPU资源中对应的一组GPU资源。
3.根据权利要求2所述的方法,其特征在于,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,包括:
在所述Y组GPU资源中的GPU资源的数量大于或等于目标数量的情况下,将所述Y组GPU资源中的所述目标数量的GPU资源确定为查找到的所述P组GPU资源,其中,所述目标数量为N与P的乘积。
4.根据权利要求3所述的方法,其特征在于,所述将所述Y组GPU资源中的所述目标数量的GPU资源确定为查找到的所述P组GPU资源,包括:
在所述Y组GPU资源中选择所述P组GPU资源,其中,所述P组GPU资源包括所述Y个GPU服务器中的Q个GPU服务器上的GPU资源,Q小于或等于预设数量阈值,且小于或等于Y。
5.根据权利要求2所述的方法,其特征在于,将查找到的所述P组GPU资源分配给所述P个线程,包括:
确定每个相同网卡名称分别对应的Y组GPU资源中允许分配给所述P个线程使用的P组GPU资源;
根据所述每个相同网卡名称分别对应的P组GPU资源确定每个相同网卡名称分别对应的GPU服务器集群的集中度;
在多个集中度中确定数值最大的目标集中度;
确定所述目标集中度对应的目标网卡名称,以及将所述目标网卡名称对应的P组GPU资源分配给所述P个线程。
6.根据权利要求5所述的方法,其特征在于,根据所述每个相同网卡名称分别对应的P组GPU资源确定每个相同网卡名称分别对应的GPU服务器集群的集中度,包括:
确定步骤:确定所述M个GPU服务器中的每个GPU服务器中所有的GPU资源的第一数量;确定在将任一相同网卡名称对应的P组GPU资源分配给所述P个线程的情况下,所述M个GPU服务器中的每个GPU服务器中已分配的GPU资源的第二数量,其中,所述已分配的GPU资源包括:为其他线程分配允许使用的GPU资源的数量和允许分配给所述P个线程使用的GPU资源的数量;根据所述第一数量和所述第二数量确定所述任一相同网卡名称对应的GPU服务器集群的集中度;
循环执行所述确定步骤,直至确定所述每个相同网卡名称分别对应的GPU服务器集群的集中度。
7.根据权利要求6所述的方法,其特征在于,根据所述第一数量和所述第二数量确定所述任一相同网卡名称对应的GPU服务器集群的集中度,包括:
确定所述第二数量和所述第一数量的商值的平方,并将所述商值的平方作为所述每个GPU服务器的集中度;
将所述每个GPU服务器的集中度相加,以确定所述任一相同网卡名称对应的GPU服务器集群的集中度。
8.根据权利要求2所述的方法,其特征在于,在所述Y组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源之后,所述方法还包括:
在所述Y组GPU资源中未查找到允许分配给所述P个线程使用的P组GPU资源的情况下,在所述M个GPU服务器中确定X组GPU资源,其中,X为正整数,所述X组GPU资源包括X个GPU服务器中的每个GPU服务器上与不同网卡名称的网卡对应的一组GPU资源,X小于或等于M;
在所述一组线程包括P个线程的情况下,在所述X组GPU资源中查找允许分配给所述P个线程使用的P组GPU资源,其中,P=1,或,P为大于或等于2的正整数,所述P组GPU资源中的每组GPU资源包括N个GPU资源;
在所述X组GPU资源中查找到允许分配给所述P个线程使用的P组GPU资源的情况下,将所述X组GPU资源中查找到的所述P组GPU资源分配给所述P个线程,其中,所述P个线程中的每个线程被分配到所述P组GPU资源中对应的一组GPU资源。
9.一种任务执行装置,其特征在于,包括:
获取模块,用于获取待执行的目标任务,其中,所述目标任务申请使用一组线程,所述一组线程中的每个线程需要使用N个图形处理器GPU资源,N为正整数;
分配模块,用于在GPU服务器集群中的各个GPU服务器上的GPU资源中,为所述一组线程中的每个线程分配允许使用的N个GPU资源,其中,所述GPU服务器集群包括M个GPU服务器,所述M个GPU服务器中的每个GPU服务器均与一组交换机连接,所述每个GPU服务器上设置有一组网卡、所述一组网卡中的每个网卡接入所述一组交换机中的不同交换机、所述M个GPU服务器中的不同GPU服务器上具有相同网卡名称的网卡接入所述一组交换机中的同一交换机,所述一组网卡中的每个网卡与所在的GPU服务器上的一组GPU资源对应,M为正整数,所述一组线程中的至少部分线程分配到的N个GPU资源是多个GPU服务器上相同网卡名称的网卡对应的GPU资源;
执行模块,用于通过所述一组线程以及为所述一组线程中的每个线程分配的允许使用的N个GPU资源,执行所述目标任务。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至8任一项中所述的方法的步骤。
11.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至8任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211192916.2A CN115509749A (zh) | 2022-09-28 | 2022-09-28 | 任务执行方法和装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211192916.2A CN115509749A (zh) | 2022-09-28 | 2022-09-28 | 任务执行方法和装置、存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509749A true CN115509749A (zh) | 2022-12-23 |
Family
ID=84505838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211192916.2A Pending CN115509749A (zh) | 2022-09-28 | 2022-09-28 | 任务执行方法和装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509749A (zh) |
-
2022
- 2022-09-28 CN CN202211192916.2A patent/CN115509749A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN112162865A (zh) | 服务器的调度方法、装置和服务器 | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和系统 | |
CN111880936B (zh) | 资源调度方法、装置、容器集群、计算机设备和存储介质 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
CN114610474B (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
US20230176929A1 (en) | Resource allocation method and apparatus based on edge computing | |
CN112463390A (zh) | 一种分布式任务调度方法、装置、终端设备及存储介质 | |
CN103503412A (zh) | 用于调度资源的方法及装置 | |
CN115460216A (zh) | 算力资源调度方法和装置、算力资源调度设备、系统 | |
CN110515728B (zh) | 服务器调度方法、装置、电子设备及机器可读存储介质 | |
CN111949681A (zh) | 数据的聚合处理装置、方法和存储介质 | |
CN105872082B (zh) | 基于容器集群负载均衡算法的细粒度资源响应系统 | |
CN116700920A (zh) | 云原生混合部署集群资源调度方法及装置 | |
CN111291018A (zh) | 数据管理方法、装置、设备及存储介质 | |
CN115421930B (zh) | 任务处理方法、系统、装置、设备及计算机可读存储介质 | |
CN114327862B (zh) | 一种内存分配方法、装置、电子设备及存储介质 | |
CN115509749A (zh) | 任务执行方法和装置、存储介质和电子设备 | |
CN116204302A (zh) | 一种基于k8s安卓云手机的设备调度方法 | |
CN109257256A (zh) | 设备监控方法、装置、计算机设备及存储介质 | |
CN114237902A (zh) | 一种服务部署方法、装置、电子设备及计算机可读介质 | |
CN111796934B (zh) | 任务下发方法、装置、存储介质和电子设备 | |
CN115328612A (zh) | 资源分配方法、装置、设备以及存储介质 | |
CN114490083A (zh) | Cpu资源的绑定方法、装置、存储介质及电子装置 | |
CN114461369A (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 |