掌桥专利:专业的专利平台
掌桥专利
首页

基于Kubernetes的算力调度方法和装置

文献发布时间:2023-06-19 09:36:59


基于Kubernetes的算力调度方法和装置

技术领域

本申请涉及人工智能领域,特别是涉及一种基于Kubernetes的算力调度方法和装置。

背景技术

近几年,随着深度神经网络在人工智能领域取得的巨大成功,业界涌现了许多开源的机器学习平台。而如何实现分布式任务调度,提高资源利用率成为深度神经网络分布式的云部署、边缘设备部署以及端设备部署的主要研究内容。

深度学习对于算力的要求越来越高,包括参数规模的陡增,迭代的时间变的更长,从之前的小时级别,变成天级别,甚至月级别。像视频业务拥有更多的参数和更为复杂的模型,面对TB级别的训练数据,单机场景下往往需要很久的训练样本时间。因此,如何提供硬件资源合理分配和高效的调动管理成为分布式部署的突破点。

Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,它消除了容器化应用程序在部署、伸缩时涉及到的许多手动操作。Kubernetes编排让你能够构建多容器的应用服务,在集群上调度或伸缩这些容器,以及管理它们随时间变化的健康状态。Kubernetes通过标签与标签选择器进行筛选资源。标签是附加到对象上的键值对,旨在用于指定对用户有意义且相关的对象的标识属性。

因此,为了满足日益增长的计算能力需求,就必须以多台机器组成机器集群来提供服务。尽管Kubernetes的调度策略能够满足上述需求,但其标签与选择器的资源筛选机制,只是简单的匹配资源,需要人工手动指定机器节点和使用加速卡的属性,无法对资源进行智能分配。

发明内容

本申请的目的在于克服上述问题或者至少部分地解决或缓减解决上述问题。

根据本申请的一个方面,提供了一种基于Kubernetes的算力调度方法,包括:

预先获取Kubernetes集群中所有机器节点的基于加速卡类型和数量的算力全局数据;

对机器学习本次训练任务需要的计算资源进行解析,分解出目标加速卡类型和与数量;

根据所述算力全局数据和所述目标加速卡类型及数量,按照预设策略筛选出对应的机器节点集合,并根据该机器节点集合,锁定所述本次训练任务所使用机器节点的计算资源;

在所述本次训练任务所使用的机器节点上,通过创建Service、选择容器镜像、设置容器名称和环境变量来完成节点间互信互联网络的建立;

运行所述本次训练任务所使用的机器节点,学习训练程序完成训练。

可选地,根据所述算力全局数据和所述目标加速卡类型及数量,按照预设策略筛选出对应的机器节点集合,并根据该机器节点集合,锁定所述本次训练任务所使用机器节点的计算资源,包括:

根据所述算力全局数据,在所述Kubernetes集群中筛选出与所述目标加速卡类型及数量匹配的初选机器节点集合,再按照预设的优选策略从中筛选出优选机器节点集合,根据所述优选机器节点集合,锁定所述本次训练任务所使用机器节点的计算资源。

可选地,按照预设的优选策略从中筛选出优选机器节点集合,包括:

按照如下优选策略从所述初选机器节点集合中筛选出优选机器节点集合:

其中,所述G

可选地,所述方法还包括:

在所述本次训练任务完成后,解除已锁定的所述本次训练任务所使用机器节点的计算资源,以供其他任务再次使用。

可选地,预先获取Kubernetes集群中所有机器节点的基于加速卡类型和数量的算力全局数据,包括:

在Kubernetes集群中,预先对所有机器节点的加速卡类型和数量进行注册与管理,得到基于加速卡类型和数量的算力全局数据。

根据本申请的另一个方面,提供了一种基于Kubernetes的算力调度装置,包括:

初始模块,其配置成预先获取Kubernetes集群中所有机器节点的基于加速卡类型和数量的算力全局数据;

解析模块,其配置成对机器学习本次训练任务需要的计算资源进行解析,分解出目标加速卡类型和与数量;

