本发明属于集群资源调度技术领域,具体地讲涉及一种图形处理器资源虚拟化调度方法。
背景技术
gpu(图形处理器单元)之前主要用于3d游戏的渲染,但是现在gpu已经广泛用于加速计算性负载,比如深度学习、vr等。gpu是由几百个核组成,因此可以并发处理数千个线程。尽管gpu的内核数目远远超过cpu,但是它的每个核的处理能力远小于cpu的核,而且不具有现代操作系统的所需要的一些特性,gpu并不适用于处理普通的计算,它们更多地用于计算消耗性操作。
图形处理器单元主要进行浮点运算和并行运算,其浮点运算和并行运算速度可以比cpu强上百倍之多,使用图形处理器虚拟化技术之后,可以让运行在数据中心服务器上的虚拟机实例共享使用同一块或多块图形处理器处理器进行图形运算。
调度系统解决的是硬件资源虚拟化以后,如何在集群范围里解决资源的合理使用的问题。目前对于图形处理器资源的虚拟化常用于单机,且在集群调度方面,常见的调度方法难以满足资源虚拟化的调度,因此提出一种图形处理器资源虚拟化调度方法是目前亟待解决的问题。
技术实现要素:
根据现有技术中存在的问题,本发明提供了一种图形处理器资源虚拟化调度方法,该调度方法能够均衡集群中各计算节点的负载,使得集群中各计算节点的资源合理使用。
为实现上述发明目的,本发明提供了一种图形处理器资源虚拟化调度方法,包括如下步骤:
s1,将基于图形处理器的算法服务软件编译成满足虚拟化标准的算法模板;所述虚拟化标准为opencontainerinitiative(oci);
s2,将算法模板传入到集群的管理节点即服务调度器,将算法模板保存在服务调度器的算法库中;
s3,在集群的服务调度器上安装调度服务软件,在集群的计算节点上安装代理服务软件;
s4,客户端向服务调度器发起算法服务创建指令,所述调度服务软件接收到算法服务创建指令后,根据设定的调度策略选择一台计算节点作为算法服务软件的运行节点;
s5,服务调度器中的调度服务软件发送远程指令给步骤s4中选择的计算节点,在该计算节点上下载算法模板,并启动算法模板中的算法服务软件。
优选的,所述服务调度器实时监测各个计算节点的算法服务软件的运行情况,当算法服务软件发生故障暂停或异常退出时,调度服务软件重新启动算法模板中的算法服务软件。
优选的,所述服务调度器实时监测各个计算节点的算法服务软件的运行情况,当某个计算节点发生故障,且与服务调度器失去连接超过设定时间后,调度服务软件根据设定的调度策略选择其他运行正常的计算节点作为算法服务软件的运行节点。
优选的,步骤s1中的算法模板包括算法服务软件本身、算法服务软件运行所依赖的软硬件资源、图形处理器的驱动版本号、图形处理器的硬件依赖条件。
优选的,步骤s2中的算法库用于存放算法模板,且算法库开放有http的监听端口,供各计算节点经过鉴权后下载算法模板。
优选的,步骤s4中,客户端通过rest接口、http协议的方式向服务调度器发起算法服务创建指令,调度服务软件根据各计算节点的代理服务软件采集到的各计算节点相应的软硬件环境、资源占用情况,并选择资源占用率最低的计算节点作为算法服务软件的运行节点。
进一步优选的,所述软硬件环境包括图形处理器的品牌、图形处理器的型号、图形处理器的驱动版本、计算节点的可用运行内存大小、计算节点的可用存储内存大小、计算节点的可用cpu核数。
本发明的有益效果在于:
1)本发明的调度方法将算法服务软件虚拟化,通过各计算节点的代理服务软件采集到的各计算节点相应的软硬件环境、资源占用情况,并选择资源占用率最低的计算节点作为算法服务软件的运行节点。该调度方法能够均衡集群中各节点的负载,使得集群中各节点的资源合理使用。
附图说明
图1为本发明的调度方法对应的系统组成示意图。
图2为本发明的调度方法的流程图。
图3为本发明实施例中的计算节点node1、node2、node3、node4的软硬件环境、资源占用情况示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1、图2所示,本发明提供了一种图形处理器资源虚拟化调度方法,包括如下步骤:
1、将基于图形处理器的算法服务软件编译成满足虚拟化标准的算法模板;
具体的,算法模板包括算法服务软件本身、算法服务软件运行所依赖的软硬件资源、图形处理器的驱动版本号、图形处理器的硬件依赖条件。
2、将算法模板传入到集群的管理节点即服务调度器,将算法模板保存在服务调度器的算法库中;
具体的,所述算法库用于存放算法模板,且算法库开放有http的监听端口,供各计算节点经过鉴权后下载算法模板。
3、在集群的服务调度器上安装调度服务软件,在集群的计算节点上安装代理服务软件;
4、客户端向服务调度器发起算法服务创建指令,调度服务软件接收到算法服务创建指令后,根据设定的调度策略选择一台计算节点作为算法服务软件的运行节点;
具体的,客户端通过rest接口、http协议的方式向服务调度器发起算法服务创建指令,调度服务软件根据各计算节点的代理服务软件采集到的各计算节点相应的软硬件环境、资源占用情况,并选择资源占用率最低的计算节点作为算法服务软件的运行节点;
所述软硬件环境包括图形处理器的品牌、图形处理器的型号、图形处理器的驱动版本、计算节点的可用运行内存大小、计算节点的可用存储内存大小、计算节点的可用cpu核数。
5、服务调度器中的调度服务软件发送远程指令给步骤s4中选择的计算节点,在该计算节点上下载算法模板,并启动算法模板中的算法服务软件;
所述服务调度器实时监测各个计算节点的算法服务软件的运行情况,当算法服务软件发生故障暂停或异常退出时,调度服务软件重新启动算法模板中的算法服务软件;
所述服务调度器实时监测各个计算节点的算法服务软件的运行情况,当某个计算节点发生故障,且与服务调度器失去连接超过设定时间后,调度服务软件根据设定的调度策略选择其他运行正常的计算节点作为算法服务软件的运行节点。
下面结合实施例和附图对本发明的调度方法进行详细说明。
实施例:
1、将基于图形处理器的车牌识别算法编译成满足虚拟化标准的算法模板,其中将图形处理器的驱动版本号和其硬件依赖条件作为标签gpu375.66打入该算法模板,则该算法模板的全名为licenseplaterecognition:gpu375.66;所述算法模板包括算法服务软件本身、算法服务软件运行所依赖的软硬件资源。
2、将上述算法模板传入集群的服务调度器的算法库中,供服务调度器的调度服务软件调度服务时使用:算法库用于存放算法模板,并且开放一个http的监听端口:http://192.168.1.10:5000,供各计算节点经过鉴权后请求下载算法模板。
3、客户端通过rest接口、http协议的方式向服务调度器发起算法服务创建指令。rest接口方式如表1所示。
表1:rest接口方式表格
4、调度服务软件接收到算法服务创建指令后,根据设定的调度策略选择一台计算节点作为算法服务软件的运行节点。
具体的,调度服务软件接收到算法服务创建指令后,调度服务软件根据各计算节点的代理服务软件采集到的各计算节点相应的软硬件环境、资源占用情况,并选择资源占用率最低的计算节点作为算法服务软件的运行节点。
如图3所示,图3中的4个计算节点node1、node2、node3、node4均为集群的计算节点,各计算节点的软硬件环境、资源占用情况见图3所示。
调度服务软件收集各计算节点的软硬件环境、资源占用情况,因为车牌识别服务需要图形处理器硬件,因此排除计算节点node4,在剩余计算节点中,由于车牌识别算法对显存、内存和cpu资源的敏感度递减,因此,根据实现规定的调度策略,计算节点node1和计算节点node2可用显存一致,排除可用显存较小的计算节点node3,而在其他资源情况类似的情况下,计算节点node1有更多的cpu资源,所以最终选择将车牌识别算法调度在计算节点node1上。
5、服务调度器中的调度服务软件发送远程指令给计算节点node1,在计算节点node1上下载算法模板,并启动算法模板中的车牌识别算法。
所述服务调度器实时监测各个计算节点的车牌识别算法的运行情况,当车牌识别算法发生故障暂停或异常退出时,调度服务软件重新启动算法模板中的车牌识别算法。
所述服务调度器实时监测各个计算节点的车牌识别算法的运行情况,当某个计算节点发生故障,且与服务调度器失去连接超过设定时间120秒后,服务调度器将会调度原先运行在计算节点node1的车牌识别算法到其他正常且符合调度策略的计算节点,在此例中应当调度至node2。
综上所述,本发明的调度方法能够均衡集群中各计算节点的负载,使得集群中各计算节点的资源合理使用。