CN110389843A - 一种业务调度方法、装置、设备及可读存储介质 - Google Patents
一种业务调度方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN110389843A CN110389843A CN201910689973.3A CN201910689973A CN110389843A CN 110389843 A CN110389843 A CN 110389843A CN 201910689973 A CN201910689973 A CN 201910689973A CN 110389843 A CN110389843 A CN 110389843A
- Authority
- CN
- China
- Prior art keywords
- goal task
- host
- gpu
- numa
- numa 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 abstract description 26
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 101000598160 Homo sapiens Nuclear mitotic apparatus protein 1 Proteins 0.000 description 100
- 102100036961 Nuclear mitotic apparatus protein 1 Human genes 0.000 description 100
- 238000012549 training Methods 0.000 description 10
- 238000013135 deep learning Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 101710176296 Switch 2 Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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
Abstract
本发明公开了一种业务调度方法,包括获取目标任务;获取kubernets集群中可执行目标任务的可用主机;将目标任务按照可用主机中NUMA组内空余GPU数量从多到少的顺序依次向NUMA组分配对应空余GPU数量的目标任务;根据预先获取的主机拓扑信息调用NUMA组内的GPU与同一NUMA组的CPU处理NUMA组对应的目标任务。在分配目标任务时,具体会优先使用同一NUMA组内的GPU与CPU处理目标任务,该GPU与CPU之间通讯距离最短,可以提高kubernets集群资源利用率和GPU资源利用率,从而减少业务执行时间。本发明还提供了一种装置、设备以及可读存储介质,同样具有上述有益效果。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种业务调度方法、一种业务调度装置、一种业务调度设备以及一种计算机可读存储介质。
背景技术
容器以其操作系统无关性的特性,受到众多开发人员、运维人员、各大云厂商的喜爱,在人工智能领域,越来越多的算法人员逐渐开始使用容器进行深度学习任务运行环境的打包、部署以及调试,从而解决深度学习环境搭建复杂的问题。对于致力于提供深度学习训练环境的平台厂商,通常会使用Kubernetes(是一个开源的,用于管理云平台中多个主机上的容器化的应用,简称:K8s)进行训练环境的管理,主要包括为深度学习任务创建基于容器的训练环境,并分配合理的GPU卡、CPU、内存等资源,算法人员可以使用平台提供的训练环境运行深度学习的训练任务。从资源利用率的角度,平台运维人员希望分配出去的资源能够被充分利用,提高集群的资源利用率,使用该训练环境的算法人员希望训练任务能够使用尽可能少的时间完成,加快模型的迭代速度。
在现有技术中,在通过Kubernetes分配任务资源时,通常仅仅是使用了GPU卡数量的选择,即在分布式场景下,目前的技术只是判断GPU卡的数量是否充足,如果GPU卡数量够就会执行任务。但是在现有技术中,通过上述任务分配策略分配的任务执行速度通常较慢,所以如何提高kubernets集群中任务执行速度是本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种业务调度方法,可以有效提高kubernets集群中任务执行速度;本发明的另一目的在于提供一种业务调度装置、一种业务调度设备以及一种计算机可读存储介质,可以有效提高kubernets集群中任务执行速度。
为解决上述技术问题,本发明提供一种业务调度方法,包括:
获取目标任务;
获取kubernets集群中可执行所述目标任务的可用主机;
将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务;
根据预先获取的主机拓扑信息调用所述NUMA组内的GPU与同一NUMA组的CPU处理所述NUMA组对应的目标任务。
可选的,在所述将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务之前,所述方法还包括:
当所述目标任务需要多个所述NUMA组运行所述目标任务时,根据所述主机拓扑信息将所述目标任务分配给同一可用主机。
可选的,在所述将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务之前,所述方法还包括:
当所述目标任务需要多个所述可用主机运行所述目标任务时,根据预先获取的集群拓扑信息将所述目标任务分配给同一交换机所连接的多个所述可用主机。
可选的,在所述将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务之前,所述方法还包括:
当所述目标任务需要多个所述交换机对应的所述可用主机运行所述目标任务时,根据所述集群拓扑信息将所述目标任务分配给与同一父交换机连接的所述可用主机。
可选的,在所述根据预先获取的主机拓扑信息调用所述NUMA组内的GPU与同一NUMA组的CPU处理所述NUMA组对应的目标任务之前,所述方法还包括:
通过设置在所述kubernets集群中全部主机的代理获取所述主机的主机拓扑信息。
可选的,所述获取kubernets集群中可执行所述目标任务的可用主机包括:
根据kubernets的默认调度策略确定所述kubernets集群中的待用主机;
在所述待用主机中根据所述目标任务的任务信息确定所述可用主机。
本发明还提供了一种业务调度装置,包括:
任务获取模块:用于获取目标任务;
可用主机获取模块:用于获取kubernets集群中可执行所述目标任务的可用主机;
分配模块:用于将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务;
调度模块:根据预先获取的主机拓扑信息调用所述NUMA组内的GPU与同一NUMA组的CPU处理所述目标任务。
可选的,还包括:
第一主机分配模块:用于当所述目标任务需要多个所述NUMA组运行所述目标任务时,根据所述主机拓扑信息将所述目标任务分配给同一可用主机。
本发明还提供了一种业务调度设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序时实现如上述任一项所述业务调度方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述业务调度方法的步骤。
本发明所提供的一种业务调度方法,包括获取目标任务;获取kubernets集群中可执行目标任务的可用主机;将目标任务按照可用主机中NUMA组内空余GPU数量从多到少的顺序依次向NUMA组分配对应空余GPU数量的目标任务;根据预先获取的主机拓扑信息调用NUMA组内的GPU与同一NUMA组的CPU处理NUMA组对应的目标任务。在分配目标任务时,不单单是选择符合目标任务需求的可用主机,还具体会优先使用同一NUMA组内的GPU执行目标任务,并选用与该GPU同一NUMA组内的CPU处理目标任务。由于GPU与CPU同属于一个NUMA组,该GPU与CPU之间通讯距离最短,通讯时间最短,通讯损耗最小,可以提高kubernets集群资源利用率和GPU资源利用率,从而减少业务执行时间,例如深度学习训练任务的执行时间。
本发明还提供了一种业务调度装置、一种业务调度设备以及一种计算机可读存储介质,同样具有上述有益效果,在此不再进行赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种业务调度方法的流程图;
图2为本发明实施例所提供的一种具体的业务调度方法的流程图;
图3为本发明实施例所提供的一种主机的结构拓扑示意图;
图4为本发明实施例所提供的另一种具体的业务调度方法的流程图;
图5为本发明实施例所提供的一种kubernets集群的结构拓扑示意图;
图6为本发明实施例所提供的再一种具体的业务调度方法的流程图;
图7为本发明实施例所提供的一种业务调度装置的结构框图;
图8为本发明实施例所提供的一种业务调度设备的结构框图。
具体实施方式
本发明的核心是提供一种业务调度方法。在现有技术中,在通过Kubernetes分配任务资源时,通常仅仅是使用了GPU卡数量的选择,即在分布式场景下,目前的技术只是判断GPU卡的数量是否充足,如果GPU卡数量够就会执行任务。由于没有考虑到不同GPU以及与CPU之间的通讯损耗,经常会跨NUMA组、跨主机或跨交换机分配任务,这将使得任务执行的信息传递过程中,具有较高的通讯损耗,从而导致在现有技术中任务执行需要大量的时间。
而本发明所提供的一种业务调度方法,包括获取目标任务;获取kubernets集群中可执行目标任务的可用主机;将目标任务按照可用主机中NUMA组内空余GPU数量从多到少的顺序依次向NUMA组分配对应空余GPU数量的目标任务;根据预先获取的主机拓扑信息调用NUMA组内的GPU与同一NUMA组的CPU处理NUMA组对应的目标任务。由于GPU与CPU同属于一个NUMA组,该GPU与CPU之间通讯距离最短,通讯时间最短,通讯损耗最小,可以提高kubernets集群资源利用率和GPU资源利用率,从而减少业务执行时间,例如深度学习训练任务的执行时间。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种业务调度方法的流程图。
参见图1,在本发明实施例中,所述业务调度方法包括:
S101:获取目标任务。
在本步骤中,需要获取kubernets集群需要执行的任务,即目标任务。该目标任务在本发明实施例中通常为深度学习的训练任务等需要GPU做大量重复计算的任务,相应的在本发明实施例的后续步骤中会优选分配相应的GPU用于执行该目标任务。当然,在本发明实施例中上述目标任务还可以是其他任务,在本发明实施例中并不做具体限定。有关获取目标任务的具体步骤可以参考现有技术,在此不再进行赘述。需要说明的是,在本步骤中,除了会获取目标任务之外,通常还获取目标任务对应的目标任务信息,例如该目标任务运行时所需GPU数量、所需CPU数量、所需内存空间、以及所需磁盘空间等等。
S102:获取kubernets集群中可执行目标任务的可用主机。
在本发明实施例中,kubernets集群即在分布式集群中部署了kubernets的集群,在该集群中各个主机通常均设置有kubernets的相关模块。Kubernets通常可以调用kubernets集群内资源,包括GPU、CPU、内存等;还可以分配例如S101中接收的目标任务等等。
在本步骤中,会根据目标任务,具体是根据目标任务信息确定kubernets集群中可以用于执行目标任务的可用主机,即空闲主机,该可用主机即可以运行该目标任务的主机。需要说明的是,上述可用主机并非需要单独运行目标任务的主机,仅仅可以执行部分目标任务的主机也可以称之为可用主机。具体的,在本步骤中,首选需要从kubernets集群中选取可以运行目标任务的主机,即从kubernets集群中选取GPU、CPU、内存满足要求,同时没有内存压力以及磁盘压力的主机作为可用主机。可用主机的选取算法可以参考下述公式:
其中,host.gpuFree≥job.gpu为主机内空余GPU数量不小于目标业务所需GPU数量;host.memoryFree≥job.memory为主机内空余内存空间不小于目标业务所需内存空间;host.cpuFree≥job.cpu为主机内空余CPU数量不小于目标业务所需CPU数量;host.diskPressure<diskPressureThread为主机内磁盘压力小于磁盘压力线;host.memoryPressure<memoryPressureThread为主机内内存压力小于内存压力线。根据上述公式选取的主机可以作为可用主机用于执行目标任务。
S103:将目标任务按照可用主机中NUMA组内空余GPU数量从多到少的顺序依次向NUMA组分配对应空余GPU数量的目标任务。
在本发明实施例中,kubernets集群内主机通常是基于NUMA(Non Uniform MemoryAccess Architecture,非统一内存访问架构)构建的主机,在主机中划分有多个NUMA组,每个NUMA组内设置有一定数量的GPU以及CPU,GPU与同一NUMA组内的CPU通讯连接,不同NUMA组之间的CPU通讯连接。有关本发明实施例中主机的具体拓扑信息将在下述发明实施例中做详细介绍,在此不再进行赘述。
在本发明实施例中,会首先将可用主机中各个NUMA组根据各个NUMA组内空余GPU数量进行排序,通常是根据空余GPU数量从多到少的顺序进行排序,之后会根据该顺序向NUMA组分配对应各自NUMA组空余GPU数量的目标任务。所谓对应各自NUMA组空余GPU数量的目标任务,即等同于NUMA组空余GPU可以处理最大业务量的目标任务,以尽可能让同一NUMA组内的GPU处理该可用主机所分配到的目标任务。具体的,当空余GPU数量最多的NUMA组可以单独完全执行目标任务时,会将目标任务全部分配给该NUMA组。
S104:根据预先获取的主机拓扑信息调用NUMA组内的GPU与同一NUMA组的CPU处理目标任务。
在本步骤之前,需要预先获取上述可用主机的主机拓扑信息,该主机拓扑信息标识了主机内用传输介质互连各种设备的物理布局。具体的,通常标识上述GPU所属NUMA组、CPU所属NUMA组等信息。有关主机拓扑信息的具体内容将在下述发明实施例中做详细介绍,在此不再进行赘述。在本步骤中,需要根据主机拓扑信息调用同一NUMA组内的GPU以及CPU相互配合执行分配到的目标任务,以尽可能减少GPU之间的通讯损失,以及尽可能减少GPU与CPU之间的通讯损失,实现业务调度。
本发明实施例所提供的一种业务调度方法,包括获取目标任务;获取kubernets集群中可执行目标任务的可用主机;将目标任务按照可用主机中NUMA组内空余GPU数量从多到少的顺序依次向NUMA组分配对应空余GPU数量的目标任务;根据预先获取的主机拓扑信息调用NUMA组内的GPU与同一NUMA组的CPU处理NUMA组对应的目标任务。在分配目标任务时,不单单是选择符合目标任务需求的可用主机,还具体会优先使用同一NUMA组内的GPU执行目标任务,并选用与该GPU同一NUMA组内的CPU处理目标任务。由于GPU与CPU同属于一个NUMA组,该GPU与CPU之间通讯距离最短,通讯时间最短,通讯损耗最小,可以提高kubernets集群资源利用率和GPU资源利用率,从而减少业务执行时间,例如深度学习训练任务的执行时间。
有关本发明所提供的一种业务调度方法的具体内容将在下述发明实施例中做详细介绍。
请参考图2以及图3,图2为本发明实施例所提供的一种具体的业务调度方法的流程图;图3为本发明实施例所提供的一种主机的结构拓扑示意图。
参见图2,在本发明实施例中,所述业务调度方法包括:
S201:通过设置在kubernets集群中全部主机的代理获取主机的主机拓扑信息。
上述发明实施例以及本发明实施例所提供的一种业务调度方法实质上以一种kubernets集群内调度器的具体执行步骤,在本发明实施例中通常需要在kubernets集群内的每个主机部署一个代理,即agent,该agent用于上报当前主机的主机拓扑信息,同时将调度器容器化并以kubernets Pod的形式进行部署。
参见图3,在本发明实施例中,主机内划分为多个NUMA组,即NUMA0以及NUMA1,当然,在实际情况中可以划分更多或更少的NUMA组,视具体情况而定,有关主机内各个部件的具体数量在本发明实施例中并不做具体限定。在本发明实施例中,NUMA组之间通常通过QPI(Quick Path Interconnect,又名CSI,Common System Interface公共系统接口)连接。在同一NUMA组内,通常设置有多个GPU,例如GPU0、GPU1,或GPU2、GPU3;以及多个CPU,例如CPU0、CPU1、CPU2、CPU3,或CPU4、CPU5、CPU6、CPU7。在同一NUMA组内GPU与CPU,以及GPU之间通常通过PCIe连接器,即PCIe-Switch通讯连接。
在本步骤中,设置在每台主机内的代理会以预设的格式发送主机的主机拓扑信息,即本步骤中,通过设置在kubernets集群中全部主机的代理获取主机的主机拓扑信息。上述主机拓扑信息通常需要包括主机IP、GPU ID、GPU显存、GPU已使用显存、GPU卡对应的CPU ID,通常是以下json数据格式进行上报:
{"hostip":"192.168.159.128","gpu":[{"memoryTotal":"32G","memoryUsed":"10G","no":0,"numa":"0","cpu":["cpu0","cpu1","cpu2","cpu3"]},{"memoryTotal":"32G","memoryUsed":"10G","no":1,"numa":"1","cpu":["cpu4","cpu5","cpu6","cpu7"]}]}
需要说明的是,本步骤可以本发明实施例所提供的一种业务调度方法的最开始执行,只要是在后续步骤中S207之前执行即可,通常是与下述步骤并行的执行。
S202:获取目标任务。
本步骤与上述发明实施例中S101基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。
S203:根据kubernets的默认调度策略确定kubernets集群中的待用主机。
在本步骤中,通常会首先调用kubernets的默认调度策略,以判断kubernets集群中主机的非GPU相关信息,例如任务需要的内存信息是否满足标准,例如,若该主机的内存不足,这个主机不会被选用执行目标任务。有关kubernets的默认调度策略可以参见下表1:
表1.kubernets的默认调度策略
在本步骤中,会依据kubernets的默认调度策略,根据kubernets集群中主机的非GPU相关信息筛选出待用主机,使用kubernets的默认调度策略可以有效降低调度器的开发难度。
S204:在待用主机中根据目标任务的任务信息确定可用主机。
在本步骤中,会依据上述发明实施例中所述的可用主机的选取算法,依据目标任务的任务信息从待用主机中筛选出可用主机,以便后续步骤中调用可用主机的资源运行目标任务。有关可用主机的选取算法的具体内容已在上述发明实施例中做详细介绍,在此不再进行赘述。
S205:当目标任务需要多个NUMA组运行目标任务时,根据主机拓扑信息将目标任务分配给同一可用主机。
在本步骤中,当目标任务无法在同一NUMA组内运行时,为了减少NUMA组之间的通讯损失,在本步骤中需要根据上述主机拓扑信息将目标任务分配给同一可用主机内的多个NUMA组,从而尽可能使用同一可用主机运行目标任务,降低NUMA组之间的通讯损失。在判断是否需要多个NUMA组运行目标任务时,通常是将目标任务所用资源与多个NUMA组中可用资源最大的NUMA组进行比对,从而得出结论。
S206:将目标任务按照可用主机中NUMA组内空余GPU数量从多到少的顺序依次向NUMA组分配对应空余GPU数量的目标任务。
本步骤与上述发明实施例中S103基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。
S207:根据预先获取的主机拓扑信息调用NUMA组内的GPU与同一NUMA组的CPU处理目标任务。
本步骤与上述发明实施例中S104基本一致,详细内容已在上述发明实施例中做详细介绍,在此不再进行赘述。在本步骤中,由于仅分配给NUMA组部分目标任务,即预先划分的目标子任务,相应的在本步骤中NUMA组的GPU仅用于执行NUMA组对应的目标任务,该NUMA组内的CPU仅用于处理该NUMA组对应的目标任务。
本发明实施例所提供的一种业务调度方法,可以尽可能减少完成目标任务的可用主机内的通讯损耗,提高kubernets集群资源利用率和GPU资源利用率,减少业务执行时间。
有关本发明所提供的一种业务调度方法的具体内容将在下述发明实施例中做详细介绍。
请参考图4以及图5,图4为本发明实施例所提供的另一种具体的业务调度方法的流程图;图5为本发明实施例所提供的一种kubernets集群的结构拓扑示意图。
参见图4,在本发明实施例中,所述业务调度方法包括:
S301:获取目标任务。
S302:获取kubernets集群中对应目标任务的可用主机。
上述S301至S302与上述发明实施例中S101至S102基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。
S303:当目标任务需要多个可用主机运行目标任务时,根据预先获取的集群拓扑信息将目标任务分配给同一交换机所连接的多个可用主机。
参见图5,在本发明实施例中,kubernets集群中主机通常是由交换机相互通讯连接,而交换机之间通常是呈树结构连接,例如,图4中switch1为switch3的父交换机,主机host0依次通过交换机switch3、switch1、switch4与主机host2通讯连接。当然,在本发明实施例中kubernets集群还可以具有其他数量的交换机和主机,图4仅做举例说明。在本步骤之前,需要预先获取kubernets集群的集群拓扑信息,该集群拓扑信息标识了kubernets集群内用传输介质互连的设备,即交换机与主机之间的物理布局。上述集群拓扑信息通常需要包括交换机编号、交换机级联信息、交换机主机关系信息,该集群拓扑信息的数据格式可以如下所示:
[{"switchname":"switch0","info":{"switch":["switch1","switch2"],"hosts":[]}},{"switchname":"switch1","info":{"switch":["switch3","switch4"],"hosts":[]}},{"switchname":"switch2","info":{"switch":["switch5","switch6"],"hosts":[]}},
{"switchname":"switch3","info":{"switch":[],"hosts":["host0","host1"]}},{"switchname":"switch4","info":{"switch":[],"hosts":["host2","host3"]}},{"switchname":"switch5","info":{"switch":[],"hosts":["host4","host5"]}},{"switchname":"switch6","info":{"switch":[],"hosts":["host6","host7"]}}]
在本步骤中,当目标任务无法在同一可用主机内运行时,需要将目标任务分配给多个可用主机。为了减少可用主机之间的通讯损失,本步骤中需要根据上述集群拓扑信息将目标任务分配给与同一交换机连接的可用主机,从而尽可能使同一交换机运行目标任务,降低可用主机之间的通讯损失。在判断是否需要多个可用主机运行目标任务时,通常是将目标任务所用资源与多个可用主机中可用资源最大的可用主机进行比对,从而得出结论。
S304:将目标任务按照可用主机中NUMA组内空余GPU数量从多到少的顺序依次向NUMA组分配对应空余GPU数量的目标任务。
S305:根据预先获取的主机拓扑信息调用NUMA组内的GPU与同一NUMA组的CPU处理目标任务。
上述S304至S305与上述发明实施例中S206至S207基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。
本发明实施例所提供的一种业务调度方法,可以尽可能减少完成目标任务的可用主机内外的通讯损耗,提高kubernets集群资源利用率和GPU资源利用率,减少业务执行时间。
有关本发明所提供的一种业务调度方法的具体内容将在下述发明实施例中做详细介绍。
请参考图6,图6为本发明实施例所提供的再一种具体的业务调度方法的流程图。
参见图6,在本发明实施例中,所述业务调度方法包括:
S401:获取目标任务。
S402:获取kubernets集群中对应目标任务的可用主机。
上述S401至S402与上述发明实施例中S101至S102基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。
S403:当目标任务需要多个交换机对应的可用主机运行目标任务时,根据集群拓扑信息将目标任务分配给与同一父交换机连接的可用主机。
在本步骤中,当目标任务无法在同一交换机内运行时,需要将该目标任务通过多个交换机分配给多个可用主机。为了减少交换机之间的通讯损失,在本步骤中需要根据上述集群拓扑信息将目标任务通过与同一父交换机连接的多个交换机分配给多个可用主机,从而尽可能使用同一父交换机连接的可用主机内运行目标任务,降低交换机之间的通讯损失。在判断是否需要多个交换机连接的可用主机运行目标任务时,通常是将目标任务所用资源与多个交换机中可用资源最大的交换机进行比对,从而得出结论。
S404:将目标任务按照可用主机中NUMA组内空余GPU数量从多到少的顺序依次向NUMA组分配对应空余GPU数量的目标任务。
S405:根据预先获取的主机拓扑信息调用NUMA组内的GPU与同一NUMA组的CPU处理目标任务。
上述S404至S405与上述发明实施例中S304至S305基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。
本发明实施例所提供的一种业务调度方法,可以尽可能减少完成目标任务的可用主机内外的通讯损耗,提高kubernets集群资源利用率和GPU资源利用率,减少业务执行时间。
下面对本发明实施例所提供的一种业务调度装置进行介绍,下文描述的业务调度装置与上文描述的业务调度方法可相互对应参照。
图7为本发明实施例所提供的一种业务调度装置的结构框图,参照图7业务调度装置可以包括:
任务获取模块100:用于获取目标任务。
可用主机获取模块200:用于获取kubernets集群中可执行所述目标任务的可用主机。
分配模块300:用于将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务。
调度模块400:根据预先获取的主机拓扑信息调用所述可用主机中同一NUMA组内的GPU执行所述目标任务,并调用与所述GPU处于同一NUMA组的CPU处理所述目标任务。
作为优选的,在本发明实施例中,业务调度装置还可以包括:
第一主机分配模块:用于当所述目标任务需要多个所述NUMA组运行所述目标任务时,根据所述主机拓扑信息将所述目标任务分配给同一可用主机。
作为优选的,在本发明实施例中,业务调度装置还可以包括:
第二主机分配模块:用于当所述目标任务需要多个所述可用主机运行所述目标任务时,根据预先获取的集群拓扑信息将所述目标任务分配给同一交换机所连接的多个所述可用主机。作为优选的,在本发明实施例中,业务调度装置还可以包括:
第三主机分配模块:用于当所述目标任务需要多个所述交换机对应的所述可用主机运行所述目标任务时,根据所述集群拓扑信息将所述目标任务分配给与同一父交换机连接的所述可用主机。作为优选的,在本发明实施例中,业务调度装置还可以包括:
主机拓扑信息获取模块:用于通过设置在所述kubernets集群中全部主机的代理获取所述主机的主机拓扑信息。
作为优选的,在本发明实施例中,可用主机获取模块200可以包括:
待用主机获取单元:用于根据kubernets的默认调度策略确定所述kubernets集群中的待用主机;
可用主机获取单元:用于在所述待用主机中根据所述目标任务的任务信息确定所述可用主机。
本实施例的业务调度装置用于实现前述的业务调度方法,因此业务调度装置中的具体实施方式可见前文中业务调度方法的实施例部分,例如,任务获取模块100,可用主机获取模块200,分配模块300,调度模块400分别用于实现上述业务调度方法中步骤S101,S102,S103以及S104,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
下面对本发明实施例提供的一种业务调度设备进行介绍,下文描述的业务调度设备与上文描述的业务调度方法以及业务调度装置可相互对应参照。
请参考图8,图8为本发明实施例所提供的一种业务调度设备的结构框图。
参照图8,该业务调度设备可以包括处理器11和存储器12。
所述存储器12用于存储计算机程序;所述处理器11用于执行所述计算机程序时实现上述发明实施例中所述的业务调度方法。
本实施例的业务调度设备中处理器11用于安装上述发明实施例中所述的业务调度装置,同时处理器11与存储器12相结合可以实现上述任一发明实施例中所述的业务调度方法。因此业务调度设备中的具体实施方式可见前文中的图书推荐方法的实施例部分,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一发明实施例中所介绍的一种业务调度方法。其余内容可以参照现有技术,在此不再进行展开描述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种业务调度方法、一种业务调度装置、一种业务调度设备以及一种计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种业务调度方法,其特征在于,包括:
获取目标任务;
获取kubernets集群中可执行所述目标任务的可用主机;
将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务;
根据预先获取的主机拓扑信息调用所述NUMA组内的GPU与同一NUMA组的CPU处理所述NUMA组对应的目标任务。
2.根据权利要求1所述的方法,其特征在于,在所述将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务之前,所述方法还包括:
当所述目标任务需要多个所述NUMA组运行所述目标任务时,根据所述主机拓扑信息将所述目标任务分配给同一可用主机。
3.根据权利要求2所述的方法,其特征在于,在所述将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务之前,所述方法还包括:
当所述目标任务需要多个所述可用主机运行所述目标任务时,根据预先获取的集群拓扑信息将所述目标任务分配给同一交换机所连接的多个所述可用主机。
4.根据权利要求3所述的方法,其特征在于,在所述将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务之前,所述方法还包括:
当所述目标任务需要多个所述交换机对应的所述可用主机运行所述目标任务时,根据所述集群拓扑信息将所述目标任务分配给与同一父交换机连接的所述可用主机。
5.根据权利要求1所述的方法,其特征在于,在所述根据预先获取的主机拓扑信息调用所述NUMA组内的GPU与同一NUMA组的CPU处理所述NUMA组对应的目标任务之前,所述方法还包括:
通过设置在所述kubernets集群中全部主机的代理获取所述主机的主机拓扑信息。
6.根据权利要求1所述的方法,其特征在于,所述获取kubernets集群中可执行所述目标任务的可用主机包括:
根据kubernets的默认调度策略确定所述kubernets集群中的待用主机;
在所述待用主机中根据所述目标任务的任务信息确定所述可用主机。
7.一种业务调度装置,其特征在于,包括:
任务获取模块:用于获取目标任务;
可用主机获取模块:用于获取kubernets集群中可执行所述目标任务的可用主机;
分配模块:用于将目标任务按照所述可用主机中NUMA组内空余GPU数量从多到少的顺序依次向所述NUMA组分配对应空余GPU数量的目标任务;
调度模块:根据预先获取的主机拓扑信息调用所述NUMA组内的GPU与同一NUMA组的CPU处理所述目标任务。
8.根据权利要求7所述的装置,其特征在于,还包括:
第一主机分配模块:用于当所述目标任务需要多个所述NUMA组运行所述目标任务时,根据所述主机拓扑信息将所述目标任务分配给同一可用主机。
9.一种业务调度设备,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序时实现如权利要求1至6任一项所述业务调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述业务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910689973.3A CN110389843B (zh) | 2019-07-29 | 2019-07-29 | 一种业务调度方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910689973.3A CN110389843B (zh) | 2019-07-29 | 2019-07-29 | 一种业务调度方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110389843A true CN110389843A (zh) | 2019-10-29 |
CN110389843B CN110389843B (zh) | 2022-04-15 |
Family
ID=68287878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910689973.3A Active CN110389843B (zh) | 2019-07-29 | 2019-07-29 | 一种业务调度方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389843B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014611A (zh) * | 2019-12-19 | 2021-06-22 | 华为技术有限公司 | 一种负载均衡方法及相关设备 |
CN113377520A (zh) * | 2021-07-07 | 2021-09-10 | 北京百度网讯科技有限公司 | 资源调度方法、装置、设备以及存储介质 |
CN113722085A (zh) * | 2020-05-26 | 2021-11-30 | 安图斯科技股份有限公司 | 图形资源的分配方法与分配系统 |
CN114422419A (zh) * | 2021-12-17 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 网络设备连接方法及装置 |
CN116610372A (zh) * | 2023-07-14 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 一种中央处理器配置方法、装置及相关产品 |
CN117311990A (zh) * | 2023-11-28 | 2023-12-29 | 苏州元脑智能科技有限公司 | 资源调整方法、装置、电子设备、存储介质及训练平台 |
US11868805B2 (en) | 2021-04-13 | 2024-01-09 | Red Hat, Inc. | Scheduling workloads on partitioned resources of a host system in a container-orchestration system |
CN113014611B (zh) * | 2019-12-19 | 2024-05-14 | 华为技术有限公司 | 一种负载均衡方法及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107436798A (zh) * | 2017-08-15 | 2017-12-05 | 深信服科技股份有限公司 | 一种基于numa节点的进程访问方法及装置 |
CN107967180A (zh) * | 2017-12-19 | 2018-04-27 | 上海交通大学 | 基于numa虚拟化环境下资源全局亲和度网络优化方法和系统 |
CN108363623A (zh) * | 2018-02-27 | 2018-08-03 | 郑州云海信息技术有限公司 | Gpu资源调度方法、装置、设备及计算机可读存储介质 |
US20180307972A1 (en) * | 2017-04-24 | 2018-10-25 | International Business Machines Corporation | Local multicast in single-host multi-gpu machine for distributed deep learning systems |
CN109167835A (zh) * | 2018-09-13 | 2019-01-08 | 重庆邮电大学 | 一种基于kubernetes的物理资源调度方法及系统 |
US20190146850A1 (en) * | 2017-11-10 | 2019-05-16 | Amazon Technologies, Inc. | Capacity management in provider networks using dynamic host device instance model reconfigurations |
-
2019
- 2019-07-29 CN CN201910689973.3A patent/CN110389843B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180307972A1 (en) * | 2017-04-24 | 2018-10-25 | International Business Machines Corporation | Local multicast in single-host multi-gpu machine for distributed deep learning systems |
CN107436798A (zh) * | 2017-08-15 | 2017-12-05 | 深信服科技股份有限公司 | 一种基于numa节点的进程访问方法及装置 |
US20190146850A1 (en) * | 2017-11-10 | 2019-05-16 | Amazon Technologies, Inc. | Capacity management in provider networks using dynamic host device instance model reconfigurations |
CN107967180A (zh) * | 2017-12-19 | 2018-04-27 | 上海交通大学 | 基于numa虚拟化环境下资源全局亲和度网络优化方法和系统 |
CN108363623A (zh) * | 2018-02-27 | 2018-08-03 | 郑州云海信息技术有限公司 | Gpu资源调度方法、装置、设备及计算机可读存储介质 |
CN109167835A (zh) * | 2018-09-13 | 2019-01-08 | 重庆邮电大学 | 一种基于kubernetes的物理资源调度方法及系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014611A (zh) * | 2019-12-19 | 2021-06-22 | 华为技术有限公司 | 一种负载均衡方法及相关设备 |
CN113014611B (zh) * | 2019-12-19 | 2024-05-14 | 华为技术有限公司 | 一种负载均衡方法及相关设备 |
CN113722085A (zh) * | 2020-05-26 | 2021-11-30 | 安图斯科技股份有限公司 | 图形资源的分配方法与分配系统 |
CN113722085B (zh) * | 2020-05-26 | 2024-04-30 | 安图斯科技股份有限公司 | 图形资源的分配方法与分配系统 |
US11868805B2 (en) | 2021-04-13 | 2024-01-09 | Red Hat, Inc. | Scheduling workloads on partitioned resources of a host system in a container-orchestration system |
CN113377520A (zh) * | 2021-07-07 | 2021-09-10 | 北京百度网讯科技有限公司 | 资源调度方法、装置、设备以及存储介质 |
CN114422419A (zh) * | 2021-12-17 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 网络设备连接方法及装置 |
CN116610372A (zh) * | 2023-07-14 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 一种中央处理器配置方法、装置及相关产品 |
CN116610372B (zh) * | 2023-07-14 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 一种中央处理器配置方法、装置及相关产品 |
CN117311990A (zh) * | 2023-11-28 | 2023-12-29 | 苏州元脑智能科技有限公司 | 资源调整方法、装置、电子设备、存储介质及训练平台 |
CN117311990B (zh) * | 2023-11-28 | 2024-02-23 | 苏州元脑智能科技有限公司 | 资源调整方法、装置、电子设备、存储介质及训练平台 |
Also Published As
Publication number | Publication date |
---|---|
CN110389843B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389843A (zh) | 一种业务调度方法、装置、设备及可读存储介质 | |
US10572290B2 (en) | Method and apparatus for allocating a physical resource to a virtual machine | |
CN107222531B (zh) | 一种容器云资源调度方法 | |
CN106385329B (zh) | 资源池的处理方法、装置和设备 | |
CN112000463B (zh) | 一种基于cuda的gpu资源分配方法、系统、终端及存储介质 | |
CN107968802A (zh) | 一种资源调度的方法、装置和过滤式调度器 | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN109471725A (zh) | 资源分配方法、装置和服务器 | |
CN104793996A (zh) | 一种并行计算设备的任务调度方法及任务调度装置 | |
CN110287022A (zh) | 一种调度节点选择方法、装置、存储介质及服务器 | |
CN110166507A (zh) | 多资源调度方法和装置 | |
CN105553732B (zh) | 一种分布式网络模拟方法及系统 | |
CN109976907A (zh) | 任务分配方法和系统、电子设备、计算机可读介质 | |
CN108304044A (zh) | 一种nvme硬盘热插拔的设置方法及系统 | |
CN106970841A (zh) | 一种基于云计算的资源限制及动态调整方法 | |
CN110275760A (zh) | 基于虚拟主机处理器的进程挂起方法及其相关设备 | |
CN111464331A (zh) | 一种线程创建的控制方法、系统及终端设备 | |
CN110795202B (zh) | 一种虚拟化集群资源管理系统的资源分配方法以及装置 | |
CN113626173A (zh) | 调度方法、装置及存储介质 | |
CN102929693B (zh) | 整机柜服务器的性能评测方法及装置 | |
CN105933136B (zh) | 一种资源调度方法及系统 | |
CN111324424A (zh) | 一种虚拟机部署方法、装置、服务器及存储介质 | |
CN108667750A (zh) | 虚拟资源管理方法及装置 | |
CN109617720A (zh) | 一种网络资源的分配方法和装置 | |
CN115080242A (zh) | 一种pci设备资源统一调度的方法、装置及介质 |
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 |