筛选模块,其配置成根据所述算力全局数据和所述目标加速卡类型及数量,按照预设策略筛选出对应的机器节点集合,并根据该机器节点集合,锁定所述本次训练任务所使用机器节点的计算资源;

建立模块,其配置成在所述本次训练任务所使用的机器节点上,通过创建Service、选择容器镜像、设置容器名称和环境变量来完成节点间互信互联网络的建立;

训练模块,其配置成运行所述本次训练任务所使用的机器节点,学习训练程序完成训练。

可选地,所述筛选模块具体配置成:

根据所述算力全局数据,在所述Kubernetes集群中筛选出与所述目标加速卡类型及数量匹配的初选机器节点集合,再按照预设的优选策略从中筛选出优选机器节点集合,根据所述优选机器节点集合,锁定所述本次训练任务所使用机器节点的计算资源。

可选地,所述筛选模块具体配置成:

按照如下优选策略从所述初选机器节点集合中筛选出优选机器节点集合:

其中,所述G

可选地,所述装置还包括:

解除模块,其配置成在所述本次训练任务完成后,解除已锁定的所述本次训练任务所使用机器节点的计算资源,以供其他任务再次使用。

可选地,所述初始模块具体配置成:

在Kubernetes集群中,预先对所有机器节点的加速卡类型和数量进行注册与管理,得到基于加速卡类型和数量的算力全局数据。

根据本申请的又一个方面,提供了一种计算设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的方法。

根据本申请的又一个方面,提供了一种计算机可读存储介质,优选为非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现如上所述的方法。

根据本申请的又一个方面,提供了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述的方法。

本申请提供的技术方案,通过对机器学习本次训练任务需要的计算资源进行解析,分解出目标加速卡类型和与数量,再结合Kubernetes集群中所有机器节点的算力全局数据,按照预设策略筛选出对应的机器节点集合,据此锁定本次训练任务所使用机器节点的计算资源,在本次训练任务所使用的机器节点上建立节点间的互信互联网络,并运行这些机器节点,学习训练程序完成训练,从而实现了资源的智能化分配,无需人工调整,不用人工手动指定机器节点和使用加速卡的属性就能实现,极大地提高了效率和自动化程度,应用更广泛。

根据下文结合附图对本申请的具体实施例的详细描述,本领域技术人员将会更加明了本申请的上述以及其他目的、优点和特征。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:

图1是根据本申请一个实施例的基于Kubernetes的算力调度方法流程图;

图2是根据本申请另一个实施例的基于Kubernetes的算力调度方法流程图;

图3是根据本申请另一个实施例的基于Kubernetes的算力调度装置结构图;

图4是根据本申请另一个实施例的计算设备结构图;

图5是根据本申请另一个实施例的计算机可读存储介质结构图。

具体实施方式

本发明实施例基于kubernetes来实现算力调度,Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署、规划、更新和维护的一种机制。

图1是根据本申请一个实施例的基于Kubernetes的算力调度方法流程图。参见图1,该方法包括:

101:预先获取Kubernetes集群中所有机器节点的基于加速卡类型和数量的算力全局数据;

本实施例中,Kubernetes集群中通常包括多个机器节点,具体数目可以根据需要来设置,每个机器节点的加速卡类型可以相同,也可以不同,具体不限定。

102:对机器学习本次训练任务需要的计算资源进行解析,分解出目标加速卡类型和与数量;

103:根据算力全局数据和目标加速卡类型及数量,按照预设策略筛选出对应的机器节点集合,并根据该机器节点集合,锁定本次训练任务所使用机器节点的计算资源;

其中,锁定本次训练任务所使用机器节点的计算资源,可以保证该计算资源仅用于本次训练任务,其它任务则不能对该计算资源进行调度。

104:在本次训练任务所使用的机器节点上,通过创建Service、选择容器镜像、设置容器名称和环境变量来完成节点间互信互联网络的建立;

