CN108241532A - Gpu资源的管理分配方法和管理分配装置 - Google Patents
Gpu资源的管理分配方法和管理分配装置 Download PDFInfo
- Publication number
- CN108241532A CN108241532A CN201611209022.4A CN201611209022A CN108241532A CN 108241532 A CN108241532 A CN 108241532A CN 201611209022 A CN201611209022 A CN 201611209022A CN 108241532 A CN108241532 A CN 108241532A
- Authority
- CN
- China
- Prior art keywords
- gpu
- resource
- under
- information
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种GPU资源的管理分配方法和管理分配装置,该管理分配方法包括:监测到任一资源节点下的任一GPU的状态发生变化时,获取所述任一GPU的状态信息;基于获取到的所述任一GPU的状态信息,更新所述任一资源节点下的GPU资源信息;接收到来自待运行任务的GPU资源分配请求时,基于多个资源节点下的GPU资源信息,对GPU资源进行分配。本发明技术方案不仅能够提供给该待运行任务内存资源、CPU资源以及网络资源,还能提供给该待运行任务GPU资源,以保证待运行任务的稳定运行,并最终提高分布式存储系统处理和分析大数据的性能;且不会导致该资源节点GPU超负荷运行情况的发生。
Description
技术领域
本发明涉及计算机领域,具体而言,本发明涉及一种GPU资源的管理分配方法和一种GPU资源的管理分配装置。
背景技术
随着互联网的发展,大数据技术的浪潮也正在席卷全球,成为一种新的生产力技术。大数据技术不仅仅指获得海量数据,更重要的意义是通过对海量数据的分析、整合来获得隐藏在数据背后的有价值的信息。
由于大数据的特点就是数据的数量多,使得对大数据进行存储管理时面临着巨大的挑战,而这个问题可以通过分布式存储技术来解决。分布式存储技术是通过分布式存储系统将大数据分散存储在由多台独立的设备形成的设备集群上。由于分布式存储系统采用可扩展的系统结构,利用多台独立存储服务器分担存储负荷,利用位置服务器定位存储信息,这不但提高了分布式存储系统的可靠性、可用性和存取效率,还易于扩展。
为了更好地使分布式存储系统对大数据进行分析处理,编程人员需要在分布式存储系统的数据处理引擎上编译程序并将编译好的程序提交到分布式存储系统中,为编译好的程序分配运行资源并创建运行环境,从而对编译好的程序进行运行。但,由于分布式存储系统只对例如,内存资源、CPU资源和网络资源等进行管理和分配,并不对GPU资源进行管理和分配,且编译好的程序需要配置GPU资源才能运行,则会造成分布式存储系统分配给编译好的程序的运行资源无法满足GPU资源需求,编译好的程序也就无法运行或伴随GPU超负荷运行,从而给编程人员带来不便,甚至导致整个分布存储系统的崩溃。所以如何保证该编译好的程序能够稳定运行,是解决上述问题的关键。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的实施例提出了一种GPU资源的管理分配方法,包括:
监测到任一资源节点下的任一GPU的状态发生变化时,获取任一GPU的状态信息;
基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息;
接收到来自待运行任务的GPU资源分配请求时,基于多个资源节点下的GPU资源信息,对GPU资源进行分配。
优选地,基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息的步骤,具体包括:
在预存储的多个资源节点下的GPU资源信息中查找并确定与任一GPU相应的状态标识信息;
基于获取到的任一GPU的状态信息,对状态标识信息指示的GPU资源信息进行更新。
优选地,资源节点下的GPU资源信息通过以下任一存储格式进行预存储:
位图存储格式;数组存储格式;key-value存储格式。
优选地,基于多个资源节点下的GPU资源信息,对GPU资源进行分配,包括以下至少一种分配方式:
基于资源节点的标识信息的排列顺序,顺序查找多个资源节点下的GPU资源信息中,满足GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至待运行任务;或
随机查找多个资源节点下的GPU资源信息中,满足GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至待运行任务。
优选地,该方法还包括:
基于针对待运行任务的GPU资源分配结果,创建待运行任务的运行环境,并运行该任务。
本发明的另一实施例提出了一种GPU资源的管理分配装置,包括:
监测模块,用于监测到任一资源节点下的任一GPU的状态发生变化时,获取任一GPU的状态信息;
更新模块,用于基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息;
资源分配模块,用于接收到来自待运行任务的GPU资源分配请求时,基于多个资源节点下的GPU资源信息,对GPU资源进行分配。
优选地,更新模块,包括
查找单元,用于在预存储的多个资源节点下的GPU资源信息中查找并确定与任一GPU相应的状态标识信息;
获取单元,用于基于获取到的任一GPU的状态信息,对状态标识信息指示的GPU资源信息进行更新。
优选地,资源节点下的GPU资源信息通过以下任一存储格式进行预存储:
位图存储格式;数组存储格式;key-value存储格式。
优选地,资源分配模块包括以下至少一种分配方式:
基于资源节点的标识信息的排列顺序,顺序查找多个资源节点下的GPU资源信息中,满足GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至待运行任务;或
随机查找多个资源节点下的GPU资源信息中,满足GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至待运行任务。
优选地,该装置还包括:
运行模块,用于基于针对待运行任务的GPU资源分配结果,创建待运行任务的运行环境,并运行该任务。
本发明的技术方案中,监测到任一资源节点下的任一GPU的状态发生变化时,获取任一GPU的状态信息;基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息;基于多个资源节点下的GPU资源信息,对待运行任务分配GPU资源;使得被分配的资源节点不仅能够提供给该待运行任务,如编译程序的内存资源、CPU资源以及网络资源,还能提供给该待运行任务,如编译程序的GPU资源,以保证待运行任务的稳定运行,并最终提高分布式存储系统处理和分析大数据的性能;且不会导致该资源节点GPU超负荷运行情况的发生;也避免GPU卡因为超负荷运行而被损坏,继而造成分布式存储系统的崩溃。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明中的一个实施例的GPU资源的管理分配方法的流程示意图;
图2为本发明中的一个优选实施例的更新任一资源节点下的GPU资源信息的流程示意图;
图3为本发明中的另一个实施例的GPU资源的管理分配装置的结构框架示意图;
图4为本发明中的一个优选实施例的更新模块的结构框架示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
图1为本发明中的一个实施例的GPU资源的管理分配方法的流程示意图。
需要说明的是,本实施例的执行主体是服务器。
步骤S101:监测到任一资源节点下的任一GPU的状态发生变化时,获取任一GPU的状态信息;步骤S102:基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息;步骤S103:接收到来自待运行任务的GPU资源分配请求时,基于多个资源节点下的GPU资源信息,对GPU资源进行分配。
本发明的技术方案中,监测到任一资源节点下的任一GPU的状态发生变化时,获取任一GPU的状态信息;基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息;基于多个资源节点下的GPU资源信息,对待运行任务分配GPU资源;使得被分配的资源节点不仅能够提供给该待运行任务,如编译程序的内存资源、CPU资源以及网络资源,还能提供给该待运行任务,如编译程序的GPU资源,以保证待运行任务的稳定运行,并最终提高分布式存储系统处理和分析大数据的性能;且不会导致该资源节点GPU超负荷运行情况的发生;也避免GPU卡因为超负荷运行而被损坏,继而造成分布式存储系统的崩溃。
以下针对各个步骤的具体实现做进一步的说明:
步骤S101:监测到任一资源节点下的任一GPU的状态发生变化时,获取任一GPU的状态信息。
具体地,服务器监测到任一资源节点下的任一GPU的状态发生变化时,如,服务器监测到以编号000为标识信息的资源节点下的以编号0为标识信息的GPU的状态由“非空闲”变化为“空闲”时,则服务器获取该编号0的GPU变化后的状态信息“空闲”;其中,该资源节点下的其他GPU的状态未发生变化。
步骤S102:基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息。
具体地,基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息的步骤,如图2所示,具体包括:步骤S201:在预存储的多个资源节点下的GPU资源信息中查找并确定与任一GPU相应的状态标识信息;步骤S202:基于获取到的任一GPU的状态信息,对状态标识信息指示的GPU资源信息进行更新。
其中,资源节点下的GPU资源信息通过以下任一存储格式进行预存储:位图存储格式;数组存储格式;key-value存储格式。
设置编号000的资源节点下共有4块GPU卡,则该资源节点下的4块GPU卡的资源信息以位图存储格式进行预存储,即位图中的每个比特对应存储一块GPU卡的资源信息,该4块GPU卡的资源信息分别对应存储至四个比特中,其预存储的内容如下表1所示:
表1
0 | 1 | 0 | 1 |
其中,存储内容的0表示GPU的状态信息为“空闲”,1表示GPU的状态信息为“非空闲”;且设置从右至左依次为编号0的GPU的状态信息、编号1的GPU的状态信息、编号2的GPU的状态信息、编号3的GPU的状态信息。
如上述所示,参照表1,服务器在基于位图存储格式的预存储中的多个资源节点下的GPU资源信息中查找编号000的资源节点下的编号0的GPU状态标识信息“1”,服务器基于获取到的编号0的GPU变化后的状态信息“空闲”,将该状态标识信息“1”指示的GPU状态信息“非空闲”修改为状态标识信息“0”指示的GPU状态信息“空闲”,从而对该编号000的资源节点下的所有GPU资源信息进行更新。
需要说明的是,通过位图存储格式对资源节点下的GPU资源信息进行预存储,不仅能够节省存储空间,且能够快速查找到任一GPU的状态信息。
设置编号000的资源节点下共有4块GPU卡,则该资源节点下的GPU资源信息以数组存储格式进行预存储,其存储格式如下表2所示:
表2
Status(0) | Status(1) | Status(2) | Status(3) |
其中,各个数据的释义如下所示表3所示:
表3
GPU id | 0 | 1 | 2 | 3 |
Status(id) | 1 | 0 | 1 | 0 |
其中,Status(id)的数值0表示GPU的状态信息为“空闲”,1表示GPU的状态信息为“非空闲”。
如上述所示,参照表3,服务器在基于数组存储格式的预存储中的多个资源节点下的GPU资源信息中查找编号000的资源节点下的编号0的GPU状态标识信息“1”,服务器基于获取到的编号0的GPU变化后的状态信息“空闲”,将该状态标识信息“1”指示的GPU状态信息“非空闲”修改为状态标识信息“0”指示的GPU状态信息“空闲”,从而对该编号000的资源节点下的所有GPU资源信息进行更新,更新后的编号000的资源节点下的GPU资源信息如表4所示:
表4
GPU id | 0 | 1 | 2 | 3 |
Status(id) | 0 | 0 | 1 | 0 |
设置编号000的资源节点下共有4块GPU卡,则该资源节点下的GPU资源信息以key-value存储格式进行预存储,其存储格式如下:
其中,value的数值0表示GPU的状态信息为“空闲”,1表示GPU的状态信息为“非空闲”。
如上述所示,服务器在基于key-value存储格式的预存储中的多个资源节点下的GPU资源信息中查找编号000的资源节点下的编号0的GPU状态标识信息“1”,服务器基于获取到的编号0的GPU变化后的状态信息“空闲”,将该状态标识信息“1”指示的GPU状态信息“非空闲”修改为状态标识信息“0”指示的GPU状态信息“空闲”,即将键Node id:000:gpuid:0对应的值修改为0,从而实现对该编号000的资源节点下的所有GPU资源信息进行更新。
步骤S103:接收到来自待运行任务的GPU资源分配请求时,基于多个资源节点下的GPU资源信息,对GPU资源进行分配。
具体地,基于多个资源节点下的GPU资源信息,对GPU资源进行分配,包括以下至少一种分配方式:基于资源节点的标识信息的排列顺序,顺序查找多个资源节点下的GPU资源信息中,满足GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至待运行任务;或随机查找多个资源节点下的GPU资源信息中,满足GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至待运行任务。
例如,服务器接收来自待运行任务或程序的GPU资源分配请求,该GPU资源分配请求中包含请求GPU资源的数量,如,请求2个空闲GPU卡或资源;则服务器基于资源节点的编号的排列顺序,如,编号000的资源节点、编号001的资源节点、……编号020的资源节点;顺序查找这20个资源节点下的空闲GPU资源,并确定能够满足为该GPU资源分配请求提供2个空闲GPU资源的资源节点,如,当服务器顺序查找到编号000的资源节点下的GPU资源为:共有4块GPU卡,其中,编号0的GPU卡的状态信息“非空闲”、编号1的GPU卡的状态信息“空闲”、编号2的GPU卡的状态信息“非空闲”、编号3的GPU卡的状态信息“非空闲”,则该编号000的资源节点下的空闲GPU资源不能够满足为该GPU资源分配请求提供2个空闲GPU资源,则服务器继续顺序查找下一个编号001的资源节点下的GPU资源为,共有5块GPU卡,其中,编号0的GPU卡的状态信息“非空闲”、编号1的GPU卡的状态信息“空闲”、编号2的GPU卡的状态信息“非空闲”、编号3的GPU卡的状态信息“非空闲”、编号4的GPU卡的状态信息“空闲”,则该编号001的资源节点下的空闲GPU资源能够满足为该GPU资源分配请求提供2个空闲GPU资源;则服务器停止查找,并将该编号001的资源节点下的空闲GPU资源:编号1的GPU资源和编号4的GPU资源分配至待运行任务或程序。或者,服务器随机查找上述20个资源节点下的空闲GPU资源,并确定能够满足为该GPU资源分配请求提供2个空闲GPU资源的资源节点,如,当服务器随机查找到编号005的资源节点下的GPU资源为:共有4块GPU卡,其中,编号0的GPU卡的状态信息“非空闲”、编号1的GPU卡的状态信息“空闲”、编号2的GPU卡的状态信息“非空闲”、编号3的GPU卡的状态信息“非空闲”,则该编号005的资源节点下的空闲GPU资源不能够满足为该GPU资源分配请求提供2个空闲GPU资源,则服务器继续随机查找下一个编号015的资源节点下的GPU资源为,共有5块GPU卡,其中,编号0的GPU卡的状态信息“非空闲”、编号1的GPU卡的状态信息“空闲”、编号2的GPU卡的状态信息“非空闲”、编号3的GPU卡的状态信息“非空闲”、编号4的GPU卡的状态信息“空闲”,则该编号015的资源节点下的空闲GPU资源能够满足为该GPU资源分配请求提供2个空闲GPU资源;则服务器停止查找,并将该编号015的资源节点下的空闲GPU资源:编号1的GPU卡和编号4的GPU卡分配至待运行任务或程序。
具体地,该方法还包括:基于针对待运行任务的GPU资源分配结果,创建待运行任务的运行环境,并运行该任务。
例如,服务器基于针对该待运行任务或程序的GPU资源分配结果,以及其他运行资源分配结果,如内存资源分配结果、CPU资源分配结果和网络资源分配结果等,服务器在为待运行任务或程序提供GPU资源的资源节点上创建该待运行任务或程序的运行环境,使得该待运行任务或程序能够顺利运行。
需要说明的是,服务器在为待运行任务或程序提供其他运行资源时,如内存资源分配结果、CPU资源分配结果和网络资源分配结果等,应当满足该其他运行资源全部由提供GPU资源的资源节点提供,保证服务器在为待运行任务或程序提供所有运行资源的同一个资源节点上创建待运行任务或程序的运行环境,且在该资源节点上运行待运行任务或程序。
此外,服务器为待运行任务或程序提供任一资源节点下的其他运行资源的过程是本领域的成熟技术,在此就不赘述了。
图3为本发明中的另一个实施例的GPU资源的管理分配装置的结构框架示意图。
监测模块301,监测到任一资源节点下的任一GPU的状态发生变化时获取任一GPU的状态信息;更新模块302,基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息;资源分配模块303,接收到来自待运行任务的GPU资源分配请求时,基于多个资源节点下的GPU资源信息,对GPU资源进行分配。
以下针对各个模块的具体实现做进一步的说明:
监测模块301,监测到任一资源节点下的任一GPU的状态发生变化时,获取任一GPU的状态信息。
具体地,服务器的监测模块301,监测到任一资源节点下的任一GPU的状态发生变化时,如,服务器的监测模块301,监测到以编号000为标识信息的资源节点下的以编号0为标识信息的GPU的状态由“非空闲”变化为“空闲”时,则服务器获取该编号0的GPU变化后的状态信息“空闲”;其中,该资源节点下的其他GPU的状态未发生变化。
更新模块302,基于获取到的任一GPU的状态信息,更新任一资源节点下的GPU资源信息。
具体地,更新模块302,如图4所示,具体包括:查找单元401,在预存储的多个资源节点下的GPU资源信息中查找并确定与任一GPU相应的状态标识信息;获取单元402,基于获取到的任一GPU的状态信息,对状态标识信息指示的GPU资源信息进行更新。
其中,资源节点下的GPU资源信息通过以下任一存储格式进行预存储:位图存储格式;数组存储格式;key-value存储格式。
设置编号000的资源节点下共有4块GPU卡,则该资源节点下的4块GPU卡的资源信息以位图存储格式进行预存储,即位图中的每个比特对应存储一块GPU卡的资源信息,该4块GPU卡的资源信息分别对应存储至四个比特中,其预存储的内容如下表1所示:
表1
0 | 1 | 0 | 1 |
其中,存储内容的0表示GPU的状态信息为“空闲”,1表示GPU的状态信息为“非空闲”;且设置从右至左依次为编号0的GPU的状态信息、编号1的GPU的状态信息、编号2的GPU的状态信息、编号3的GPU的状态信息。
如上述所示,参照表1,服务器的更新模块302的查找单元401,在基于位图存储格式的预存储中的多个资源节点下的GPU资源信息中查找编号000的资源节点下的编号0的GPU状态标识信息“1”,服务器的更新模块302的获取单元402,基于获取到的编号0的GPU变化后的状态信息“空闲”,将该状态标识信息“1”指示的GPU状态信息“非空闲”修改为状态标识信息“0”指示的GPU状态信息“空闲”,从而对该编号000的资源节点下的所有GPU资源信息进行更新。
需要说明的是,通过位图存储格式对资源节点下的GPU资源信息进行预存储,不仅能够节省存储空间,且能够快速查找到任一GPU的状态信息。
设置编号000的资源节点下共有4块GPU卡,则该资源节点下的GPU资源信息以数组存储格式进行预存储,其存储格式如下表2所示:
表2
Status(0) | Status(1) | Status(2) | Status(3) |
其中,各个数据的释义如下所示表3所示:
表3
GPU id | 0 | 1 | 2 | 3 |
Status(id) | 1 | 0 | 1 | 0 |
其中,Status(id)的数值0表示GPU的状态信息为“空闲”,1表示GPU的状态信息为“非空闲”。
如上述所示,参照表3,服务器的更新模块302的查找单元401,在基于数组存储格式的预存储中的多个资源节点下的GPU资源信息中查找编号000的资源节点下的编号0的GPU状态标识信息“1”,服务器的更新模块302的获取单元402,基于获取到的编号0的GPU变化后的状态信息“空闲”,将该状态标识信息“1”指示的GPU状态信息“非空闲”修改为状态标识信息“0”指示的GPU状态信息“空闲”,从而对该编号000的资源节点下的所有GPU资源信息进行更新,更新后的编号000的资源节点下的GPU资源信息如表4所示:
表4
GPU id | 0 | 1 | 2 | 3 |
Status(id) | 0 | 0 | 1 | 0 |
设置编号000的资源节点下共有4块GPU卡,则该资源节点下的GPU资源信息以key-value存储格式进行预存储,其存储格式如下:
其中,value的数值0表示GPU的状态信息为“空闲”,1表示GPU的状态信息为“非空闲”。
如上述所示,服务器的更新模块302的查找单元401,在基于key-value存储格式的预存储中的多个资源节点下的GPU资源信息中查找编号000的资源节点下的编号0的GPU状态标识信息“1”,服务器的更新模块302的获取单元402,基于获取到的编号0的GPU变化后的状态信息“空闲”,将该状态标识信息“1”指示的GPU状态信息“非空闲”修改为状态标识信息“0”指示的GPU状态信息“空闲”,即将键Node id:000:gpu id:0对应的值修改为0,从而实现对该编号000的资源节点下的所有GPU资源信息进行更新。
资源分配模块303,接收到来自待运行任务的GPU资源分配请求时,基于多个资源节点下的GPU资源信息,对GPU资源进行分配。
具体地,资源分配模块303包括以下至少一种分配方式:基于资源节点的标识信息的排列顺序,顺序查找多个资源节点下的GPU资源信息中,满足GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至待运行任务;或随机查找多个资源节点下的GPU资源信息中,满足GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至待运行任务。
例如,服务器的资源分配模块303,接收来自待运行任务或程序的GPU资源分配请求,该GPU资源分配请求中包含请求GPU资源的数量,如,请求2个空闲GPU卡或资源;则服务器基于资源节点的编号的排列顺序,如,编号000的资源节点、编号001的资源节点、……编号020的资源节点;顺序查找这20个资源节点下的空闲GPU资源,并确定能够满足为该GPU资源分配请求提供2个空闲GPU资源的资源节点,如,当服务器的资源分配模块303,顺序查找到编号000的资源节点下的GPU资源为:共有4块GPU卡,其中,编号0的GPU卡的状态信息“非空闲”、编号1的GPU卡的状态信息“空闲”、编号2的GPU卡的状态信息“非空闲”、编号3的GPU卡的状态信息“非空闲”,则该编号000的资源节点下的空闲GPU资源不能够满足为该GPU资源分配请求提供2个空闲GPU资源,则服务器的资源分配模块303,继续顺序查找下一个编号001的资源节点下的GPU资源为,共有5块GPU卡,其中,编号0的GPU卡的状态信息“非空闲”、编号1的GPU卡的状态信息“空闲”、编号2的GPU卡的状态信息“非空闲”、编号3的GPU卡的状态信息“非空闲”、编号4的GPU卡的状态信息“空闲”,则该编号001的资源节点下的空闲GPU资源能够满足为该GPU资源分配请求提供2个空闲GPU资源;则服务器的资源分配模块303,停止查找,并将该编号001的资源节点下的空闲GPU资源:编号1的GPU资源和编号4的GPU资源分配至待运行任务或程序。或者,服务器的资源分配模块303,随机查找上述20个资源节点下的空闲GPU资源,并确定能够满足为该GPU资源分配请求提供2个空闲GPU资源的资源节点,如,当服务器的资源分配模块303,随机查找到编号005的资源节点下的GPU资源为:共有4块GPU卡,其中,编号0的GPU卡的状态信息“非空闲”、编号1的GPU卡的状态信息“空闲”、编号2的GPU卡的状态信息“非空闲”、编号3的GPU卡的状态信息“非空闲”,则该编号005的资源节点下的空闲GPU资源不能够满足为该GPU资源分配请求提供2个空闲GPU资源,则服务器的资源分配模块303,继续随机查找下一个编号015的资源节点下的GPU资源为,共有5块GPU卡,其中,编号0的GPU卡的状态信息“非空闲”、编号1的GPU卡的状态信息“空闲”、编号2的GPU卡的状态信息“非空闲”、编号3的GPU卡的状态信息“非空闲”、编号4的GPU卡的状态信息“空闲”,则该编号015的资源节点下的空闲GPU资源能够满足为该GPU资源分配请求提供2个空闲GPU资源;则服务器的资源分配模块303,停止查找,并将该编号015的资源节点下的空闲GPU资源:编号1的GPU卡和编号4的GPU卡分配至待运行任务或程序。
具体地,该装置还包括:运行模块,基于针对待运行任务的GPU资源分配结果,创建待运行任务的运行环境,并运行该任务。
例如,服务器的运行模块,基于针对该待运行任务或程序的GPU资源分配结果,以及其他运行资源分配结果,如内存资源分配结果、CPU资源分配结果和网络资源分配结果等,服务器在为待运行任务或程序提供GPU资源的资源节点上创建该待运行任务或程序的运行环境,使得该待运行任务或程序能够顺利运行。
需要说明的是,服务器的运行模块,在为待运行任务或程序提供其他运行资源时,如内存资源分配结果、CPU资源分配结果和网络资源分配结果等,应当满足该其他运行资源全部由提供GPU资源的资源节点提供,保证服务器在为待运行任务或程序提供所有运行资源的同一个资源节点上创建待运行任务或程序的运行环境,且在该资源节点上运行待运行任务或程序。
此外,服务器为待运行任务或程序提供任一资源节点下的其他运行资源的过程是本领域的成熟技术,在此就不赘述了。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种GPU资源的管理分配方法,其特征在于,包括:
监测到任一资源节点下的任一GPU的状态发生变化时,获取所述任一GPU的状态信息;
基于获取到的所述任一GPU的状态信息,更新所述任一资源节点下的GPU资源信息;
接收到来自待运行任务的GPU资源分配请求时,基于多个资源节点下的GPU资源信息,对GPU资源进行分配。
2.根据权利要求1所述的方法,其中,所述基于获取到的所述任一GPU的状态信息,更新所述任一资源节点下的GPU资源信息的步骤,具体包括:
在预存储的多个资源节点下的GPU资源信息中查找并确定与所述任一GPU相应的状态标识信息;
基于获取到的所述任一GPU的状态信息,对所述状态标识信息指示的GPU资源信息进行更新。
3.根据权利要求2所述的方法,其中,所述资源节点下的GPU资源信息通过以下任一存储格式进行预存储:
位图存储格式;数组存储格式;key-value存储格式。
4.根据权利要求1所述的方法,其中,所述基于多个资源节点下的GPU资源信息,对GPU资源进行分配,包括以下至少一种分配方式:
基于所述资源节点的标识信息的排列顺序,顺序查找所述多个资源节点下的GPU资源信息中,满足所述GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至所述待运行任务;或
随机查找所述多个资源节点下的GPU资源信息中,满足所述GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至所述待运行任务。
5.根据权利要求1所述的方法,其中,还包括:
基于针对待运行任务的GPU资源分配结果,创建所述待运行任务的运行环境,并运行该任务。
6.一种GPU资源的管理分配装置,其特征在于,包括:
监测模块,用于监测到任一资源节点下的任一GPU的状态发生变化时,获取所述任一GPU的状态信息;
更新模块,用于基于获取到的所述任一GPU的状态信息,更新所述任一资源节点下的GPU资源信息;
资源分配模块,用于接收到来自待运行任务的GPU资源分配请求时,基于多个资源节点下的GPU资源信息,对GPU资源进行分配。
7.根据权利要求6所述的装置,其中,所述更新模块,包括
查找单元,用于在预存储的多个资源节点下的GPU资源信息中查找并确定与所述任一GPU相应的状态标识信息;
获取单元,用于基于获取到的所述任一GPU的状态信息,对所述状态标识信息指示的GPU资源信息进行更新。
8.根据权利要求7所述的装置,其中,所述资源节点下的GPU资源信息通过以下任一存储格式进行预存储:
位图存储格式;数组存储格式;key-value存储格式。
9.根据权利要求6所述的装置,其中,所述资源分配模块包括以下至少一种分配方式:
基于所述资源节点的标识信息的排列顺序,顺序查找所述多个资源节点下的GPU资源信息中,满足所述GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至所述待运行任务;或
随机查找所述多个资源节点下的GPU资源信息中,满足所述GPU资源分配请求的任一资源节点下的空闲GPU资源,并将该任一资源节点下的空闲GPU资源分配至所述待运行任务。
10.根据权利要求6所述的装置,其中,还包括:
运行模块,用于基于针对待运行任务的GPU资源分配结果,创建所述待运行任务的运行环境,并运行该任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611209022.4A CN108241532A (zh) | 2016-12-23 | 2016-12-23 | Gpu资源的管理分配方法和管理分配装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611209022.4A CN108241532A (zh) | 2016-12-23 | 2016-12-23 | Gpu资源的管理分配方法和管理分配装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108241532A true CN108241532A (zh) | 2018-07-03 |
Family
ID=62704265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611209022.4A Pending CN108241532A (zh) | 2016-12-23 | 2016-12-23 | Gpu资源的管理分配方法和管理分配装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241532A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109712061A (zh) * | 2018-12-11 | 2019-05-03 | 中国航空工业集团公司西安航空计算技术研究所 | 一种gpu命令处理器健壮性运行管理方法 |
CN112052144A (zh) * | 2020-09-15 | 2020-12-08 | 曙光信息产业(北京)有限公司 | 信息管理方法、装置、电子设备及存储介质 |
CN112988383A (zh) * | 2021-03-12 | 2021-06-18 | 中国平安人寿保险股份有限公司 | 一种资源分配方法、装置、设备以及存储介质 |
CN115081233A (zh) * | 2022-06-30 | 2022-09-20 | 上海弘玑信息技术有限公司 | 一种流程仿真方法及电子设备 |
CN115220910A (zh) * | 2022-06-17 | 2022-10-21 | 中科驭数(北京)科技有限公司 | 一种资源调度方法、装置及设备 |
CN115374188A (zh) * | 2022-10-24 | 2022-11-22 | 沐曦科技(成都)有限公司 | 一种资源状态查询方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521012A (zh) * | 2011-11-24 | 2012-06-27 | 华中科技大学 | 基于虚拟机的gpu集群管理系统 |
CN102541640A (zh) * | 2011-12-28 | 2012-07-04 | 厦门市美亚柏科信息股份有限公司 | 一种集群gpu资源调度系统和方法 |
CN103365726A (zh) * | 2013-07-08 | 2013-10-23 | 华中科技大学 | 一种面向gpu集群的资源管理方法和系统 |
US20160055612A1 (en) * | 2014-08-25 | 2016-02-25 | Intel Corporation | Adaptive scheduling for task assignment among heterogeneous processor cores |
-
2016
- 2016-12-23 CN CN201611209022.4A patent/CN108241532A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521012A (zh) * | 2011-11-24 | 2012-06-27 | 华中科技大学 | 基于虚拟机的gpu集群管理系统 |
CN102541640A (zh) * | 2011-12-28 | 2012-07-04 | 厦门市美亚柏科信息股份有限公司 | 一种集群gpu资源调度系统和方法 |
CN103365726A (zh) * | 2013-07-08 | 2013-10-23 | 华中科技大学 | 一种面向gpu集群的资源管理方法和系统 |
US20160055612A1 (en) * | 2014-08-25 | 2016-02-25 | Intel Corporation | Adaptive scheduling for task assignment among heterogeneous processor cores |
Non-Patent Citations (1)
Title |
---|
梁东: "基于虚拟机的GPU计算资源管理系统", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109712061A (zh) * | 2018-12-11 | 2019-05-03 | 中国航空工业集团公司西安航空计算技术研究所 | 一种gpu命令处理器健壮性运行管理方法 |
CN112052144A (zh) * | 2020-09-15 | 2020-12-08 | 曙光信息产业(北京)有限公司 | 信息管理方法、装置、电子设备及存储介质 |
CN112052144B (zh) * | 2020-09-15 | 2023-05-26 | 曙光信息产业(北京)有限公司 | 信息管理方法、装置、电子设备及存储介质 |
CN112988383A (zh) * | 2021-03-12 | 2021-06-18 | 中国平安人寿保险股份有限公司 | 一种资源分配方法、装置、设备以及存储介质 |
CN115220910A (zh) * | 2022-06-17 | 2022-10-21 | 中科驭数(北京)科技有限公司 | 一种资源调度方法、装置及设备 |
CN115220910B (zh) * | 2022-06-17 | 2024-04-19 | 中科驭数(北京)科技有限公司 | 一种资源调度方法、装置及设备 |
CN115081233A (zh) * | 2022-06-30 | 2022-09-20 | 上海弘玑信息技术有限公司 | 一种流程仿真方法及电子设备 |
CN115374188A (zh) * | 2022-10-24 | 2022-11-22 | 沐曦科技(成都)有限公司 | 一种资源状态查询方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108241532A (zh) | Gpu资源的管理分配方法和管理分配装置 | |
US10698891B2 (en) | MxN dispatching in large scale distributed system | |
Lai et al. | Scalable subgraph enumeration in mapreduce | |
Zhou et al. | Balanced parallel fp-growth with mapreduce | |
US8874602B2 (en) | Random number generator in a MPP database | |
CN105550225B (zh) | 索引构建方法、查询方法及装置 | |
US9092469B2 (en) | Partitioning sorted data sets | |
He et al. | Parallel implementation of classification algorithms based on MapReduce | |
CN105740332A (zh) | 数据排序方法和装置 | |
Huynh et al. | An efficient approach for mining sequential patterns using multiple threads on very large databases | |
CN110188135A (zh) | 文件生成方法及设备 | |
Hendrix et al. | A scalable algorithm for single-linkage hierarchical clustering on distributed-memory architectures | |
CN111158800A (zh) | 基于映射关系构建任务dag的方法及装置 | |
DE102016201612A1 (de) | Parallelisierungskompilierungsverfahren, Parallelisierungskompilierer und elektronische Vorrichtung | |
Beraldi et al. | Scenario-based planning for lot-sizing and scheduling with uncertain processing times | |
CN115629853A (zh) | 一种任务调度的方法和装置 | |
CN113076365B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
US20210103478A1 (en) | Systems and methods for dynamic partitioning in distributed environments | |
de Rezende et al. | MapReduce with components for processing big graphs | |
Vanahalli et al. | Distributed load balancing frequent colossal closed itemset mining algorithm for high dimensional dataset | |
Wang et al. | An organizational cooperative coevolutionary algorithm for multimode resource-constrained project scheduling problems | |
Verma et al. | Comparison of partitioning algorithms for categorical data in cluster | |
CN108243204A (zh) | 进程运行状态的展示方法和展示装置 | |
CN113778982A (zh) | 一种数据迁移方法和装置 | |
DE102016201614A1 (de) | Parallelisierungskompilierungsverfahren, Parallelisierungskompilierer und elektronische Vorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180703 |
|
RJ01 | Rejection of invention patent application after publication |