一种多类型GPU的管理调度的方法和设备转让专利

申请号 : CN202010094669.7

文献号 : CN111309440B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李栋梁亓开元苏志远

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本发明提供了一种多类型GPU的管理调度的方法和设备,该方法包括以下步骤:在Openstack的计算模块数据库中添加集群GPU信息表;每间隔阈值周期收集节点的GPU信息,并将GPU信息发送到GPU信息表中;响应于接收到用户输入的请求,查询GPU信息表并判断GPU信息表中是否存在满足请求的计算节点;响应于存在满足请求的计算节点,分配虚拟机到计算节点;响应于计算节点的虚拟机被删除,在GPU信息表中将该计算节点修改为未分配状态。通过使用本发明的方法,能够使云平台可以根据GPU类型调度计算节点,使虚拟机可以绑定指定类型的GPU卡,实现GPU精准调度,能够使集群扩缩容时,无需改动便可更新集群中的GPU资源。

权利要求 :

1.一种多类型GPU的管理调度的方法,其特征在于,包括以下步骤:在Openstack的计算模块数据库中添加集群GPU信息表,所述GPU信息表包括GPU类型的信息;

每间隔阈值周期收集节点的GPU信息,并将所述GPU信息发送到所述GPU信息表中;

响应于接收到用户输入的请求,查询所述GPU信息表并判断所述GPU信息表中是否存在满足所述请求的计算节点,其中所述用户输入的请求包括GPU类型的信息;

响应于存在满足所述请求的计算节点,分配虚拟机到所述计算节点;

响应于所述计算节点的所述虚拟机被删除,在所述GPU信息表中将所述计算节点修改为未分配状态。

2.根据权利要求1所述的方法,其特征在于,所述GPU信息表还包括GPU唯一标识、所在服务器节点、分配情况、绑定虚拟机id的信息。

3.根据权利要求1所述的方法,其特征在于,所述用户输入的请求还包括所需内存、GPU个数的信息。

4.根据权利要求1所述的方法,其特征在于,还包括:响应于不存在满足所述请求的计算节点,返回没有可用的计算节点的警告。

5.根据权利要求1所述的方法,其特征在于,响应于存在满足所述请求的计算节点,分配虚拟机到所述计算节点包括:在所述GPU信息表中将所述计算节点修改为已分配状态。

6.一种多类型GPU的管理调度的设备,其特征在于,所述设备包括:管理模块,所述管理模块配置为在Openstack的计算模块数据库中添加集群GPU信息表,所述GPU信息表包括GPU类型的信息;

收集模块,所述收集模块配置为每间隔阈值周期收集节点的GPU信息,并将所述GPU信息发送到所述GPU信息表中;

查询模块,所述查询模块配置为响应于接收到用户输入的请求,查询所述GPU信息表并判断所述GPU信息表中是否存在满足所述请求的计算节点,其中所述用户输入的请求包括GPU类型的信息;

配置模块,所述配置模块配置为响应于存在满足所述请求的计算节点,将虚拟机分配到所述计算节点;

回收模块,所述回收模块配置为响应于所述计算节点的所述虚拟机被删除,在所述GPU信息表中将所述计算节点修改为未分配状态。

7.根据权利要求6所述的设备,其特征在于,所述GPU信息表还包括GPU唯一标识、所在服务器节点、分配情况、绑定虚拟机id的信息。

8.根据权利要求6所述的设备,其特征在于,所述用户输入的请求还包括所需内存、GPU个数的信息。

9.根据权利要求6所述的设备,其特征在于,还包括警告模块,所述警告模块配置为响应于不存在满足所述请求的计算节点,返回没有可用的计算节点的警告。

10.根据权利要求6所述的设备,其特征在于,配置模块还配置为在所述GPU信息表中将所述计算节点修改为已分配状态。

说明书 :

一种多类型GPU的管理调度的方法和设备

技术领域

[0001] 本领域涉及计算机领域,并且更具体地涉及一种多类型GPU的管理调度的方法和设备。

背景技术

[0002] 随着云计算和人工智能的发展,市场对计算力的要求越来越高,图像处理单元GPU(Graphics Processing Unit,又称显示核心、视觉处理器)是目前计算力的主要选择。目前市场上GPU类型众多,因不同类型的GPU计算力不同、价格差距非常大,实际使用中不同业务场景会选择不同类型的GPU卡。如NVIDIA TESLA V100系列,多用于人工智能模型训练等计算力要求较高的场景,价格在40000以上;NVIDIA TESLA T4系列,多用于推理业务,价格在10000以上。因此,支持不同GPU类型的调度,成为各家云厂商的必备功能。
[0003] Openstack是一个开源的云计算管理平台项目,国内绝大部分云厂商均采用Openstack作为云平台基础,已成为一种事实上的云平台标准,但是Openstack社区版并不支持GPU类型的调度。

发明内容