105:运行本次训练任务所使用的机器节点,学习训练程序完成训练。

本实施例中,可选的,根据算力全局数据和目标加速卡类型及数量,按照预设策略筛选出对应的机器节点集合,并根据该机器节点集合,锁定本次训练任务所使用机器节点的计算资源,包括:

根据算力全局数据,在Kubernetes集群中筛选出与目标加速卡类型及数量匹配的初选机器节点集合,再按照预设的优选策略从中筛选出优选机器节点集合,根据优选机器节点集合,锁定本次训练任务所使用机器节点的计算资源。

本实施例中,可选的,按照预设的优选策略从中筛选出优选机器节点集合,包括:

按照如下优选策略从初选机器节点集合中筛选出优选机器节点集合:

其中,G

本实施例中,可选的,上述方法还包括:

在本次训练任务完成后,解除已锁定的本次训练任务所使用机器节点的计算资源,以供其他任务再次使用。

本实施例中,可选的,预先获取Kubernetes集群中所有机器节点的基于加速卡类型和数量的算力全局数据,包括:

在Kubernetes集群中,预先对所有机器节点的加速卡类型和数量进行注册与管理,得到基于加速卡类型和数量的算力全局数据。

本实施例提供的上述方法,通过对机器学习本次训练任务需要的计算资源进行解析,分解出目标加速卡类型和与数量,再结合Kubernetes集群中所有机器节点的算力全局数据,按照预设策略筛选出对应的机器节点集合,据此锁定本次训练任务所使用机器节点的计算资源,在本次训练任务所使用的机器节点上建立节点间的互信互联网络,并运行这些机器节点,学习训练程序完成训练,从而实现了资源的智能化分配,无需人工调整,不用人工手动指定机器节点和使用加速卡的属性就能实现,极大地提高了效率和自动化程度,应用更广泛。

图2是根据本申请另一个实施例的基于Kubernetes的算力调度方法流程图。参见图2,该方法包括:

201:在Kubernetes集群中,预先对所有机器节点的加速卡类型和数量进行注册与管理,得到基于加速卡类型和数量的算力全局数据;

本实施例中,Kubernetes集群中的每一个机器节点都预先进行注册,通过注册流程可以得到每一个机器节点的加速卡类型和数量等信息,以便于后续进行筛选。其中,加速卡的类型有很多种,比如2080Ti、Titan V等等,具体不限定。

202:对机器学习本次训练任务需要的计算资源进行解析,分解出目标加速卡类型和与数量;

其中,目标加速卡类型和数量是指完成本次训练任务所需要的加速卡类型和数量,根据这些信息可以确定相应的机器节点来完成训练。

203:根据算力全局数据,在Kubernetes集群中筛选出与目标加速卡类型及数量匹配的初选机器节点集合;

其中,初选机器节点集合中的每一个机器节点,其加速卡类型和数量均匹配目标加速卡类型和数量。例如,解析出本次训练任务的需求是4块2080Ti加速卡,因此,在Kubernetes集群中筛选出拥有2080Ti类型且4块以上加速卡的机器节点,才是匹配本次训练任务需求的,而其它如安装有Titan V类型的机器节点是不能匹配本次训练任务需求的。

204:按照如下优选策略从初选机器节点集合中筛选出优选机器节点集合:

其中,G

205:根据优选机器节点集合,锁定本次训练任务所使用机器节点的计算资源;

206:在本次训练任务所使用的机器节点上,通过创建Service、选择容器镜像、设置容器名称和环境变量来完成节点间互信互联网络的建立;

207:本次训练任务所使用的机器节点,学习训练程序完成训练;

208:在本次训练任务完成后,解除已锁定的本次训练任务所使用机器节点的计算资源,以供其他任务再次使用。

