容器资源调度方法和装置、计算机可读存储介质与流程

文档序号:28262751发布日期:2021-12-31 16:50阅读:159来源:国知局
容器资源调度方法和装置、计算机可读存储介质与流程

1.本公开涉及云计算领域,特别涉及一种容器资源调度方法和装置、计算机可读存储介质。


背景技术:

2.为了满足不断攀升的数据处理需求,未来的系统需在运算能力上进行改善。传统解决方案(如x86处理器)再也无法以高效率、低成本的方式提供所需运算带宽,因此系统设计人员须寻找新的运算平台。越来越多系统将fpga(field programmable gate array,可编程门阵列)和gpu(graphics processing unit,图形处理器或绘图处理器)视为能够满足未来需求的运算平台。那么作为主流的应用承载方式容器系统要如何将新型运算平台资源合理的分配给容器计算任务使用,目前还未有成熟的解决方案。


技术实现要素:

3.发明人通过研究发现:相关技术容器集群系统对新型计算资源gpu设备调度中存在的不足,主要存在以下问题:
4.1)关于新型计算资源gpu相关技术容器资源分配技术无法衡量不同计算资源的算力。
5.2)不同厂家不同型号的gpu实现资源切片的方式是不同的,相关技术容器资源分配技术无法实现不同厂家、不同型号的计算设备虚拟化切片算力归一化。
6.3)不同计算任务对资源类型的需求是不同的,相关技术无法将容器计算任务调度到合适的新型计算资源上。
7.鉴于以上技术问题中的至少一项,本公开提供了一种容器资源调度方法和装置、计算机可读存储介质,可以实现多类型计算任务在异构新型计算资源上的归一化调度。
8.根据本公开的一个方面,提供一种容器资源调度方法,包括:
9.采用基准测试算法集中每种基准测试算法,对所有类型计算设备进行基准测试;
10.根据基准测试结果、基准测试算法复杂度和每种计算设备虚拟切片数换算每种计算设备的最小单元算力;
11.接收指定计算任务所属的算法类型、计算数据量和算法复杂度;
12.将计算任务算法与基准测试算法进行匹配,查询该匹配算法的最小单元算力;
13.根据匹配算法的最小单元算力、计算任务的计算数据量和算法复杂度,将计算任务调度到合适的资源设备上。
14.在本公开的一些实施例中,所述容器资源调度方法还包括:
15.建立基准测试算法集,进行基准测试库初始化。
16.在本公开的一些实施例中,所述容器资源调度方法还包括:
17.从容器集群获取容器节点上的计算设备信息;
18.在容器节点上的计算设备类型更新的情况下,向系统注册相应更新设备,并进行
计算设备的算力换算。
19.在本公开的一些实施例中,所述对所有类型计算设备进行基准测试包括:
20.对容器资源池中所有类型计算设备运行基准测试压测;
21.在计算设备的一项性能指标出现瓶颈的情况下,输出基准测试的测试数据量作为基准测试结果。
22.在本公开的一些实施例中,所述根据基准测试结果、基准测试算法复杂度和每种计算设备虚拟切片数换算每种计算设备的最小单元算力包括:
23.根据基准测试结果和基准测试算法复杂度换算计算设备算力,其其中,基准测试结果包括测试数据量、基准测试类型、压测数据量和计算设备标识;
24.根据计算设备算力和每种计算设备虚拟切片数换算每种计算设备的最小单元算力。
25.在本公开的一些实施例中,所述根据匹配算法的最小单元算力、计算任务的计算数据量和算法复杂度,将计算任务调度到合适的资源设备上包括:
26.根据计算任务的计算数据量和算法复杂度确定计算任务的所需算力;
27.选择剩余算力大于预定值且算力负载最小的计算设备作为目标计算设备进行调度;
28.根据计算任务的所需算力确定目标计算设备的需分配切片数量,将计算任务调度到目标计算设备的需分配切片数量的资源上。
29.在本公开的一些实施例中,所述选择剩余算力大于预定值且算力负载最小的计算设备作为目标计算设备进行调度包括:
30.根据计算设备的已占用切片数与匹配算法的最小单元算力的乘积确定每种计算设备的已占用算力;
31.根据每种计算设备的已占用算力的比值确定每种计算设备的算力负载;
32.选择剩余算力大于预定值且算力负载最小的计算设备作为目标计算设备进行调度。
33.在本公开的一些实施例中,所述根据计算任务的所需算力确定目标计算设备的需分配切片数量包括:
34.根据计算任务的所需算力、目标计算设备算力和目标计算设备的虚拟切片数确定目标计算设备的需分配切片数量。
35.在本公开的一些实施例中,所述容器资源调度方法还包括:
36.在调度完成后,更新目标计算设备的剩余切片数。
37.根据本公开的另一方面,提供一种容器资源调度装置,包括:
38.基站测试模块,用于采用基准测试算法集中每种基准测试算法,对所有类型计算设备进行基准测试;
39.算力换算模块,用于根据基准测试结果、基准测试算法复杂度和每种计算设备虚拟切片数换算每种计算设备的最小单元算力;
40.资源申请模块,用于接收指定计算任务所属的算法类型、计算数据量和算法复杂度;
41.资源调度模块,用于将计算任务算法与基准测试算法进行匹配,查询该匹配算法
的最小单元算力;根据匹配算法的最小单元算力、计算任务的计算数据量和算法复杂度,将计算任务调度到合适的资源设备上。
42.在本公开的一些实施例中,所述容器资源调度装置用于执行实现如上述任一实施例所述的容器资源调度方法的操作。
43.根据本公开的另一方面,提供一种容器资源调度装置,包括存储器和处理器,其中:
44.存储器,用于存储指令;
45.处理器,用于执行所述指令,使得所述容器资源调度装置执行实现如上述任一实施例所述的容器资源调度方法的操作。
46.根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例所述的容器资源调度方法。
47.本公开可以实现多类型计算任务在异构新型计算资源上的归一化调度。
附图说明
48.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
49.图1为本公开容器资源调度方法一些实施例的示意图。
50.图2为本公开容器资源调度方法另一些实施例的示意图。
51.图3为本公开容器资源调度装置一些实施例的示意图。
52.图4为本公开容器资源调度装置另一些实施例的示意图。
53.图5为本公开容器资源调度装置又一些实施例的示意图。
具体实施方式
54.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
55.除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
56.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
57.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
58.在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
59.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
60.发明人通过研究发现:关于计算任务的计算量:计算任务所需的设备资源与其的计算量有关,而计算量与算法的复杂度成比例关系,描述算法复杂度的参数为算法的输入数据规模,通常用n来表示,那么算法的复杂度可表示为一个关于n的函数,衡量算法开销通常使用o()运算符来表示,可以假设计算任务的计算数据规模为ni,则计算任务的算法复杂度为量为o(n),计算量为o(ni)。
61.关于gpu多维性能指标:gpu的主要性能参数有显存容量、显存带宽、张量核心、浮点计算能力flops(floating-point operations persecond,每秒所执行的浮点运算次数),在gpu众多性能参数中,对不同的计算任务不同性能参数的重要程度也不同,即不同性能参数在不同计算任务下有不同的权重。例如卷积神经网络算法对张量核心、浮点计算能力的要求比其他性能指标要求更高。所以计算任务类型对性能指标有要求,如何评定计算任务类型和各设备性能的权重,也需要解决此问题。
62.主流的容器编排系统通过统一的设备插件方式支持像gpu,fpga等硬件加速设备,但是目前对这些设备资源分配存在以下问题:
63.1)关于容器的新型计算资源gpu,每种计算资源又有多个厂家、多种型号的产品,不同厂家、不同型号的计算资源算力差异较大,容器系统没有统一的机制对其算力进行度量。
64.2)gpu性能指标有多种,现有技术没有考虑计算任务的算法类型、计算规模等因素而引起的对资源不同需求。
65.3)不同计算设备的虚拟化实现方式是不同的,以gpu为例,amd的采用sr-iov(single-root i/o virtualization,单根i/o虚拟化)技术、intel的采用kvmgt技术、nvidia的采用grid技术,不同厂家不同型号的gpu实现资源切片的方式是不同的,相关技术服务解决如何通过基准测试衡量设备算力以及如何将计算任务调度到合适的新型计算资源上的技术问题。
66.鉴于以上技术问题中的至少一项,本公开提供了一种容器资源调度方法和装置、计算机可读存储介质,下面通过具体实施例对本公开进行说明。
67.图1为本公开容器资源调度方法一些实施例的示意图。优选的,本实施例可由本公开容器资源调度装置执行。该方法可以包括步骤11-步骤15,其中:
68.步骤11,采用基准测试算法集中每种基准测试算法,对所有类型计算设备进行基准测试。
69.在本公开的一些实施例中,所有类型计算设备可以为容器资源池中gpu或fpga等计算设备。
70.在本公开的一些实施例中,步骤11中,所述对所有类型计算设备进行基准测试的步骤可以包括:对容器资源池中搜索有计算设备运行基准测试压测,其中,所述基准测试压测是一种固定参数、可变输入数据量的压测。
71.在本公开的一些实施例中,对容器资源池中搜索有计算设备运行基准测试压测可以包括:对每一计算设备s进行基准测试tj压测直到gpu某一性能指标(例如:显存容量、显存带宽、张量核心、flops中其中一种)出现瓶颈,输出基准测试的测试数据量nj作为基准测
试结果。由于每种性能指标对每类算法的重要程度不同,产生瓶颈的指标也不尽相同。
72.步骤12,根据基准测试结果、基准测试算法复杂度和每种计算设备虚拟切片数换算每种计算设备的最小单元算力。
73.在本公开的一些实施例中,步骤12可以包括:根据基准测试结果和基准测试算法复杂度换算计算设备算力,其中,基准测试结果包括测试数据量、基准测试类型、压测数据量和计算设备标识;根据计算设备算力和每种计算设备虚拟切片数换算每种计算设备的最小单元算力。
74.步骤13,接收指定计算任务所属的算法类型、计算数据量和算法复杂度。
75.步骤14,将计算任务算法与基准测试算法进行匹配,查询该匹配算法的最小单元算力。
76.步骤15,根据匹配算法的最小单元算力、计算任务的计算数据量和算法复杂度,将计算任务调度到合适的资源设备上。
77.在本公开的一些实施例中,步骤15可以包括步骤151-步骤153,其中:
78.步骤151,根据计算任务的计算数据量和算法复杂度确定计算任务的所需算力。
79.步骤152,选择剩余算力大于预定值且算力负载最小的计算设备作为目标计算设备进行调度。
80.在本公开的一些实施例中,步骤152可以包括:根据计算设备的已占用切片数与匹配算法的最小单元算力的乘积确定每种计算设备的已占用算力;根据每种计算设备的已占用算力的比值确定每种计算设备的算力负载;选择剩余算力大于预定值且算力负载最小的计算设备作为目标计算设备进行调度。
81.步骤153,根据计算任务的所需算力确定目标计算设备的需分配切片数量,将计算任务调度到目标计算设备的需分配切片数量的资源上。
82.在本公开的一些实施例中,步骤153中,所述根据计算任务的所需算力确定目标计算设备的需分配切片数量的步骤可以包括:根据计算任务的所需算力、目标计算设备算力和目标计算设备的虚拟切片数确定目标计算设备的需分配切片数量。
83.发明人通过研究发现:由于算法资源用量与算法计算量成比例关系,因此本公开上述实施例的计算量可通过算法的复杂度和计算数据量衡量。
84.基于本公开上述实施例提供的容器资源调度方法,采用算法复杂度分析结合“事后统计法”即测试的方式衡量算法复杂度与资源的关系,从而可以推算与所需资源的关系,可以实现对多类型计算任务在异构新型计算资源上的归一化调度。
85.本公开上述实施例可以实现新型计算资源gpu针对不同算法类型的算力评估,并进行归一化调度。
86.本公开上述实施例通过结合计算任务的算法类型、数据规模、算法复杂度对换算算法任务的资源需求,可以评估不同类型计算任务的算力需求
87.本公开上述实施例可以实现不同类型的计算任务资源合理分配。
88.图2为本公开容器资源调度方法另一些实施例的示意图。优选的,本实施例可由本公开容器资源调度装置执行。图2实施例的方法可以包括步骤100(资源算力换算流程)和步骤200(资源分配流程),其中:
89.步骤100,资源算力换算流程。
90.在本公开的一些实施例中,如图2所示,步骤100(资源算力换算流程)可以包括步骤110-步骤140,其中:
91.步骤110,基准测试库初始化。
92.在本公开的一些实施例中,步骤110可以包括:建立某一计算领域的基准测试算法集,进行基准测试库初始化,其中,初始化过程是对基准测试工具的下载、安装、数据初始化的过程。
93.在本公开的一些实施例中,基准测试算法集可以包括某一计算领域(例如深度学习或云计算领域)内的每种主流计算架构中的一种实现算法(如cnn-benchmarks,即cnn-基准测试程序等),其中,主流计算架构包括cnn(convolutional neural networks,卷积神经网络)、rnn(recurrent neural networks,循环神经网络)、ft(flexible transmitter,新型神经元模型)、dnn(deep neural networks,深度神经网络)等计算架构。
94.步骤120,资源注册。
95.在本公开的一些实施例中,步骤120可以包括:从容器集群获取容器节点上的计算设备信息;在容器节点上的计算设备类型更新的情况下,向系统注册相应更新设备,并进行计算设备的算力换算。
96.在本公开的一些实施例中,容器节点上的计算设备信息可以包括厂家a的gpu、厂家b的gpu以及产家c的fpga。
97.在本公开的一些实施例中,计算设备类型可以为容器资源池中gpu或fpga等类型。
98.在本公开的一些实施例中,步骤120可以包括:容器集群在纳管容器节点的情况下,获取容器节点上的计算设备信息,并对不同类型gpu资源启动算力换算流程,当容器节点上的计算设备类型更新时,将向系统注册相应更新设备,并启动算力换算流程。
99.步骤130,运行基准测试。
100.在本公开的一些实施例中,步骤130可以包括:对容器资源池中搜索有计算设备运行基准测试压测,其中,所述基准测试压测是一种固定参数、可变输入数据量的压测。
101.在本公开的一些实施例中,步骤130中的基准测试可以包括cnn基准测试、bert(bidirectional encoder representations from transformers,来自变压器的双向编码器表示)基准测试、bilstm(bi-directional long short-term memory,双向长短期记忆网络)基准测试等测试中的至少一项。
102.在本公开的一些实施例中,步骤130可以包括:对每一计算设备s进行基准测试tj压测直到gpu某一性能指标(例如:显存容量、显存带宽、张量核心、flops等性能指标中的一种)出现瓶颈,输出基准测试的测试数据量nj作为基准测试结果。由于每种性能指标对每类算法的重要程度不同,产生瓶颈的指标也不尽相同。
103.步骤140,算力换算。
104.在本公开的一些实施例中,步骤140可以包括:根据基准测试结果、基准测试算法复杂度和每种计算设备虚拟切片数换算每种计算设备的最小单元算力。
105.在本公开的一些实施例中,步骤140可以包括:根据基准测试结果和基准测试算法复杂度换算计算设备算力,其中,基准测试结果包括测试数据量、基准测试类型、压测数据量和计算设备标识;根据计算设备算力和每种计算设备虚拟切片数换算每种计算设备的最小单元算力。
106.在本公开的一些实施例中,步骤140可以包括:存储、更新目标设备资源每种基准测试的信息,其中,一条记录可以包括基准测试类型、算法复杂度o(n)、压测数据量、计算设备(例如gpu)标签和计算设备最大可切片数;换算最小单元算力并存储。
107.在本公开的一些实施例中,步骤140可以包括:根据公式(1)设备s的基准测试tj所对应的最小单元算力rj。
108.rj=o(nj)/ns
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
109.公式(1)中,ns为设备s最多可虚拟的切片数,nj为计算数据量,o(nj)为tj基准测试计算量。
110.表1为本公开一些实施例中资源算力换算流程后的目标设备资源基准测试信息表。
111.表1
[0112][0113]
步骤200,资源分配流程。
[0114]
在本公开的一些实施例中,资源分配流程的前提条件为:容器编排系统已实现gpu对接,例如kubernetes(是一个开源的,用于管理云平台中多个主机上的容器化的应用)容器编排系统已基于device plugin设备插件api(application programming interface,应用程序接口)实现gpu资源对接,实现gpu资源管理和调度;多个容器可同时并行使用一个gpu,并且提供资源限制(limits)保证qos(quality of service,服务质量)。整个gpu的资源可以按照某种虚拟化的方式分割成若干分,例如在cuda(compute unified device architecture,统一计算设备架构)mps(multi-process service,多进程服务)技术中将整个gpu分割成若干threads(切片)。
[0115]
在本公开的一些实施例中,如图2所示,步骤200(资源分配流程)可以包括步骤210-步骤230,其中:
[0116]
步骤210,容器申请分配资源。
[0117]
在本公开的一些实施例中,步骤210可以包括:在计算任务是经典计算架构的某一算法实现的情况下,在部署容器计算任务时,向资源调度装置申请资源,其中,申请参数包含算法类型、计算数据类型、算法复杂度o(n)、数据量n等参数。
[0118]
步骤220,根据算力需求进行调度。
[0119]
在本公开的一些实施例中,步骤220可以包括:将计算任务算法与基准测试算法进
行匹配,查询该匹配算法的最小单元算力;根据匹配算法的最小单元算力、计算任务的计算数据量和算法复杂度,将计算任务调度到合适的资源设备上。
[0120]
在本公开的一些实施例中,步骤220可以包括:资源调度模块根据算力需求进行调度,通过selectors选择器选择命中节点上的命中gpu等计算设备,调度limits单位gpu,limits=p/n(n为命中gpu最多可分切片,p为换算得所需切片),limits=1代表调度整块gpu。
[0121]
在本公开的一些实施例中,步骤220可以包括步骤221-步骤224,其中:
[0122]
步骤221,根据算法复杂度和计算数据量换算计算任务的所需算力o(ni)。
[0123]
步骤222,匹配计算任务的类型与基础测试集中的算法类型,具体地,计算任务和基准测试的算法同属一种计算架构并且计算数据类型相同即可匹配,假设匹配到基准测试k算法(即匹配算法)。
[0124]
步骤223,选择剩余算力大于预定值(即剩余算力充足)且负载最小的节点设备进行调度,其中,算力负载=已占用算力/初始算力,已占用算力=已占用切片数*k算法的最小单元算力。
[0125]
步骤224,根据公式(2)确定换算需分配的虚拟切片数量p,将计算任务调度到目标计算设备的需分配切片数量p的资源上。
[0126][0127]
公式(2)中,o(ni)为计算任务的所需算力,o(nk)为目标计算设备k算法的设备算力,nk为目标设备的最多可虚拟切片数,为向上取整函数。
[0128]
本公开上述实施例以最小单元算力为调度单位,避免资源碎片化。
[0129]
步骤230,调度完成后,更新节点的剩余切片数。
[0130]
本公开上述实施例提出一种基于资源算力的容器资源调度方法,通过预先构建的算力基准测试模型,对容器资源池中所有厂家、型号的gpu计算资源进行基准测试,即利用算法集分别对gpu进行压测,算法集由每种主流计算架构中的一种实现算法组成,直到gpu中某种性能指标(显存容量、显存带宽、张量核心、flops中其中一种)达到瓶颈,分别得到各算法的计算数据量;根据基准测试算法复杂度和计算数据量换算设备算力;再根据每种gpu虚拟切片数换算其最小单元算力。
[0131]
本公开上述实施例在资源分配时,由于同种计算架构的算法对gpu各性能需求特征相似,可套用统一算力模型,查询计算任务匹配的基准测试算法的单位算力,再根据计算任务的算法复杂度和计算数据量换算所需算力,通过资源单位算力和所需算力换算所需的资源切片数,从而可以将计算任务调度到合适的资源设备上。
[0132]
图3为本公开容器资源调度装置一些实施例的示意图。如图3所示,本公开容器资源调度装置可以包括基站测试模块31、算力换算模块32、资源申请模块33和资源调度模块34,其中:
[0133]
基站测试模块31,用于采用基准测试算法集中每种基准测试算法,对所有类型计算设备进行基准测试。
[0134]
在本公开的一些实施例中,基站测试模块31可以用于采用基准测试算法集中每种基准测试算法,对容器资源池中所有类型计算设备运行基准测试压测;在计算设备的一项
性能指标出现瓶颈的情况下,输出基准测试的测试数据量作为基准测试结果。
[0135]
在本公开的一些实施例中,基站测试模块31是用一个算法集按照统一的测试规范评估和量化目标系统的硬件性能的模块,本公开上述实施例的基准测试算法集由每种主流计算架构中的一种实现算法组成,该模块进行基础测试初始化,并实施基准测试,测试结果输出到算力换算模块。
[0136]
在本公开的一些实施例中,基站测试模块31可以用于对容器资源池中搜索有计算设备运行基准测试压测,其中,所述基准测试压测是一种固定参数、可变输入数据量的压测。
[0137]
在本公开的一些实施例中,基站测试模块31中的基准测试可以包括cnn基准测试、bert基准测试、bilstm基准测试等测试中的至少一项。
[0138]
在本公开的一些实施例中,基站测试模块31可以用于对每一计算设备s进行基准测试tj压测直到gpu某一性能指标(例如:显存容量、显存带宽、张量核心、flops等性能指标中的一种)出现瓶颈,输出基准测试的测试数据量nj作为基准测试结果。由于每种性能指标对每类算法的重要程度不同,产生瓶颈的指标也不尽相同。
[0139]
算力换算模块32,用于根据基准测试结果、基准测试算法复杂度和每种计算设备虚拟切片数换算每种计算设备的最小单元算力。
[0140]
在本公开的一些实施例中,算力换算模块32可以用于存储、更新各设备类型的基准测试信息及测试结果,其中,一条记录包括基准测试类型、算法复杂度、压测数据量、gpu等计算设备的标签、gpu等计算设备的最大可切片数,根据基准测试结果换算资源最小单元算力(最小切片单元算力),最小单元算力是指计算设备最小规格的虚拟切片算力,与不同设备最多可划分的切片数有关。
[0141]
在本公开的一些实施例中,算力换算模块32可以用于根据基准测试结果和基准测试算法复杂度换算计算设备算力,其其中,基准测试结果包括测试数据量、基准测试类型、压测数据量和计算设备标识;根据计算设备算力和每种计算设备虚拟切片数换算每种计算设备的最小单元算力。
[0142]
在本公开的一些实施例中,算力换算模块32可以用于存储、更新目标设备资源每种基准测试的信息,其中,一条记录可以包括基准测试类型、算法复杂度o(n)、压测数据量、计算设备(例如gpu)标签和计算设备最大可切片数;换算最小单元算力并存储。
[0143]
在本公开的一些实施例中,算力换算模块32可以用于根据公式(1)设备s的基准测试tj所对应的最小单元算力rj。
[0144]
资源申请模块33,用于接收指定计算任务所属的算法类型、计算数据量和算法复杂度。
[0145]
在本公开的一些实施例中,资源申请模块33可以用于接收改造后资源申请需指定计算任务所属的算法类型、计算数据量、算法复杂度。
[0146]
在本公开的一些实施例中,资源申请模块33可以用于在计算任务是经典计算架构的某一算法实现的情况下,在部署容器计算任务时,向资源调度装置申请资源,其中,申请参数包含算法类型、计算数据类型、算法复杂度o(n)、数据量n等参数。
[0147]
资源调度模块34,用于将计算任务算法与基准测试算法进行匹配,查询该匹配算法的最小单元算力;根据匹配算法的最小单元算力、计算任务的计算数据量和算法复杂度,
将计算任务调度到合适的资源设备上。
[0148]
在本公开的一些实施例中,资源调度模块34可以用于将计算任务算法与基准测试算法进行匹配,查询该匹配算法的算力,根据计算任务申请的需求分配相应资源。
[0149]
在本公开的一些实施例中,资源调度模块34可以用于根据计算任务的计算数据量和算法复杂度确定计算任务的所需算力;选择剩余算力大于预定值且算力负载最小的计算设备作为目标计算设备进行调度;根据计算任务的所需算力确定目标计算设备的需分配切片数量,将计算任务调度到目标计算设备的需分配切片数量的资源上。
[0150]
在本公开的一些实施例中,资源调度模块34在选择剩余算力大于预定值且算力负载最小的计算设备作为目标计算设备进行调度的情况下,可以用于根据计算设备的已占用切片数与匹配算法的最小单元算力的乘积确定每种计算设备的已占用算力;根据每种计算设备的已占用算力的比值确定每种计算设备的算力负载;选择剩余算力大于预定值且算力负载最小的计算设备作为目标计算设备进行调度。
[0151]
在本公开的一些实施例中,资源调度模块34在根据计算任务的所需算力确定目标计算设备的需分配切片数量的情况下,可以用于根据计算任务的所需算力、目标计算设备算力和目标计算设备的虚拟切片数确定目标计算设备的需分配切片数量。
[0152]
在本公开的一些实施例中,资源调度模块34可以用于根据算力需求进行调度,通过selectors选择器选择命中节点上的命中gpu等计算设备,调度limits单位gpu,limits=p/n(n为命中gpu最多可分切片,p为换算得所需切片),limits=1代表调度整块gpu。
[0153]
在本公开的一些实施例中,资源调度模块34可以用于根据算法复杂度和计算数据量换算计算任务的所需算力o(ni);匹配计算任务的类型与基础测试集中的算法类型,具体地,计算任务和基准测试的算法同属一种计算架构并且计算数据类型相同即可匹配,假设匹配到基准测试k算法(即匹配算法);选择剩余算力大于预定值(即剩余算力充足)且负载最小的节点设备进行调度,其中,算力负载=已占用算力/初始算力,已占用算力=已占用切片数*k算法的最小单元算力;根据公式(2)确定换算需分配的虚拟切片数量p,将计算任务调度到目标计算设备的需分配切片数量p的资源上。
[0154]
在本公开的一些实施例中,资源调度模块34还可以用于在调度完成后,更新目标计算设备的剩余切片数。
[0155]
在本公开的一些实施例中,所述容器资源调度装置可以用于执行实现如上述任一实施例(例如图1或图2实施例)所述的容器资源调度方法的操作。
[0156]
发明人通过研究发现:由于算法资源用量与算法计算量成比例关系,因此本公开上述实施例的计算量可通过算法的复杂度和计算数据量衡量。
[0157]
基于本公开上述实施例提供的容器资源调度装置,采用算法复杂度分析结合“事后统计法”即测试的方式衡量算法复杂度与资源的关系,从而可以推算与所需资源的关系,可以实现对多类型计算任务在异构新型计算资源上的归一化调度。
[0158]
图4为本公开容器资源调度装置另一些实施例的示意图。与图3实施例相比,图4实施例的容器资源调度装置还可以包括测试库初始化模块35和设备注册模块36,其中:
[0159]
测试库初始化模块35,用于建立基准测试算法集,进行基准测试库初始化。
[0160]
在本公开的一些实施例中,测试库初始化模块35可以用于建立某一计算领域的基准测试算法集,进行基准测试库初始化,其中,初始化过程是对基准测试工具的下载、安装、
数据初始化的过程。
[0161]
在本公开的一些实施例中,基准测试算法集可以包括某一计算领域(例如深度学习或云计算领域)内的每种主流计算架构中的一种实现算法(如cnn-benchmarks,即cnn-基准测试程序等),其中,主流计算架构包括cnn、rnn、ft、dnn等计算架构。
[0162]
设备注册模块36,用于从容器集群获取容器节点上的计算设备信息;在容器节点上的计算设备类型更新的情况下,向系统注册相应更新设备,并进行计算设备的算力换算。
[0163]
在本公开的一些实施例中,容器节点上的计算设备信息可以包括厂家a的gpu、厂家b的gpu以及产家c的fpga。
[0164]
在本公开的一些实施例中,计算设备类型可以为容器资源池中gpu或fpga等类型。
[0165]
在本公开的一些实施例中,设备注册模块36可以用于在容器集群纳管容器节点的情况下,获取容器节点上的计算设备信息,并对不同类型gpu资源启动算力换算流程,当容器节点上的计算设备类型更新时,将向系统注册相应更新设备,并启动算力换算流程。
[0166]
本公开上述实施例可以实现新型计算资源gpu针对不同算法类型的算力评估,并进行归一化调度。
[0167]
本公开上述实施例通过结合计算任务的算法类型、数据规模、算法复杂度对换算算法任务的资源需求,可以评估不同类型计算任务的算力需求
[0168]
本公开上述实施例可以实现不同类型的计算任务资源合理分配。
[0169]
图5为本公开容器资源调度装置又一些实施例的示意图。如图5所示,本公开容器资源调度装置可以包括存储器51和处理器52,其中:
[0170]
存储器51,用于存储指令。
[0171]
处理器52,用于执行所述指令,使得所述容器资源调度装置执行实现如上述任一实施例(例如图1或图2实施例)所述的容器资源调度方法的操作。
[0172]
本公开上述实施例提出一种基于资源算力的容器资源调度装置,通过预先构建的算力基准测试模型,对容器资源池中所有厂家、型号的gpu计算资源进行基准测试,即利用算法集分别对gpu进行压测,算法集由每种主流计算架构中的一种实现算法组成,直到gpu中某种性能指标(显存容量、显存带宽、张量核心、flops中其中一种)达到瓶颈,分别得到各算法的计算数据量;根据基准测试算法复杂度和计算数据量换算设备算力;再根据每种gpu虚拟切片数换算其最小单元算力。
[0173]
本公开上述实施例在资源分配时,由于同种计算架构的算法对gpu各性能需求特征相似,可套用统一算力模型,查询计算任务匹配的基准测试算法的单位算力,再根据计算任务的算法复杂度和计算数据量换算所需算力,通过资源单位算力和所需算力换算所需的资源切片数,从而可以将计算任务调度到合适的资源设备上。
[0174]
根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例(例如图1或图2实施例)所述的容器资源调度方法。
[0175]
基于本公开上述实施例提供的计算机可读存储介质,采用算法复杂度分析结合“事后统计法”即测试的方式衡量算法复杂度与资源的关系,从而可以推算与所需资源的关系,可以实现对多类型计算任务在异构新型计算资源上的归一化调度。
[0176]
本公开上述实施例可以实现新型计算资源gpu针对不同算法类型的算力评估,并
进行归一化调度。
[0177]
本公开上述实施例通过结合计算任务的算法类型、数据规模、算法复杂度对换算算法任务的资源需求,可以评估不同类型计算任务的算力需求
[0178]
本公开上述实施例可以实现不同类型的计算任务资源合理分配。
[0179]
在上面所描述的容器资源调度装置可以实现为用于执行本技术所描述功能的通用处理器、可编程逻辑控制器(plc)、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。
[0180]
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
[0181]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0182]
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1