[0004] 有鉴于此,本发明实施例的目的在于提出一种多类型GPU的管理调度的方法和设备,通过使用本发明的方法,能够使云平台可以根据GPU类型调度计算节点,使虚拟机可以绑定指定类型的GPU卡,实现GPU精准调度,能够使集群扩缩容时,无需改动便可更新集群中的GPU资源。
[0005] 基于上述目的,本发明的实施例的一个方面提供了一种多类型GPU的管理调度的方法,包括以下步骤:
[0006] 在Openstack的计算模块数据库中添加集群GPU信息表;
[0007] 每间隔阈值周期收集节点的GPU信息,并将GPU信息发送到GPU信息表中;
[0008] 响应于接收到用户输入的请求,查询GPU信息表并判断GPU信息表中是否存在满足请求的计算节点;
[0009] 响应于存在满足请求的计算节点,分配虚拟机到计算节点;
[0010] 响应于计算节点的虚拟机被删除,在GPU信息表中将该计算节点修改为未分配状态。
[0011] 根据本发明的一个实施例,GPU信息表包括GPU唯一标识、GPU类型、所在服务器节点、分配情况、绑定虚拟机id的信息。
[0012] 根据本发明的一个实施例,用户输入的请求包括所需内存、GPU个数、GPU类型的信息。
[0013] 根据本发明的一个实施例,还包括:
[0014] 响应于不存在满足请求的计算节点,返回没有可用的计算节点的警告。
[0015] 根据本发明的一个实施例,响应于存在满足请求的计算节点,分配虚拟机到计算节点包括:
[0016] 在GPU信息表中将该计算节点修改为已分配状态。
[0017] 本发明的实施例的另一个方面,还提供了一种多类型GPU的管理调度的设备,设备包括:
[0018] 管理模块,管理模块配置为在Openstack的计算模块数据库中添加集群GPU信息表;
[0019] 收集模块,收集模块配置为每间隔阈值周期收集节点的GPU信息,并将GPU信息发送到GPU信息表中;
[0020] 查询模块,查询模块配置为响应于接收到用户输入的请求,查询GPU信息表并判断GPU信息表中是否存在满足请求的计算节点;
[0021] 配置模块,配置模块配置为响应于存在满足请求的计算节点,将虚拟机分配到计算节点;
[0022] 回收模块,回收模块配置为响应于计算节点的虚拟机被删除,在GPU信息表中将该计算节点修改为未分配状态。
[0023] 根据本发明的一个实施例,GPU信息表包括GPU唯一标识、GPU类型、所在服务器节点、分配情况、绑定虚拟机id的信息
[0024] 根据本发明的一个实施例,用户输入的请求包括所需内存、GPU个数、GPU类型的信息。
[0025] 根据本发明的一个实施例,还包括警告模块,警告模块配置为响应于不存在满足请求的计算节点,返回没有可用的计算节点的警告。
[0026] 根据本发明的一个实施例,配置模块还配置为在GPU信息表中将该计算节点修改为已分配状态。
[0027] 本发明具有以下有益技术效果:本发明实施例提供的多类型GPU的管理调度的方法,通过在Openstack的计算模块数据库中添加集群GPU信息表;每间隔阈值周期收集节点的GPU信息,并将GPU信息发送到GPU信息表中;响应于接收到用户输入的请求,查询GPU信息表并判断GPU信息表中是否存在满足请求的计算节点;响应于存在满足请求的计算节点,分配虚拟机到计算节点;响应于计算节点的虚拟机被删除,在GPU信息表中将该计算节点修改为未分配状态的技术方案,能够使云平台可以根据GPU类型调度计算节点,使虚拟机可以绑定指定类型的GPU卡,实现GPU精准调度,能够使集群扩缩容时,无需改动便可更新集群中的GPU资源。

附图说明

[0028] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0029] 图1为根据本发明一个实施例的多类型GPU的管理调度的方法的示意性流程图;
[0030] 图2为根据本发明一个实施例的多类型GPU的管理调度的设备的示意图。

具体实施方式

