本发明专利技术提供了一种基于虚拟机的GPU集群管理系统,包括集群管理节点和多个GPU集群节点,GPU集群节点又包括一个管理域和多个虚拟机。各虚拟机接收用户的CUDA作业,将其转发给集群管理节点,集群管理节点根据CUDA作业要求、GPS的参数信息以及虚拟机的当前作业队列信息指定合适的虚拟机运行作业;被指定的虚拟机运行作业过程中,拦截作业务中的特权指令,将其传送给管理域,管理域通过GPU驱动操作GPU运行特权指令,返回运行结果给对应的虚拟机以协助虚拟机的GUDA作业运行。本发明专利技术提供了先进的集群架构,支持虚拟桌面用户通过客户端提交GPU任务。该就能架构符合一系列的功能要求,包括网络透明性,易操作性和可扩展性。
【技术实现步骤摘要】
本专利技术涉及集群管理的
,更具体地涉及在虚拟桌面平台下提供支持GPU 计算任务运行和多个GPU服务器组成的GPU集群计算资源的调度和管理的系统。
技术介绍
当前远程桌面技术受到人们的追捧,当某台计算机开启了远程桌面连接功能后我们就可以在网络的另一端控制这台计算机了,通过远程桌面功能我们可以实时的操作这台计算机,在上面运行各种应用程序,所有的一切都好像是直接在该计算机上操作一样。集群是使用多个计算机,如典型的个人计算机或服务器,通过网络互联,来组成一个对用户来说单一的高可用性的系统。集群计算能够被用来实现负载均衡,当自己的计算机不满足某计算作业的要求时,集群系统可以把作业提交到支持该作业的计算节点上,而对计算机的使用者透明。从而,对外界来说,集群就像是一个唯一的系统。当前高校和研究院都广泛简历集群系统进行科学研究。但是目前没有基于虚拟机的GPU集群系统,不仅使集群支持GPU计算,还满足虚拟机用户进行GPU计算的支持。同时传统的集群调度算法使 GPU效率低下,不利于GPU充分发挥强劲的计算能力。
技术实现思路
本专利技术的目的在于提供一种基于虚拟机的GPU集群管理系统,该系统具有网络透明性和可扩展性。如图1和2所示,本专利技术系统包括一个集群管理节点和多个与其相接的GPU集群节点。GPU集群节点包括一个管理域和多个虚拟机。虚拟机提供用户操作接口以接收用户的CUDA作业,拦截任务中的特权指令,将其传送给管理域。管理域通过GPU驱动操作GPU 执行特权指令,返回执行结果给对应的虚拟机。虚拟机包括GPU信息收集模块1. 1、集群管理模块2. 1和vCUDA库拦截模块3. 1。 GPU信息收集模块1. 1,通过CUDA库提供的API函数,获取本集群节点的GPU参数信息,包括 GPU型号、GPU核数、共享内存大小、CUDA驱动版本以及GPU支持的计算能力信息,而后发送给集群管理模块2. 1 ;集群管理模块2. 1,提供接口给用户提交CUDA作业信息,将其与GPU 参数信息、作业完成信息一起传送给集群管理节点,并接收集群管理节点发送的CUDA作业调度指令,执行该指令指定的CUDA作业,将执行结果传送给提交该作业的虚拟机;vCUDA库拦截模块3. 1,在集群管理模块2. 1执行作业过程中,实时拦截GPU作业中的特权指令,将其传送给管理域,并接收管理域返回的特权指令执行结果以协助集群管理模块2. 1的CUDA作业运行。管理域包括vCUDA库接收模块4. 1。vCUDA库接收模块4. 1从vCUDA库拦截模块 3. 1接收特权指令,调用CUDA应用程序API,通过GPU驱动操作实际硬件GPU执行特权指令, 并将执行结果返回给对应的虚拟机的vCUDA库拦截模块3. 1。CUDA库是NVIDIA推出的库函数,用户可以直接使用较为简单的CUDAAPI实现对GPU的操作,取代了以前复杂的图形操作。集群管理节点包括集群管理中心模块5、GPU节点数据结构模块6和GPU集群调度模块7。集群管理中心模块5接收各GPU集群节点的虚拟机的集群管理模块2. 1发送过来的GPU参数信息、GUDA作业信息和虚拟机的作业完成信息,将GPU参数信息和完成作业信息传送给GPU节点数据结构模块6,将GUDA作业信息传送给GPU集群调度模块7,并依据来自 GPU集群调度模块7的作业调度结果把作业分配给合适的集群计算节点运行;GPU节点数据结构模块6,接收集群管理中心模块5发送过来的节点GPU信息和虚拟机的作业完成信息, 将作业完成信息对应的虚拟机的作业次数减一,还从GPU集群调度模块接收当前分配作业的虚拟机信息,将该虚拟机的作业计数加一。作业计数初始化为0,表示当前GPU空闲,当作业计数大于0时,表示该GPU处于忙碌状态;GPU集群调度模块7,根据集群管理中心模块5 提供的作业信息和GPU节点数据结构模块6的GPU参数信息以及虚拟机作业计数,根据调度算法为当前作业分配合适的计算虚拟机,将调度结果传送给集群管理中心模块,同时将当前被分配作业的虚拟机信息传送给GPU节点数据结构模块6。所述调度算法具体为查询GPU参数信息,寻找满足当前作业要求的虚拟机,从满足要求的虚拟机中寻找作业计数最小者作为当前作业的执行虚拟机。本专利技术的技术效果体现在本专利技术的基于虚拟机的GPU集群系统提供了先进的集群架构,支持虚拟桌面用户通过客户端提交GPU任务。该就能架构符合一系列的功能要求,包括网络透明性,易操作性和可扩展性。它利用通过的torque分布式集群管理软件,把安装有GPU的服务器上的虚拟机组件成虚拟机集群,支持虚拟桌面用户提交CPU以外的GPU作业,同时,本专利技术提供了有效的GPU调度算法,有效提高GPU效率。附图说明图1为基于虚拟机的GPU集群管理系统整体结构图;图2为集群节点详细结构图。具体实施例方式下面举例说明本系统实施过程中的配置情况。表1软硬件相应配置清单权利要求1. 一种基于虚拟机的GPU集群管理系统,包括一个集群管理节点和多个与其相接的 GPU集群节点;所述GPU集群节点包括一个管理域和多个虚拟机;所述虚拟机包括GPU信息收集模块(1. 1)、集群管理模块(2. 1)和vCUDA库拦截模块 (3. 1) ;GPU信息收集模块(1. 1),收集本集群节点的GPU参数信息,传送给集群管理模块 (2. 1);集群管理模块(2. 1),提供接口给用户提交CUDA作业信息,将其与GPU参数信息、作业完成信息信息一起传送给集群管理节点,接收来自集群管理节点传送的CUDA作业调度指令,运行该指令指定的CUDA作业,将该作业运行完成结果传送给提交该作业的虚拟机; vCUDA库拦截模块(3. 1),在集群管理模块(2. 1)执行作业过程中,实时拦截GPU作业中的特权指令,将其传送给管理域,并接收管理域返回的特权指令运行结果以协助集群管理模块(2. 1)的CUDA作业运行;所述管理域包括vCUDA库接收模块(4. 1) ;vCUDA库接收模块(4. 1),从vCUDA库拦截模块(3. 1)接收特权指令,调用CUDA应用程序API通过GPU驱动操作实际硬件GPU运行特权指令,并将特权指令运行结果返回给其对应的虚拟机的vCUDA库拦截模块(3. 1);所述集群管理节点包括集群管理中心模块(5)、GPU节点数据结构模块(6)和GPU集群调度模块(7);集群管理中心模块(5),接收来自虚拟机的集群管理模块(2. 1)的GPU参数信息、GUDA作业信息和作业完成信息,将GPU参数信息和作业完成信息传送给GPU节点数据结构模块6,将GUDA作业信息传送给GPU集群调度模块(7),依据来自GPU集群调度模块 (7)的作业调度结果产生CUDA作业调度指令;GPU节点数据结构模块㈩),接收来自集群管理中心模块(5)的GPU参数信息和作业完成信息,将作业完成信息所来源的虚拟机的作业计数减一,接收来自GPU集群调度模块(7)的执行虚拟机信息,将该执行虚拟机的作业计数加一;GPU集群调度模块(7),查询GPU节点数据结构模块(6)中的GPU参数信息,寻找满足GUDA作业要求的虚拟机,从满足要求的虚拟机中寻找作业计数最小者作为该作业的执行虚拟机,进而产生包含GUDA作业和该作业的执行虚拟机信息的作业调度本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:金海,廖小飞,梁东,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。