本实施例提供的上述方法,通过对机器学习本次训练任务需要的计算资源进行解析,分解出目标加速卡类型和与数量,再结合Kubernetes集群中所有机器节点的算力全局数据,按照预设策略筛选出对应的机器节点集合,据此锁定本次训练任务所使用机器节点的计算资源,在本次训练任务所使用的机器节点上建立节点间的互信互联网络,并运行这些机器节点,学习训练程序完成训练,从而实现了资源的智能化分配,无需人工调整,不用人工手动指定机器节点和使用加速卡的属性就能实现,极大地提高了效率和自动化程度,应用更广泛。

图3是根据本申请另一个实施例的基于Kubernetes的算力调度装置结构图。参见图3,该装置包括:

初始模块301,其配置成预先获取Kubernetes集群中所有机器节点的基于加速卡类型和数量的算力全局数据;

解析模块302,其配置成对机器学习本次训练任务需要的计算资源进行解析,分解出目标加速卡类型和与数量;

筛选模块303,其配置成根据算力全局数据和目标加速卡类型及数量,按照预设策略筛选出对应的机器节点集合,并根据该机器节点集合,锁定本次训练任务所使用机器节点的计算资源;

建立模块304,其配置成在本次训练任务所使用的机器节点上,通过创建Service、选择容器镜像、设置容器名称和环境变量来完成节点间互信互联网络的建立;

训练模块305,其配置成运行本次训练任务所使用的机器节点,学习训练程序完成训练。

本实施例中,可选的,上述筛选模块具体配置成:

根据算力全局数据,在Kubernetes集群中筛选出与目标加速卡类型及数量匹配的初选机器节点集合,再按照预设的优选策略从中筛选出优选机器节点集合,根据优选机器节点集合,锁定本次训练任务所使用机器节点的计算资源。

本实施例中,可选的,上述筛选模块具体配置成:

按照如下优选策略从初选机器节点集合中筛选出优选机器节点集合:

其中,G

本实施例中,可选的,上述装置还包括:

解除模块,其配置成在本次训练任务完成后,解除已锁定的本次训练任务所使用机器节点的计算资源,以供其他任务再次使用。

本实施例中,可选的,上述初始模块具体配置成:

在Kubernetes集群中,预先对所有机器节点的加速卡类型和数量进行注册与管理,得到基于加速卡类型和数量的算力全局数据。

本实施例提供的上述装置,可以执行上述任一方法实施例提供的方法,详细过程详见方法实施例中的描述,此处不赘述。

本实施例提供的上述装置,通过对机器学习本次训练任务需要的计算资源进行解析,分解出目标加速卡类型和与数量,再结合Kubernetes集群中所有机器节点的算力全局数据,按照预设策略筛选出对应的机器节点集合,据此锁定本次训练任务所使用机器节点的计算资源,在本次训练任务所使用的机器节点上建立节点间的互信互联网络,并运行这些机器节点,学习训练程序完成训练,从而实现了资源的智能化分配,无需人工调整,不用人工手动指定机器节点和使用加速卡的属性就能实现,极大地提高了效率和自动化程度,应用更广泛。

根据下文结合附图对本申请的具体实施例的详细描述,本领域技术人员将会更加明了本申请的上述以及其他目的、优点和特征。

本申请实施例还提供了一种计算设备,参照图4,该计算设备包括存储器1120、处理器1110和存储在所述存储器1120内并能由所述处理器1110运行的计算机程序,该计算机程序存储于存储器1120中的用于程序代码的空间1130,该计算机程序在由处理器1110执行时实现用于执行任一项根据本发明的方法步骤1131。

本申请实施例还提供了一种计算机可读存储介质。参照图5,该计算机可读存储介质包括用于程序代码的存储单元,该存储单元设置有用于执行根据本发明的方法步骤的程序1131′,该程序被处理器执行。

本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机上运行时,使得计算机执行根据本发明的方法步骤。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、获取其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(英文:non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:magnetic tape),软盘(英文:floppy disk),光盘(英文:optical disc)及其任意组合。

以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

相关技术
  • 基于Kubernetes的算力调度方法和装置
  • 一种基于能耗感知的边缘算力资源调度方法
技术分类

06120112231482