一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

资源分配方法、装置、设备以及存储介质与流程

2022-11-14 00:06:11 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及计算机技术中的资源管理、任务分配等领域,具体涉及一种资源分配方法、装置、设备以及存储介质。


背景技术:

2.在机器学习场景中,计算资源往往需要做统一的管理。一些集群(如kubernetes集群,简称k8s集群)执行任务时,会为该任务对应的容器集(pod)分配资源,具体会为pod分配节点和图像处理器(graphics processing unit,gpu)等资源。相关技术中,在分配时,只能为pod分配具有gpu资源的节点。然而,这种分配方法资源利用率较低。


技术实现要素:

3.本公开提供了一种资源分配方法、装置、设备以及存储介质。
4.根据本公开的第一方面,提供了一种资源分配方法,包括:
5.为目标任务创建pod;
6.获取该目标任务的gpu资源需求信息;
7.获取目标集群的可用节点信息和可用gpu资源信息;
8.基于可用节点信息和可用gpu资源信息,为该pod分配满足gpu资源需求信息的第一目标节点和第二目标节点,其中,第一目标节点是为该pod分配的目标gpu资源所在的节点,第二目标节点是为该pod分配的pod所在的节点。
9.根据本公开的第二方面,提供了一种资源分配装置,包括:
10.创建模块,用于为目标任务创建pod;
11.第一获取模块,用于获取该目标任务的gpu资源需求信息;
12.第二获取模块,用于获取目标集群的可用节点信息和可用gpu资源信息;
13.分配模块,用于基于可用节点信息和可用gpu资源信息,为该pod分配满足gpu资源需求信息的第一目标节点和第二目标节点,其中,第一目标节点是为该pod分配的目标gpu资源所在的节点,第二目标节点是为该pod分配的pod所在的节点。
14.根据本公开的第三方面,提供了一种电子设备,包括:
15.至少一个处理器;以及
16.与该至少一个处理器通信连接的存储器;其中,
17.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行上述第一方面所提供的方法。
18.根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行上述第一方面所提供的方法。
19.根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述第一方面所提供的方法。
20.本公开实施例的技术方案,能提高资源利用率。
21.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
22.附图用于更好地理解本方案,不构成对本公开的限定。其中:
23.图1是根据本公开实施例的资源分配方法的流程示意图;
24.图2是根据本公开实施例的机房中各节点之间的关系示意图;
25.图3是根据本公开实施例的资源分配方法的总体流程图;
26.图4是根据本公开实施例的资源分配装置的组成示意图一;
27.图5是根据本公开实施例的资源分配装置的组成示意图二;
28.图6是根据本公开实施例的资源分配场景的示意图;
29.图7是用来实现本公开实施例的资源分配方法的电子设备的框图。
具体实施方式
30.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
31.本公开的说明书实施例和权利要求书及上述附图中的术语"第一"、"第二"和"第三"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语"包括"和"具有"以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
32.本公开实施例提供了一种资源分配方法,图1是根据本公开实施例的资源分配方法的流程示意图,该资源分配方法可以应用于资源分配装置。该资源分配装置位于电子设备,该电子设备包括但不限于固定设备和/或移动设备。该电子设备具有资源调度功能。例如,该电子设备可以部署于目标集群上,或独立于目标集群但能与目标集群连接。在一些可能的实现方式中,该资源分配方法还可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图1所示,该资源分配方法包括:
33.s101:为目标任务创建pod;
34.s102:获取目标任务的gpu资源需求信息;
35.s103:获取目标集群的可用节点信息和可用gpu资源信息;
36.s104:基于可用节点信息和可用gpu资源信息,为pod分配满足gpu资源需求信息的第一目标节点和第二目标节点,其中,第一目标节点是为pod分配的目标gpu资源所在的节点,第二目标节点是为pod分配的pod所在的节点。
37.这里,目标集群可以是私有云交付的集群,如基于kubernetes(简称k8s)构建的集群、基于开源分布式资源管理框架(例如,开源分布式资源管理框架mesos)和应用测试工具(例如,应用测试工具marathon)搭建的集群等。以上仅为示例性说明,不作为对目标集群全部可能的类型的限定,只是这里不做穷举。
38.其中,k8s是基于集群管理器开发的面向容器的容器集群管理平台,它基于容器技术等对底层的主机、网络和存储资源进行统一管理,其提供应用部署、维护、扩展机制等功能,利用k8s能方便地管理跨机器运行容器化的应用。
39.本公开实施例中,目标集群包括多个节点,不同节点的标识不同。节点可以是裸机、物理机、虚拟机等。
40.本公开实施例中,目标任务是需由目标集群执行的任务。比如,目标任务可以是检测任务。又比如,目标任务可以是分类任务。再比如,目标任务可以是分割任务。以上仅为示例性说明,不作为对目标任务全部可能的类型的限定,只是这里不做穷举。
41.本公开实施例中,目标任务是需要使用gpu资源的任务。目标任务运行于pod中。
42.本公开实施例中,目标任务可以是用户通过目标集群的用户接口所创建的任务。目标任务还可以是终端转发的其他设备创建的目标任务。本公开不对目标任务的来源方式进行限定。
43.本公开实施例中,并不对为目标任务创建pod的具体实现方式进行限定。
44.本公开实施例中,gpu资源需求信息包括目标任务请求使用的gpu资源的相关信息。gpu资源需求信息至少包括gpu资源使用量。gpu资源需求信息还可包括请求使用的gpu资源所属gpu卡的类型、gpu资源所属的gpu卡的拓扑关系等gpu资源使用条件。
45.这里,gpu卡的类型包括但不限于英伟达gpu卡、比特大陆gpu卡。
46.这里,gpu卡的拓扑关系,是指gpu卡之间的关系,该关系包括但不限于通信关系、先后关系(被调用顺序)。示例性的,通信关系包括:某个gpu与其他gpu之间的通信方式。示例性的,拓扑关系包括:某个gpu的上一个gpu和下一个gpu是哪一个。
47.当两块或多块gpu存在拓扑关系时,可以在基于该拓扑关系选择被调用的gpu卡。举例来说,节点1具有p张gpu卡,p张gpu卡之间有q张gpu卡之间存在拓扑关系,若q张gpu卡中的r张gpu卡的gpu资源量之和能满足目标任务请求的gpu资源使用量,则节点1可作为候选节点之一。
48.在一些实施例中,获取目标集群的可用节点信息和可用gpu资源信息,包括:根据gpu资源池的上报信息和目标集群的动态信息,确定目标集群的可用节点信息和可用gpu资源信息。
49.这里,可用节点信息可以理解为处于空闲状态的节点。
50.这里,可用gpu资源信息可以理解为处于空闲状态的gpu资源的信息。
51.本公开实施例中,第一目标节点和第二目标节点是目标集群当前可用节点中的两个节点。
52.本公开实施例中,不对s102和s103的执行顺序进行限定。s102和s103可同时执行;或者,s102先于s103执行;或者,s102后于s103执行。
53.本公开实施例所述的技术方案,接收为目标任务创建的pod;获取目标任务的gpu资源需求信息;获取目标集群的可用节点信息和可用gpu资源信息;基于可用节点信息和可用gpu资源信息,为pod分配满足gpu资源需求信息的第一目标节点和第二目标节点;第一目标节点是为pod分配的目标gpu资源所在的节点,第二目标节点是为pod分配的pod所在的节点;如此,相对于只为pod分配具有gpu资源的单个节点的分配方式而言,本公开采用为pod分配两个节点的分配方式,一个是为pod分配的目标gpu资源所在的第一目标节点,一个是
为pod分配的pod所在的第二目标节点,第二目标节点可以不具有gpu资源,进而使第二目标节点基于第一目标节点的gpu资源执行pod对应的目标任务。通过采用为pod和gpu资源分配不同的节点的分配方式,实现了gpu资源所在节点与pod所在节点之间的解耦,消除了只为pod分配具有gpu资源的节点的局限性,提高了资源利用率。
54.在一些实施例中,gpu资源需求信息包括gpu资源使用量、gpu卡的类型以及gpu卡的拓扑结构。基于可用节点信息和可用gpu资源信息,为pod分配满足gpu资源需求信息的第一目标节点和第二目标节点,包括:基于可用节点信息和可用gpu资源信息,为pod确定满足gpu资源使用量的多个候选节点;从多个候选节点确定出满足gpu卡的类型以及gpu卡的拓扑结构的第一节点集合;基于第一节点集合确定第一目标节点和第二目标节点。
55.这里,gpu资源使用量包括请求使用的gpu资源显卡量和/或算力量。
56.举例来说,目标集群包括n个节点,n个节点中有m个节点具有至少一张gpu卡,m、n均为正整数,m小于等于n,n为大于等于2的正整数。假设目标集群当前可用节点包括n1、n2、