[0031] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
[0032] 基于上述目的,本发明的实施例的第一个方面,提出了一种多类型GPU的管理调度的方法的一个实施例。图1示出的是该方法的示意性流程图。
[0033] 如图1中所示,该方法可以包括以下步骤:
[0034] S1在Openstack的计算模块数据库中添加集群GPU信息表,该信息表中可以包括集群GPU的基本信息、所在服务器节点和分配情况等,并可以对该表进行管理;
[0035] S2每间隔阈值周期收集节点的GPU信息,并将GPU信息发送到GPU信息表中,可以在集群的每个计算节点新增守护进程,定期收集上报每个节点的GPU类型、个数等信息到GPU信息表中;
[0036] S3响应于接收到用户输入的请求,查询GPU信息表并判断GPU信息表中是否存在满足请求的计算节点,在用户输入需求配置的信息后,在GPU信息表中查找满足条件的计算节点;
[0037] S4响应于存在满足请求的计算节点,分配虚拟机到计算节点;
[0038] S5响应于计算节点的虚拟机被删除,将GPU信息表中修改为未分配状态,当用户使用完该虚拟机并删除时,在GPU信息表中在该计算节点将分配状态修改为未分配,以便其他用户进行使用。
[0039] 本发明主要应用于云平台的GPU资源管理、调度,通过本方法和设备可以实现GPU类型调度,根据GPU类型将虚拟机调度到相应计算节点、绑定不同的GPU卡,满足实际业务需求,可以自动收集、更新节点GPU信息,在集群扩缩容时,自动更新集群中的GPU信息。
[0040] 通过本发明的技术方案,能够使云平台可以根据GPU类型调度计算节点,使虚拟机可以绑定指定类型的GPU卡,实现GPU精准调度,能够使集群扩缩容时,无需改动便可更新集群中的GPU资源。
[0041] 在本发明的一个优选实施例中,GPU信息表包括GPU唯一标识、GPU类型、所在服务器节点、分配情况、绑定虚拟机id的信息。可以在集群中设置GPU资源管理装置,该资源管理装置在Openstack的计算模块数据库中添加集群GPU信息表,该表中包含GPU唯一标识(id)、GPU类型、所在服务器节点、分配情况、绑定虚拟机id等信息并提供对该表的管理功能。
[0042] 在本发明的一个优选实施例中,用户输入的请求包括所需内存、GPU个数、GPU类型的信息。在本发明的一个优选实施例中,还包括:响应于不存在满足请求的计算节点,返回没有可用的计算节点的警告。
[0043] 可以在集群中新增GPU调度器,Openstack计算模块中存在很多调度器,用于根据用户输入的虚拟机配置选择计算节点、并在该节点创建虚拟机,如CoreFilter会根据CPU数过滤计算节点;Openstack支持同时使用多个调度器。GPU调度器的规则如下:在用户请求(包含所需CPU、内存、GPU个数、GPU类型等信息)下发到Openstack计算模块后,调度器查询GPU信息表中存储的GPU信息,根据请求中所需GPU类型、个数筛选满足条件的计算节点。如果存在,则分配虚拟机到该计算节点;如果不存在,则请求返回“没有可用的计算节点”的警告。
[0044] 在本发明的一个优选实施例中,响应于存在满足请求的计算节点,分配虚拟机到计算节点包括:
[0045] 在GPU信息表中将该计算节点修改为已分配状态。
[0046] 用户输入请求的过程如下:用户填写所需虚拟机的配置信息,包括CPU、内存、硬盘、镜像、GPU个数、GPU类型等,发起创建虚拟机请求;然后请求到达Openstack计算模块,计算模块根据调度器筛选计算节点。其中GPU调度器会根据GPU资源管理装置中GPU使用情况过滤计算节点;在确定计算节点后,计算模块在该节点上调用底层虚拟化接口创建虚拟机,通过GPU直通等技术绑定所需GPU,并将GPU资源管理装置中的GPU置为“已分配”状态。
[0047] 通过本发明的技术方案,能够使云平台可以根据GPU类型调度计算节点,使虚拟机可以绑定指定类型的GPU卡,实现GPU精准调度,能够使集群扩缩容时,无需改动便可更新集群中的GPU资源。
[0048] 需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read‑Only Memory,ROM)或随机存取存储器(Random Access Memory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0049] 此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。
[0050] 基于上述目的,本发明的实施例的第二个方面,提出了一种多类型GPU的管理调度的设备,如图2所示,设备200包括:
[0051] 管理模块201,管理模块201配置为在Openstack的计算模块数据库中添加集群GPU信息表;
[0052] 收集模块202,收集模块202配置为每间隔阈值周期收集节点的GPU信息,并将GPU信息发送到GPU信息表中;
[0053] 查询模块203,查询模块203配置为响应于接收到用户输入的请求,查询GPU信息表并判断GPU信息表中是否存在满足请求的计算节点;
[0054] 配置模块204,配置模块204配置为响应于存在满足请求的计算节点,将虚拟机分配到计算节点;
[0055] 回收模块205,回收模块205配置为响应于计算节点的虚拟机被删除,在GPU信息表中将该计算节点修改为未分配状态。
[0056] 在本发明的一个优选实施例中,GPU信息表包括GPU唯一标识、GPU类型、所在服务器节点、分配情况、绑定虚拟机id的信息
[0057] 在本发明的一个优选实施例中,用户输入的请求包括所需内存、GPU个数、GPU类型的信息。
[0058] 在本发明的一个优选实施例中,还包括警告模块,警告模块配置为响应于不存在满足请求的计算节点,返回没有可用的计算节点的警告。
[0059] 在本发明的一个优选实施例中,配置模块204还配置为在GPU信息表中将该计算节点修改为已分配状态。
[0060] 需要特别指出的是,上述系统的实施例采用了上述方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到上述方法的其他实施例中。
[0061] 此外,上述方法步骤以及系统单元或模块也可以利用控制器以及用于存储使得控制器实现上述步骤或单元或模块功能的计算机程序的计算机可读存储介质实现。
[0062] 本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0063] 上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。