、nk共k个节点,若可用节点n1、n2、n3、n4、n5、ni能满足目标任务请求的gpu资源使用量,则将n1、n2、n3、n4、n5、ni确定为候选节点;若n1、n2、n3、n4、n5满足目标任务请求的gpu卡的类型以及gpu卡的拓扑结构,则将n1、n2、n3、n4、n5确定为第一节点集合;其中,k、i均为正整数。
57.如此,通过先为pod确定满足gpu资源使用量的第一节点集合,再基于第一节点集合中确定第一目标节点和第二目标节点,能够提高第一目标节点和第二目标节点的筛选速度,提升第一目标节点和第二目标节点的筛选精确度。
58.在一些实施例中,基于第一节点集合确定第一目标节点和第二目标节点,包括:确定第一节点集合中每个节点的每个gpu对应的gpu资源空闲量;从第一节点集合中筛选出gpu资源空闲量满足gpu资源使用量的节点,作为第二节点集合;基于第二节点集合确定第一目标节点和第二目标节点。
59.这里,gpu资源空闲量可包括显存空闲量和算力空闲量。
60.这里,第二节点集合包括为pod分配的目标gpu资源所在的节点。
61.举例来说,若节点n1、n2、n3、n4、n5被确定为第一节点集合,且第一节点集合中n1、n2、n3、n4的gpu资源能满足目标任务请求的显存和算力,则将节点n1、n2、n3、n4确定为第二节点集合。
62.如此,先从第一节点集合筛选出第二节点集合,再基于第二节点集合中确定第一目标节点和第二目标节点,能够提高第一目标节点和第二目标节点的筛选精确度。
63.在一些实施例中,基于第二节点集合确定第一目标节点和第二目标节点,包括:获取第二节点集合中每个节点所对应交换机的信息;基于第二节点集合中每个节点所对应交换机的信息,确定第二节点集合中每一个节点对应的第三节点集合和第四节点集合;从第二节点集合、第三节点集合和第四节点集合,确定出第一目标节点和第二目标节点。
64.这里,交换机的信息,可包括以下至少之一:交换机的标识,交换机的网络信息和目标集群的网络信息。
65.图2示出了机房中各节点之间的关系示意图,如图2所示,机房中有多个机柜,每个机柜之间通过交换机通信,一个机柜对应一个交换机,一个机柜包括一个或多个节点,每个机柜下的节点之间通过相同的交换机通信,不同的机柜下的节点之间通过交换机转发相关
信息进行通信。每个节点可具有gpu卡,也可不具有gpu卡。图2中,用实线标识的节点具有gpu卡,虚线标识的节点不具有gpu卡。
66.如此,先基于第二节点集合筛选出第三节点集合和第四节点集合,再从第二节点集合、第三节点集合和第四节点集合中确定出第一目标节点和第二目标节点,能够增加第一目标节点和第二目标节点的筛选范围,从而有助于提高资源利用率。
67.在一些实施例中,基于第二节点集合中每个节点所对应交换机的信息,确定第二节点集合中每一个节点对应的第三节点集合和第四节点集合,包括:对于第二节点集合中任一节点,将与该节点对应同一个交换机的节点,确定为该节点对应的第三节点集合;对于第二节点集合中任一节点,将与该节点对应不同交换机的节点,确定为该节点对应的第四节点集合。
68.实际应用中,可为第二节点集合同时确定第三节点集合和第四节点集合。或者,先确定第三节点集合,再确定第四节点集合。或者,先确定第四节点集合,再确定第三节点集合。
69.如此,能够根据第二节点集合中每个节点所对应交换机的信息,为第二节点集合确定出第三节点集合和第四节点集合,能增大第一目标节点和第二目标节点的可选范围,从而有助于提升为pod分配节点和gpu资源的速度。
70.在一些实施例中,从第二节点集合、第三节点集合和第四节点集合中确定出第一目标节点和第二目标节点,包括:获取第二节点集合、第三节点集合和第四节点集合分别对应的负载情况;根据第二节点集合、第三节点集合和第四节点集合分别对应的负载情况,确定第一目标节点和第二目标节点。
71.这里,负载情况可包括各种负载的使用量。负载包括但不限于cpu、磁盘、内存等。举例来说,cpu的使用量可以用cpu的使用率表示。磁盘的使用量可以用磁盘的占用量表示。内存的使用量可以用已用内存的大小表示。
72.如此,能够在增加第一目标节点和第二目标节点的筛选范围的同时,根据第二节点集合、第三节点集合和第四节点集合分别对应的负载情况,确定第一目标节点和第二目标节点,能保证分配出的第一目标节点和第二目标节点的可用性。
73.在一些实施例中,根据第二节点集合、第三节点集合和第四节点集合分别对应的负载情况,确定第一目标节点和第二目标节点,包括:确定第二节点集合、第三节点集合和第四节点集合中每个节点的各种属性以及各种属性对应的权重值;基于每个节点的各种属性对应的权重值,确定每个节点的总权重值;根据每个节点的总权重值,确定最大总权重值;根据最大总权重值确定gpu资源所在的第一目标节点和pod所在的第二目标节点。
74.本公开实施例中,每个节点对应的属性,可包括以下至少之一属性:集合(位于第二节点集合、第三节点集合还是第四节点集合)、对应交换机的网络吞吐量、对应交换机的网络使用量、gpu显存空闲量、gpu算力空闲量、磁盘空闲量、中央处理器(central processing unit,cpu)空闲量、gpu动态优先级。
75.这里,可预先针对每个属性设置一个权重值。
76.其中,节点位于第二节点集合、第三节点集合和第四节点集合的情况下,权重值由高到低进行设置。
77.其中,交换机的网络吞吐量和使用量、gpu显存空闲量、gpu算力空闲量、磁盘空闲
量、cpu空闲量,空闲量越大,权重值越高。
78.其中,gpu优先级越高,权重值越高。
79.举例来说,节点位于第二批、第三批和第四批的情况下,权重值的确定思路为:pod所使用的目标gpu资源位于节点1、2或3;pod位于节点1、2、3
……
或7。当gpu位于节点1,pod也位于节点1(第二节点集合)权重最大,例如为100,因为此时两者位于同一个节点;当gpu位于节点1,pod位于节点2或4(第三节点集合),权重稍小,例如为30,因为此时两者具有同一个交换机;当gpu位于节点1,pod位于节点3、5、6或7(第四节点集合),权重最小,例如为10,因为此时两者不具有同一个交换机。gpu位于其他节点的情况以此类推。第二节点集合、第三节点集合和第四节点集合与权重的关系如表1所示:
80.节点1234567110030103010101023010010301010103101010010303010
81.表1
82.其中,表1中最左侧编号代表gpu所在节点,最上层编号代表pod所在节点。
83.计算权重值时,可参考如下步骤:
84.针对gpu位于节点1的情况,确定pod位于节点1至7的情况下的权重值,即将各个属性所对应的权重值相加得到总和权重;
85.针对gpu位于节点2的情况,确定pod位于节点1至7的情况下的权重值,即将各个属性所对应的权重值相加得到总和权重;
86.针对gpu位于节点3的情况,确定pod位于节点1至7的情况下的权重值,即将各个属性所对应的权重值相加得到总和权重。
87.基于上述步骤,共得到21个总和权重,先从21个总和权重中确定出总和权重的最大值,再基于最大总和权重值确定gpu和pod分别位于的节点,即为最优解。
88.按此结果进行调度,例如gpu位于节点2,pod位于节点1时,总和权重值最大,则为pod分配节点1,并为pod分配节点2的gpu服务地址,以便pod基于该服务地址使用gpu资源。
89.如此,可以当pod和目标gpu资源在不同的节点上时,进行gpu资源的调度,解决了在gpu资源不足的情况下,无法为pod调度节点的问题。并且,提高了gpu资源的使用效率,实现了资源动态调度。
90.在一些实施例中,每个节点的各种属性,至少包括以下属性之一:
91.每个节点所属的集合,不同集合对应的权重值不同;
92.每个节点对应的交换机的网络吞吐量;
93.每个节点对应的交换机的使用量;
94.每个节点对应的gpu的显存空闲量;
95.每个节点对应的gpu的算力空闲量;
96.每个节点对应的磁盘空闲量;
97.每个节点对应的cpu空闲量;
98.每个节点对应的gpu优先级。
99.这里,不同集合对应的权重值不同。第二节点集合的节点的权重值大于第三节点
集合的节点的权重值,第三节点集合的节点的权重值大于第四节点集合的节点的权重值。
100.这里,交换机的网络吞吐量越大,权重值越大。
101.这里,交换机的使用量越大,权重值越小。
102.这里,对于各种空闲量而言,空闲量越大,权重值越大。
103.这里,gpu优先级是指gpu被调度的优先级。这里,gpu优先级越高,权重值越大。
104.如此,通过为不同属性赋予不同的权重值,实现了第一目标节点和第二目标节点的确定标准化,提高了第一目标节点和第二目标节点的确定速度。
105.在一些实施例中,该资源分配方法还可包括:通知第二目标节点利用第一目标节点的目标gpu资源执行目标任务。
106.本公开实施例不对通知方式进行限定。
107.这里,通知第二目标节点利用第一目标节点的目标gpu资源执行目标任务,包括:将第一目标节点的目标gpu资源的服务地址通知第二目标节点,以便由第二目标节点基于目标gpu资源的服务地址调用第一目标节点的目标gpu资源,基于该目标gpu资源执行目标任务。
108.如此,当pod和gpu在不同的节点上时,进行gpu的资源调度,解决了在gpu资源不够的情况下,无法为pod调度节点的问题。并且,提高了gpu资源的使用效率,实现了动态调度。
109.图3示出了资源分配的流程示意图,如图3所示,该流程包括:
110.s301:目标集群获取目标任务的gpu资源需求信息;
111.这里,gpu资源需求信息包括:使用量需求(显存需求和算力需求),使用条件,gpu分配方式,gpu优先级。
112.这里,使用条件包含gpu卡的类型、gpu卡的拓扑关系等。gpu卡的类型包括但不限于:英伟达gpu卡、比特大陆gpu卡。
113.这里,gpu分配方式分为两种:方式a.pod和gpu在同一个节点上;方式b.pod和gpu可以在不同的节点上。
114.这里,gpu优先级是设置的优先级,优先级可以设置为值0至9。优先级越高,被调度的顺序越靠前。
115.这里,目标任务可以是由用户创建的需要使用gpu资源的任务,为任务生成pod,任务可运行于pod中。
116.s302:目标集群根据gpu资源池中的信息、gpu所在的节点信息和集群动态信息,为目标任务对应的pod查找合适的第一节点集合。
117.s303:目标集群基于第一节点集合为pod分配具体的节点,并分配gpu服务地址。
118.这里,为pod分配具体的节点,并分配gpu服务地址,包括:确定pod所在的节点和gpu所在的节点。
119.针对a方式,pod和gpu在同一个节点上,分配步骤包括:
120.比较gpu的使用量需求(显存和算力需求)和gpu资源池中gpu的使用信息,找出符合条件的节点。即,选择出空闲的显存和算力都大于需求,并且满足gpu卡的类型,节点名称等使用条件的节点。
121.针对b方式,pod和gpu可以在不同的节点上,分配步骤包括:
122.步骤b1:比较gpu的使用量需求和gpu资源池中gpu的使用信息,找出符合条件的节
点。基于上报信息和集群动态信息,确定空闲的显存和算力,将空闲的显存和算力与gpu使用量需求做比较,符合条件则筛选出对应节点。再基于使用条件中的gpu卡的类型和gpu卡的拓扑关系,筛选得到第一节点集合。
123.步骤b2:在第一节点集合继续筛选,确定每个节点中的每个gpu空闲的显存和算力,只要有gpu的空闲显存和算力大小满足gpu资源使用量需求,该节点保留,否则节点舍弃,确定第二节点集合。根据第二节点集合确定gpu的服务地址。
124.步骤b3:针对第二节点集合中的每一个节点,确定该节点连接的交换机,再基于交换机(同时综合考虑节点信息中的节点的网络信息、交换机的网络信息和k8s集群的网络信息)确定该节点对应的第三节点集合和第四节点集合,细节如下:
125.参考图2,硬件方面,机房中共有3个机柜,机柜1有三个节点1、2、4;机柜2有三个节点3、5、6;第三个机柜有一个节点7。
126.例如,筛选出的第二节点集合包括节点1,节点2,节点3。针对每个第二节点集合,相同交换机下的不同节点为第三节点集合;不同交换机下的节点为第四节点集合。
127.针对节点1,第三节点集合为节点2、4;第四节点集合3、5、6、7。
128.针对节点2,第三节点集合为节点1、4;第四节点集合3、5、6、7。
129.针对节点3,第三节点集合为节点5、6;第四节点集合1、2、4、7。
130.步骤b4:根据第二、第三、第四节点集合和集群动态信息判断各个节点的负载(cpu,磁盘,网络)使用情况选择最优的节点,确定gpu所在的节点和pod所在的节点的最优解节点,为pod预分配gpu服务地址。
131.实际应用中,gpu资源池可通过k8s插件或者独立的程序上报gpu资源信息和gpu所在节点的节点信息。
132.其中,gpu资源信息包括:每个节点的gpu型号和对应的数目,每个gpu的显存和算力,gpu间的拓扑关系等。
133.其中,gpu所在节点的节点信息,包括:节点的cpu,内存,磁盘,节点的网络信息(网卡数量、网卡的吞吐量),节点所在交换机的网络信息(交换机的吞吐量、交换机的组网信息),节点所在k8s集群的网络信息。
134.实际应用中,可通过单独的k8s插件或者独立的程序收集目标集群的集群动态信息。
135.其中,集群动态信息包括节点中每个gpu的分配情况(哪些已分配,哪些未被分配),gpu的使用情况(分配的gpu可能未被使用),节点上资源(cpu,磁盘,网络)的使用情况,k8s的网络情况(已经使用的带宽,剩余的带宽)。
136.如此,通过将节点基于相对位置关系(第二节点集合、第三节点集合、第四节点集合)进行分类,确定对应的权重值,并与其他属性对应的权重相加求和,找出最优节点,实现pod与gpu可以位于不同的节点上;进而实现了gpu资源的超发,即若gpu由忙碌转为空闲,可以供本节点或其他节点的pod使用,提高了gpu资源的使用效率,实现了动态调度。
137.应理解,图2和图3所示的示意图仅仅是示意性而非限制性的,本领域技术人员可以基于图2和图3的例子进行各种显而易见的变化和/或替换,得到的技术方案仍属于本公开实施例的公开范围。
138.本公开实施例公开了一种资源分配装置,如图4所示,该资源分配装置包括:创建
模块401,用于为目标任务创建容器集;第一获取模块402,用于获取目标任务的gpu资源需求信息;第二获取模块403,用于获取目标集群的可用节点信息和可用gpu资源信息;分配模块404,用于基于可用节点信息和可用gpu资源信息,为pod分配满足gpu资源需求信息的第一目标节点和第二目标节点,其中,第一目标节点是为pod分配的目标gpu资源所在的节点,第二目标节点是为pod分配的pod所在的节点。
139.在一些实施例中,gpu资源需求信息包括gpu资源使用量、gpu卡的类型以及gpu卡的拓扑结构,分配模块404,包括:第一确定子模块,用于基于可用节点信息和可用gpu资源信息,为pod确定满足gpu资源使用量的多个候选节点;第二确定子模块,用于从多个候选节点中确定出满足gpu卡的类型以及gpu卡的拓扑结构的第一节点集合;第三确定子模块,用于基于第一节点集合确定第一目标节点和第二目标节点。
140.在一些实施例中,该第三确定子模块,用于:确定第一节点集合中每个节点的每个gpu对应的gpu资源空闲量;从第一节点集合中筛选出gpu资源空闲量满足gpu资源使用量的节点,作为第二节点集合;基于第二节点集合确定第一目标节点和第二目标节点。
141.在一些实施例中,该第三确定子模块,用于:获取第二节点集合中每个节点所对应交换机的信息;基于第二节点集合中每个节点所对应交换机的信息,确定第二节点集合中每个节点对应的第三节点集合和第四节点集合;从第二节点集合、第三节点集合和第四节点集合中确定出第一目标节点和第二目标节点。
142.在一些实施例中,该第三确定子模块,用于:对于第二节点集合中任一节点,将与该节点对应同一个交换机的节点,确定为该节点对应的第三节点集合;对于第二节点集合中任一节点,将与该节点对应不同交换机的节点,确定为该节点对应的第四节点集合。
143.在一些实施例中,该第三确定子模块,用于:获取第二节点集合、第三节点集合和第四节点集合分别对应的负载情况;根据第二节点集合、第三节点集合和第四节点集合分别对应的负载情况,确定第一目标节点和第二目标节点。
144.在一些实施例中,该第三确定子模块,用于:确定第二节点集合、第三节点集合和第四节点集合中每个节点的属性以及属性对应的权重值;基于每个节点的属性以及属性对应的权重值,确定每个节点的总权重值;根据每个节点的总权重值,确定最大的总权重值;根据最大的总权重值,确定第一目标节点和第二目标节点。
145.在一些实施例中,每个节点的属性,至少包括以下属性之一:
146.每个节点所属的集合;
147.每个节点对应的交换机的网络吞吐量;
148.每个节点对应的交换机的使用量;
149.每个节点对应的gpu卡的显存空闲量;
150.每个节点对应的gpu卡的算力空闲量;
151.每个节点对应的磁盘空闲量;
152.每个节点对应的cpu空闲量;
153.每个节点对应的gpu优先级。
154.在一些实施例中,如图5所示,该资源分配装置,还可包括:通知模块405,用于将目标gpu资源在第一目标节点中的服务地址发送至第二目标节点,以由第二目标节点基于服务地址调用目标gpu资源执行目标任务。
155.本领域技术人员应当理解,本公开实施例的资源分配装置中各处理模块的功能,可参照前述的资源分配方法的相关描述而理解,本公开实施例的资源分配装置中各处理模块,可通过实现本公开实施例所述的功能的模拟电路而实现,也可以通过执行本公开实施例所述的功能的软件在电子设备上的运行而实现。
156.本实施例的资源分配装置,能提高目标集群的资源利用率。
157.图6示出了资源分配的场景示意图,从图6可以看出,电子设备如云服务器接收来自各终端发送的目标任务,该目标任务中包括gpu资源需求信息;电子设备为目标任务创建pod;获取目标任务的gpu资源需求信息、目标集群的可用节点信息和可用gpu资源信息,为pod分配目标gpu资源所在的第一目标节点和pod所在的第二目标节点。
158.本公开不对终端、电子设备的个数进行限定,实际应用中可包括多个终端、多个电子设备。
159.应理解,图6所示的场景图仅仅是示意性而非限制性的,本领域技术人员可以基于图6的例子进行各种显而易见的变化和/或替换,得到的技术方案仍属于本公开实施例的公开范围。
160.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
161.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
162.图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
163.如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(read-only memory,rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(random access memory,ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(input/output,i/o)接口705也连接至总线704。
164.设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
165.计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(central processing unit,cpu)、图形处理单元(graphics processing unit,gpu)、各种专用的人工智能(artificial intelligence,ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(digital signal processor,dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如资源分配方法。例如,在一些实施例中,资源
分配方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram 703并由计算单元701执行时,可以执行上文描述的资源分配方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行资源分配方法。
166.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(field programmable gate array,fpga)、专用集成电路(application specific integrated circuit,asic)、专用标准产品(application-specific standard products,assp)、芯片上系统的系统(system on chip,soc)、复杂可编程逻辑设备(complex programmable logic device,cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
167.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
168.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器、只读存储器、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、快闪存储器、光纤、便捷式紧凑盘只读存储器(compact disk read only memory,cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
169.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管(cathode ray tube,crt)或者液晶显示器(liquid crystal display,lcd)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
170.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(local area network,lan)、广域网(wide area network,wan)和互联网。
171.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端和服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
172.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
173.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献