CN110543362A - 一种图形处理器管理方法、装置及服务器 - Google Patents

一种图形处理器管理方法、装置及服务器 Download PDF

Info

Publication number
CN110543362A
CN110543362A CN201910703720.7A CN201910703720A CN110543362A CN 110543362 A CN110543362 A CN 110543362A CN 201910703720 A CN201910703720 A CN 201910703720A CN 110543362 A CN110543362 A CN 110543362A
Authority
CN
China
Prior art keywords
target
processors
graphics
computing node
graphic
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.)
Granted
Application number
CN201910703720.7A
Other languages
English (en)
Other versions
CN110543362B (zh
Inventor
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910703720.7A priority Critical patent/CN110543362B/zh
Publication of CN110543362A publication Critical patent/CN110543362A/zh
Application granted granted Critical
Publication of CN110543362B publication Critical patent/CN110543362B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本申请实施例提供了一种图形处理器管理方法、装置及服务器,该方法包括:接收计算请求,计算请求包括:图形处理器的目标数量;至少基于所述图形处理器的目标数量,从多个计算节点链表中查找出目标计算节点,其中,计算节点链表中的每一个计算节点的空闲的图形处理器的数量相同;从目标计算节点的所有空闲的图形处理器中查找出所述图形处理器的目标数量个目标图形处理器。实现了提升GPU集群的整体GPU分配效率和GPU集群中的GPU的利用率。

Description

一种图形处理器管理方法、装置及服务器
技术领域
本申请涉及计算机领域,具体涉及图形处理器管理方法、装置及服务器。
背景技术
目前,当利用图形处理器(Graphics Processing Unit,GPU)集群进行诸如神经网络训练、并行进行加速的大规模计算时,通常采用的分配GPU集群中的GPU的方式为:针对每一个计算请求,计算节点的分配和计算节点中的GPU的分配均为随机分配的。
然后,由于每一次计算所请求的GPU数目的随机性、具有多个GPU的计算节点中的GPU之间的连接方式的数据传输性能的差异等因素,采用随分配GPU集群中的GPU的方式会导致以下问题:GPU分配的碎片化,导致无法充分利用GPU集群中的GPU。
发明内容
本申请实施例提供了图形处理器管理方法和装置。
第一方面,本申请实施例提供了图形处理器管理方法,该方法包括:接收计算请求,计算请求包括:图形处理器的目标数量;至少基于所述图形处理器的目标数量,从多个计算节点链表中查找出目标计算节点,其中,计算节点链表中的每一个计算节点的空闲的图形处理器的数量相同;从目标计算节点的所有空闲的图形处理器中查找出所述图形处理器的目标数量个目标图形处理器。
第二方面,本申请实施例提供了图形处理器管理装置,该装置包括:计算请求接收单元,被配置为接收计算请求,计算请求包括:目标图形处理器的目标数量;目标计算节点查找单元,被配置为至少基于所述目标图形处理器的目标数量,从多个计算节点链表中查找出目标计算节点,其中,计算节点链表中的每一个计算节点的空闲的目标图形处理器的数量相同;目标图形处理器查找单元,被配置为从目标计算节点的所有空闲的目标图形处理器中查找出所述目标图形处理器的目标数量个目标图形处理器。
本申请实施例提供的图形处理器管理方法和装置,至少具有以下优点:
通过计算节点链表来管理GPU集群中的所有空闲的计算节点,每一次接收到计算请求需要分配计算节点时,从多个计算节点中查找出包括的空闲的GPU的数量与GPU的目标数量相同或接近的目标计算节点来完成计算,避免GPU分配过程中因随机分配计算节点而造成的GPU分配的碎片化的问题,提升GPU集群的整体GPU分配效率和GPU集群中的GPU的利用率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本请求的其它特征、目的和优点将会变得更明显:
图1示出了本申请实施例提供的图形处理器管理方法的一个实施例的流程图;
图2示出了从多个计算节点链表中查找目标计算节点的一个流程图;
图3示出了从目标计算节点中查找目标图形处理器的一个流程图;
图4示出了本申请实施例提供的图形处理器管理装置的一个结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,其示出了本申请实施例提供的图形处理器管理方法的流程。该方法包括以下步骤:
步骤101,接收计算请求。
在本申请中,利用GPU集群进行计算时,首先接收计算请求。每一次利用GPU集群进行计算时,均可以接收到一个计算请求。计算请求包括:图形处理器的目标数量。图形处理器的目标数量可以称之为GPU的目标数量。GPU的目标数量为完成本次计算所需的GPU的数量。
步骤102,至少基于图形处理器的目标数量,从多个计算节点链表中查找出目标计算节点。
在本申请中,对于每一个计算节点链表,计算节点链表中的每一个计算节点的空闲GPU的数量相同。换言之,一个计算节点链表由包含的空闲GPU的数量相同的计算节点组成。对于任意一个计算节点链表,其包括的计算节点的空闲GPU的数量与其他的计算节点链表中的计算节点的空闲GPU的数量均不相同。
例如,多个计算节点链表为计算节点链表1、计算节点链表2...计算节点链表N。计算节点链表1中的每一个计算节点的空闲GPU的数量为1,计算节点链表2中的每一个计算节点的GPU的数量为2,计算节点链表N中的每一个计算节点的空闲GPU的数量为N。
在本申请中,可以基于GPU的目标数量,从多个计算节点链表中查找出目标计算节点。可以从包括的计算节点的空闲的GPU数量大于或等于的GPU的目标数量的计算节点链中的所有计算节点中选取出作为目标计算节点的计算节点。
在本申请中,计算请求中还可以包括计算所需的CPU的数量、计算所需的内存量。可以基于GPU的目标数量、计算所需的CPU的数量、计算所需的内存量,从多个计算节点链表中查找出目标计算节点。
在本申请中,可以预先分别分配给每一个计算节点链一定数量的CPU和一定内存量的内存。对于每一个计算节点链表,记录计算节点链表的空闲的CPU的数量和计算节点链表的空闲的内存量。
当基于GPU的目标数量、计算所需的CPU的数量、计算所需的内存量,从多个计算节点链表中查找出目标计算节点时,可以首先确定包括的空闲的CPU的大于计算所需的CPU的数量并且包括的空闲的内存量大于计算所需的内存量以及包括的计算节点的空闲的GPU数量大于或等于的GPU的目标数量的计算节点链。然后,从确定的计算节点链表的空闲的CPU中分配计算所需的CPU的数量个CPU,从确定的计算节点链表的空闲的内存量中分配计算所需的内存量。同时,从确定的计算节点链表中选取出作为目标计算节点的计算节点。从而,基于GPU的目标数量、计算所需的CPU的数量、计算所需的内存量,从多个计算节点链表中查找出目标计算节点。在一些实施例中,当基于GPU的目标数量,从多个计算节点链表中查找出计算节点时,可以优先从包括的计算节点中的空闲的GPU的数量与GPU的目标数量一致的计算节点链表中查找目标计算节点。包括的计算节点中的空闲的GPU的数量与GPU的目标数量一致的计算节点链表可以称之为优选计算节点链表。
当优选计算节点链表不为空时,可以从优选计算节点链表中的所有计算节点中选取出任意一个计算节点作为目标计算节点。
当优选计算节点链表为空,则可以继续从优选计算节点链表的上级计算节点链表中查找目标计算节点。优选计算节点链表的上级计算节点链表中计算节点的空闲GPU的数量大于优选计算节点链表中计算节点的空闲GPU的数量。优选计算节点链表的上级计算节点链表的数量可以为多个。可以按照包括的计算节点中的空闲GPU的数量由少到多的顺序,访问优选计算节点链表的上级计算节点链表,直至查找出目标计算节点。
例如,多个计算节点链表为计算节点链表1、计算节点链表2...计算节点链表N。计算节点链表1中的每一个计算节点的空闲GPU的数量为1,计算节点链表2中的每一个计算节点的GPU的数量为2,计算节点链表N中的每一个计算节点的空闲GPU的数量为N。优选计算节点链表为计算节点链表2,则可以按照计算节点链表3、计算节点链表4...计算节点链表N的顺序,访问计算节点链表2的上级计算节点链表,直至查找出目标计算节点。
在一些实施例中,计算请求还包括:中央处理器(Central Processing Unit,简称CPU)需求数量、内存需求量。中央处理器需求数量可以称之为CPU需求数量。至少基于GPU的目标数量,从多个计算节点链表中查找出目标计算节点包括:基于图形处理器的目标数量和中央处理器需求数量以及所述内存需求量,从多个计算节点链表中查找出满足分配条件的目标计算节点。分配条件包括:空闲的CPU的数量大于或等于计算请求中的CPU需求数量并且空闲的内存量大于或等于计算请求中的内存需求量。
当基于图形处理器的目标数量和中央处理器需求数量以及所述内存需求量,从多个计算节点链表中查找出满足分配条件的目标计算节点时,可以首先判断优选计算节点链表中是否存在满足分配条件的计算节点。优选计算节点链表中的计算节点的空闲的GPU的数量与GPU的目标数量相等。当优选计算节点链表中存在满足分配条件的计算节点时,可以将满足分配条件的计算节点作为目标计算节点。当优选计算节点链表中不存在满足分配条件的计算节点时,可以从优选计算节点链表的上级计算节点链表中查找出满足分配条件的计算节点,将查找出的满足分配条件的计算节点作为目标计算节点。当从优选计算节点链表的上级计算节点链表中查找满足分配条件的计算节点时,可以从优选计算节点链表的上一级计算节点链表中开始查找。优选计算节点链表的上一级计算节点链表中的计算节点的空闲的GPU的数量为优选计算节点链表中的计算节点的空闲的GPU的数量+1。每一次从一个计算节点链表中查找目标计算节点时,若计算节点链表为空,则继续从计算节点链表的上一级计算节点链表中查找目标计算节点。
请参考图2,其示出了从多个计算节点链表中查找目标计算节点的一个流程图。
在本申请中,可以将运行在服务器上的用于从多个计算节点链表中查找出目标计算节点的***称之为第一级伙伴***。可以由第一级伙伴***从多个计算节点链表中查找出目标计算节点。
当从多个计算节点链表中查找出目标计算节点时,首先根据GPU的目标数量,访问优选计算节点链表。优选计算节点链表中的计算节点的空闲的GPU的数量与GPU的目标数量相同。优选计算节点链表作为当前访问的计算节点链表。
然后,判断当前的计算节点链表对应的MAX CPU、Mem是否满足请求量。当前的计算节点链表对应的MAX CPU可以表示当前访问的计算节点链表中包括空闲的CPU最多的计算节点具有的空闲的CPU的数量,Mem表示该计算节点的空闲的内存量。判断当前访问的计算节点链表对应的MAX CPU、Mem是否满足请求量可以为:判断MAX CPU是否大于或等于计算请求中的CPU的目标数量以及Mem是否大于或等于计算请求中的内存需求量。
若当前的计算节点链表对应的MAX CPU、Mem满足请求量,相当于在计算节点链表中至少有包括空闲的CPU最多的计算节点可以作为目标计算节点,此时,可以遍历当前访问的计算节点链表,查找出最优先符合CPU需求数量、Mem需求量的计算节点作为目标计算节点。然后,计算查找出的作为目标计算节点的计算节点的GPU、CPU、Mem等的剩余的空闲量,重新将查找出的计算节点***当前访问的链表。若当前的计算节点链表对应的MAX CPU、Mem不满足请求量时,将当前的计算节点链表的上一级计算节点链作为新的当前的计算节点链表,该当前访问的计算节点链表的上一级计算节点链包括的空闲的GPU的数量为当前访问的计算节点链表的中的计算节点的空闲的GPU的数量+1。继续判断该新的计算节点链表对应的MAX CPU、Mem是否满足请求量。通过上述方式访问至少一个计算节点链表,直至查找出目标计算节点。
步骤103,从目标计算节点的所有空闲的图形处理器中查找出图形处理器的目标数量个目标图形处理器。
在本申请中,当目标计算节点为优选计算节点链表中的计算节点时,目标计算节点的空闲的GPU的数量等于GPU的目标数量,可以将该目标计算节点包括的所有空闲的GPU均作为目标GPU,从而,从目标计算节点的所有空闲的GPU中查找出GPU的目标数量个目标GPU。然后,利用查找出的GPU的目标数量个目标GPU完成在计算请求中描述的需要由GPU的目标数量个GPU完成的计算操作。
当目标计算节点为优选计算节点链表的上级计算节点链表中的计算节点时,目标计算节点的空闲的GPU的数量大于GPU的目标数量,可以从目标计算节点包括的所有空闲的GPU中选取出GPU的目标数量个目标GPU作为目标GPU,从而,从目标计算节点的所有空闲的GPU中查找出GPU的目标数量个目标GPU。然后,利用查找出的GPU的目标数量个目标GPU完成在计算请求中描述的需要由GPU的目标数量个GPU完成的计算操作。
在一些实施例中,目标计算节点为优选计算节点链表的上级计算节点链表中的计算节点。目标计算节点的空闲的GPU的数量大于GPU的目标数量。当从目标计算节点的所有GPU中查找GPU的目标数量个目标GPU时,可以从目标计算节点的多个GPU链表中查找出GPU的目标数量个目标GPU。
对于目标计算节点的每一个GPU链表,GPU链表中的每一个GPU组的连接性能信息相同。GPU组的连接性能信息指示通过GPU组中的GPU之间的连接方式传输数据的性能。GPU组中的GPU之间的连接方式可以包括:NVLINK、PIX(PCIe internal switch)、PXB(PCIeinternal switches)、PHB(PCIe host bridge)、SOC(cpu socket)。其中,GPU组中的GPU之间通过NVLINK连接时,带宽最高,延时最低。GPU组中的GPU之间通过SOC连接时,带宽最低,延时最高。GPU组中的GPU之间的延时越低,性能越高。上述连接方式的性能由高到低可以表示为:NVLINK>PIX>PXB>PHB>SOC。
当从目标计算节点的多个GPU链表中查找出GPU的目标数量个目标GPU时,可以按照连接性能由高至低的顺序访问多个GPU链表中的CPU链表并且从访问到的GPU链表中查找目标GPU,直至查找出GPU的目标数量个目标GPU。GPU链表的连接性能为GPU链表包括的GPU组的连接性能。
例如,目标计算节点包括五个GPU链表,五个GPU链表均包括至少一个GPU组。第一个链表中的每一个GPU组中的GPU之间采用NVLINK连接。第二个链表中的每一个GPU组中的GPU之间采用PIX连接。第三个链表中的每一个GPU组中的GPU之间采用PXB连接。第四个链表中的每一个GPU组中的GPU之间采用PHB连接。第五个链表中的每一个GPU组中的GPU之间采用SOC连接。
从第一个GPU链表开始查找目标GPU,直至查找出GPU的目标数量个目标GPU。当GPU的目标数量大于第一个链表中包括的所有空闲的GPU的数量时,则将第一个GPU链表中包括的所有空闲的GPU均作为目标GPU,继续在第二个GPU链表中查找目标GPU。当第一个GPU链表中的空闲的GPU的数量和第二个GPU链表中的空闲的GPU的数量之和小于GPU的目标数量,继续从第三个GPU链表中查找目标GPU。按照上述方式,直至查找出GPU的目标数量个目标GPU。
在本申请中,通过计算节点中的GPU之间连接方式的数据传输性能来管理计算节点中的所有GPU,每一次接收到计算请求,在已经分配目标计算节点,需要进一步分配目标计算节点中的GPU时,分配数据传输的性能较高的GPU组中的目标GPU,从而,提升分配的目标GPU之间的数据传输效率,进而进一步提升计算效率。
在一些实施例中,目标计算节点中的GPU组包括的GPU的数量为两个。例如,目标计算节点包括五个GPU链表,五个GPU链表均包括至少一个GPU组。第一个链表中的每一个GPU组中的两个空闲的GPU之间采用NVLINK连接。第二个链表中的每一个GPU组中的两个空闲的GPU之间采用PIX连接。第三个链表中,每一个GPU组中的两个空闲的GPU之间采用PXB连接。第四个链表中,每一个GPU组中的两个空闲的GPU之间采用PHB连接。第五个链表中,每一个GPU组中的两个空闲的GPU之间采用SOC连接。
在一些实施例中,当GPU的目标数量为偶数时,可以按照连接性能由高至低的顺序访问多个GPU链表中的CPU链表并且从访问到的GPU链表中查找目标GPU,直至查找出GPU的目标数量个目标GPU,其中,GPU链表的连接性能为GPU链表中的GPU组的连接性能。
当GPU的目标数量为奇数时,可以按照连接性能由低至高的顺序访问多个GPU链表中的CPU链表并且从访问到的GPU链表中查找目标GPU,直至查找出一个目标GPU,以及按照连接性能由高至低的顺序并且从访问到的GPU链表中查找,直至查找出剩余的数量个目标GPU。剩余的数量为GPU的目标数量-1。
例如,GPU组包括的GPU的数量为两个。目标计算节点包括五个GPU链表,五个GPU链表均包括至少一个GPU组。第一个GPU链表中的每一个GPU组中的GPU之间采用NVLINK连接。第二个GPU链表中的每一个GPU组中的GPU之间采用PIX连接。第三个GPU链表中的每一个GPU组中的GPU之间采用PXB连接。第四个GPU链表中的每一个GPU组中的GPU之间采用PHB连接。第五个GPU链表中的每一个GPU组中的GPU之间采用SOC连接。
当GPU的目标数量为偶数时,从第一个GPU链表开始查找目标GPU,直至查找出GPU的目标数量个目标GPU。当GPU的目标数量大于第一个链表中包括的所有空闲的GPU的数量时,则将第一个链表中的所有GPU组中的空闲的GPU均作为目标GPU,继续在第二个GPU链表中查找目标GPU。当第一个GPU链表中的空闲GPU的数量和第二个链表中的空闲GPU的数量之和小于GPU的目标数量时,继续从第三个链表中查找目标GPU。按照上述方式,直至查找出GPU的目标数量个目标GPU。当GPU的目标数量为偶数时,查找过程相当于从第一个GPU链表开始查找目标GPU,分配GPU的目标数量/2个GPU组,将分配的GPU的目标数量/2个GPU组中的空闲的GPU均作为目标GPU。
当GPU的目标数量为奇数时,从第五个GPU链表开始查找,直至查找出一个目标GPU。除了该一个目标GPU,剩余的GPU的目标数量-1个目标GPU则从第一个GPU链表开始查找,直至查找出GPU的目标数量-1个目标GPU。若第五个GPU链表不为空,则从第五个GPU链表中的所有空闲的GPU中选取出一个空闲的GPU作为一个目标GPU。若第五个GPU链表为空,则继续从第四个GPU链表中查找。每一次确定一个GPU链表为空,继续从GPU链表的上一级GPU链表中查找,直至查找出一个目标GPU。
请参考图3,其示出了从目标计算节点中查找目标图形处理器的一个流程图。
在本申请中,可以由第二级伙伴***从目标计算节点的所有空闲的GPU中查找出GPU的目标数量个目标GPU。换言之,通过第二级伙伴***来分配GPU的目标数量个空闲的GPU作为目标GPU以用于计算。
第二级伙伴***可以建立多个GPU链表GPUs affinity 1-GPUs affinityN。链表的序号越小,链表中的GPU组的连接性能越高。GPUs affinity 1链表中的GPU组的连接性能最高。GPUs affinityN链表中的GPU组的连接性能最低。
当GPU的目标数量为偶数时,从GPUs affinity 1链表开始查找,若GPUs affinity1链表不为空,GPUs affinity 1链表中的空闲的GPU的数量大于GPU的目标数量,则从所有空闲的GPU中选取出GPU的目标数量个GPU作为目标GPU。若GPUs affinity 1链表不为空,GPUs affinity 1链表中的空闲的GPU的数量等于GPU的目标数量,则将所有空闲的GPU中均作为目标GPU。若GPUs affinity 1链表不为空,GPUs affinity 1链表中的空闲的GPU的数量小于GPU的目标数量,则将所有空闲的GPU中均作为目标GPU,继续从GPUs affinity 1的下一级链表GPUs affinity2中查找。若GPUs affinity 1链表为空,继续从GPUs affinity1的下一级链表GPUs affinity2中查找。
每一次访问到一个链表并且将一个链表中所有空闲的GPU均作为目标GPU之后,已经查找出的目标GPU的总数量仍然没有达到GPU的目标数量,均继续从访问到的链表的下一级链表中进行查找。按照上述方式查找,直至查找出GPU的目标数量个目标GPU。然后,将查找出GPU的目标数量个目标GPU加入资源分配集合,更新有空闲的GPU被作为目标GPU的GPUsaffinity链表。将资源分配集合返回给调度***。调度***可以为对各个计算节点的GPU资源进行调度的***。调度***可以根据资源分配集合,确定各个计算节点上的已经被分配的空闲的GPU的数量,来确定各个计算节点上的剩余的GPU资源,以对各个计算节点的GPU资源进行调度。例如,当调度***确定某个计算节点中已经被分配的空闲的GPU的数量较多时,调度***可以将GPU集群中的未分配的GPU资源分配给该计算节点。
当GPU的目标数量为奇数时,从GPUs affinityN链表开始,查找出一个目标GPU,剩余的偶数个目标GPU即GPU的目标数量-1个空闲的GPU则从GPUs affinity 1开始查找,直至查找出GPU的目标数量个空闲的GPU,若affinityN链表不为空,从GPUs affinityN链表中的所有空闲的GPU中选取出一个空闲的GPU作为目标GPU。若GPUs affinityN链表为空,则从GPUs affinityN的上一级链表即GPUs affinityN-1中查找,每一次确定一个链表为空,继续从链表的上一级链表中查找,直至查找出一个目标GPU。然后,将查找出GPU的目标数量个目标GPU加入资源分配集合。更新有空闲的GPU被作为目标GPU的GPUs affinity链表。将资源分配集合返回给调度***。
请参考图4,作为对上述各图所示方法的实现,本申请提供了一种装置的一个实施例,该装置实施例与图1所示的方法实施例相对应。装置中的各个单元被配置为完成的相应的操作的具体实现方式可以参考方法实施例中描述的相应的操作的具体实现方式。
如图4所示,本实施例的装置包括:计算请求接收单元401,目标计算节点查找单元402,目标图形处理器查找单元403。其中,计算请求接收单元401被配置为接收计算请求,计算请求包括:目标图形处理器的目标数量;目标计算节点查找单元402被配置为至少基于所述目标图形处理器的目标数量,从多个计算节点链表中查找出目标计算节点,其中,计算节点链表中的每一个计算节点的空闲的目标图形处理器的数量相同;目标图形处理器查找单元403被配置为从目标计算节点的所有空闲的目标图形处理器中查找出所述目标图形处理器的目标数量个目标图形处理器。
在一些实施例中,计算请求还包括:中央处理器需求数量、内存需求量;目标计算节点查找单元402进一步被配置为:基于所述图形处理器的目标数量和所述中央处理器需求数量以及所述内存需求量,从多个计算节点链表中查找出满足分配条件的目标计算节点,分配条件包括:空闲的中央处理器的数量大于或等于所述中央处理器需求数量并且空闲的内存量大于或等于内存需求量。
在一些实施例中,目标计算节点查找单元402进一步被配置为:判断优选计算节点链表中是否包括计算节点,其中,优选计算节点链表中的计算节点的空闲的图形处理器的数量与所述图形处理器的目标数量相等;若是,从优选计算节点链表中选取出一个计算节点作为目标计算节点;若否,从优选计算节点链表的上级计算节点链表中查找出作为目标计算节点的计算节点。
在一些实施例中,目标图形处理器查找单元403进一步被配置为:当目标计算节点为从优选计算节点链表的上级计算节点链表中查找出的计算节点时,从目标计算节点的多个图形处理器链表中查找出图形处理器的目标数量个目标图形处理器,其中,图形处理器链表中的每一个图形处理器组的连接性能相同,图形处理器包括至少一个空闲的图形处理器,图形处理器组的连接性能为通过图形处理器组中的图形处理器之间的连接方式传输数据的性能。
在一些实施例中,目标图形处理器查找单元403进一步被配置为:当图形处理器的目标数量为偶数时,按照连接性能由高至低的顺序访问多个图形处理器链表中的图形处理器链表并且从访问到的图形处理器链表中查找目标图形处理器,直至查找出图形处理器的目标数量个目标图形处理器;当图形处理器的目标数量为奇数时,按照连接性能由低至高的顺序访问多个图形处理器链表中的图形处理器链表并且从访问到的图形处理器链表中查找目标图形处理器,直至查找出一个目标图形处理器,以及按照连接性能由高至低的顺序访问多个图形处理器链表中的图形处理器链表并且从访问到的图形处理器链表中查找目标图形处理器,直至查找出剩余的数量个目标图形处理器,所述剩余的数量为所述图形处理器的目标数量减1。
本申请还提供了一种服务器,该服务器可以配置有一个或多个处理器;存储器,用于存储一个或多个程序,一个或多个程序中可以包括用以执行上述实施例中描述的操作的指令。当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述实施例中描述的操作的指令。
本申请还提供了一种计算机可读介质,该计算机可读介质可以是服务器中所包括的;也可以是单独存在,未装配入服务器中。上述计算机可读介质承载有一个或者多个程序,当一个或者多个程序被服务器执行时,使得服务器执行上述实施例中描述的操作。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包括或存储程序的有形介质,该程序可以被消息执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多方面形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由消息执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包括的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行消息。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机消息的组合来实现。
以上描述仅为本请求的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术实施例,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术实施例。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术实施例。

Claims (10)

1.一种图形处理器管理方法,其特征在于,所述方法包括:
接收计算请求,所述计算请求包括:图形处理器的目标数量;
至少基于所述图形处理器的目标数量,从多个计算节点链表中查找出目标计算节点,其中,计算节点链表中的每一个计算节点的空闲的图形处理器的数量相同;
从目标计算节点的所有空闲的图形处理器中查找出所述图形处理器的目标数量个目标图形处理器。
2.根据权利要求1所述的方法,其特征在于,所述计算请求还包括:中央处理器需求数量、内存需求量;
所述至少基于所述图形处理器的目标数量,从多个计算节点链表中查找出目标计算节点包括:
基于所述图形处理器的目标数量和所述中央处理器需求数量以及所述内存需求量,从多个计算节点链表中查找出满足分配条件的目标计算节点,分配条件包括:空闲的中央处理器的数量大于或等于所述中央处理器需求数量并且空闲的内存量大于或等于内存需求量。
3.根据权利要求1所述的方法,其特征在于,所述至少基于所述图形处理器的目标数量,从多个计算节点链表中查找出目标计算节点包括:
判断优选计算节点链表中是否包括计算节点,其中,优选计算节点链表中的计算节点的空闲的图形处理器的数量与所述图形处理器的目标数量相等;
若是,从优选计算节点链表中选取出一个计算节点作为目标计算节点;
若否,从优选计算节点链表的上级计算节点链表中查找出作为目标计算节点的计算节点。
4.根据权利要求3所述的方法,其特征在于,目标计算节点为从优选计算节点链表的上级计算节点链表中查找出的计算节点;
所述从目标计算节点的所有空闲的图形处理器中查找出所述图形处理器的目标数量个目标图形处理器包括:
从目标计算节点的多个图形处理器链表中查找出图形处理器的目标数量个目标图形处理器,其中,图形处理器链表中的每一个图形处理器组的连接性能相同,图形处理器组包括多个空闲的图形处理器,图形处理器组的连接性能为通过图形处理器组中的图形处理器之间的连接方式传输数据的性能。
5.根据权利要求4所述的方法,其特征在于,所述从目标计算节点的多个图形处理器链表中查找出图形处理器的目标数量个目标图形处理器包括:
当图形处理器的目标数量为偶数时,按照连接性能由高至低的顺序访问多个图形处理器链表中的图形处理器链表并且从访问到的图形处理器链表中查找目标图形处理器,直至查找出图形处理器的目标数量个目标图形处理器;
当图形处理器的目标数量为奇数时,按照连接性能由低至高的顺序访问多个图形处理器链表中的图形处理器链表并且从访问到的图形处理器链表中查找目标图形处理器,直至查找出一个目标图形处理器,以及按照连接性能由高至低的顺序访问多个图形处理器链表中的图形处理器链表并且从访问到的图形处理器链表中查找目标图形处理器,直至查找出剩余的数量个目标图形处理器,所述剩余的数量为所述图形处理器的目标数量减1。
6.一种图形处理器管理装置,其特征在于,所述装置包括:
计算请求接收单元,被配置为接收计算请求,所述计算请求包括:目标图形处理器的目标数量;
目标计算节点查找单元,被配置为至少基于所述目标图形处理器的目标数量,从多个计算节点链表中查找出目标计算节点,其中,计算节点链表中的每一个计算节点的空闲的目标图形处理器的数量相同;
目标图形处理器查找单元,被配置为从目标计算节点的所有空闲的目标图形处理器中查找出所述目标图形处理器的目标数量个目标图形处理器。
7.根据权利要求6所述的装置,其特征在于,目标图形处理器查找单元进一步被配置为:当目标计算节点为从优选计算节点链表的上级计算节点链表中查找出的计算节点时,从目标计算节点的多个图形处理器链表中查找出图形处理器的目标数量个目标图形处理器,其中,图形处理器链表中的每一个图形处理器组的连接性能相同,图形处理器组包括多个空闲的图形处理器,图形处理器组的连接性能为通过图形处理器组中的图形处理器之间的连接方式传输数据的性能。
8.根据权利要求7所述的装置,其特征在于,目标图形处理器查找单元进一步被配置为:当图形处理器的目标数量为偶数时,按照连接性能由高至低的顺序访问多个图形处理器链表中的图形处理器链表并且从访问到的图形处理器链表中查找目标图形处理器,直至查找出图形处理器的目标数量个目标图形处理器;当图形处理器的目标数量为奇数时,按照连接性能由低至高的顺序访问多个图形处理器链表中的图形处理器链表并且从访问到的图形处理器链表中查找目标图形处理器,直至查找出一个目标图形处理器,以及按照连接性能由高至低的顺序访问多个图形处理器链表中的图形处理器链表并且从访问到的图形处理器链表中查找目标图形处理器,直至查找出剩余的数量个目标图形处理器,所述剩余的数量为所述图形处理器的目标数量减1。
9.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201910703720.7A 2019-07-31 2019-07-31 一种图形处理器管理方法、装置及服务器 Active CN110543362B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910703720.7A CN110543362B (zh) 2019-07-31 2019-07-31 一种图形处理器管理方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910703720.7A CN110543362B (zh) 2019-07-31 2019-07-31 一种图形处理器管理方法、装置及服务器

Publications (2)

Publication Number Publication Date
CN110543362A true CN110543362A (zh) 2019-12-06
CN110543362B CN110543362B (zh) 2022-10-21

Family

ID=68710052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910703720.7A Active CN110543362B (zh) 2019-07-31 2019-07-31 一种图形处理器管理方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN110543362B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022001086A1 (zh) * 2020-06-29 2022-01-06 苏州浪潮智能科技有限公司 一种高效的gpu资源分配优化方法和***

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140181806A1 (en) * 2012-12-20 2014-06-26 Vmware, Inc. Managing a data structure for allocating graphics processing unit resources to virtual machines
US20140282504A1 (en) * 2013-03-13 2014-09-18 Oracle America, Inc. Method and system for specifying the layout of computer system resources
CN107247629A (zh) * 2017-07-04 2017-10-13 北京百度网讯科技有限公司 云计算***及用于控制服务器的云计算方法和装置
US20180217868A1 (en) * 2017-01-31 2018-08-02 Samsung Electronics, Co. Ltd. Flexible in-order and out-of-order resource allocation
US20180253816A1 (en) * 2017-03-03 2018-09-06 International Business Machines Corporation Deep learning via dynamic root solvers
CN109033001A (zh) * 2018-07-17 2018-12-18 北京百度网讯科技有限公司 用于分配gpu的方法和装置
US10325343B1 (en) * 2017-08-04 2019-06-18 EMC IP Holding Company LLC Topology aware grouping and provisioning of GPU resources in GPU-as-a-Service platform
CN109933430A (zh) * 2019-03-08 2019-06-25 北京百度网讯科技有限公司 分配图形处理器的方法和装置
CN109947565A (zh) * 2019-03-08 2019-06-28 北京百度网讯科技有限公司 用于分配计算任务的方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140181806A1 (en) * 2012-12-20 2014-06-26 Vmware, Inc. Managing a data structure for allocating graphics processing unit resources to virtual machines
US20140282504A1 (en) * 2013-03-13 2014-09-18 Oracle America, Inc. Method and system for specifying the layout of computer system resources
US20180217868A1 (en) * 2017-01-31 2018-08-02 Samsung Electronics, Co. Ltd. Flexible in-order and out-of-order resource allocation
US20180253816A1 (en) * 2017-03-03 2018-09-06 International Business Machines Corporation Deep learning via dynamic root solvers
CN107247629A (zh) * 2017-07-04 2017-10-13 北京百度网讯科技有限公司 云计算***及用于控制服务器的云计算方法和装置
US10325343B1 (en) * 2017-08-04 2019-06-18 EMC IP Holding Company LLC Topology aware grouping and provisioning of GPU resources in GPU-as-a-Service platform
CN109033001A (zh) * 2018-07-17 2018-12-18 北京百度网讯科技有限公司 用于分配gpu的方法和装置
CN109933430A (zh) * 2019-03-08 2019-06-25 北京百度网讯科技有限公司 分配图形处理器的方法和装置
CN109947565A (zh) * 2019-03-08 2019-06-28 北京百度网讯科技有限公司 用于分配计算任务的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙震宇等: "大型高能物理计算集群资源管理方法的评测", 《计算机科学》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022001086A1 (zh) * 2020-06-29 2022-01-06 苏州浪潮智能科技有限公司 一种高效的gpu资源分配优化方法和***

Also Published As

Publication number Publication date
CN110543362B (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
US8984085B2 (en) Apparatus and method for controlling distributed memory cluster
US9092266B2 (en) Scalable scheduling for distributed data processing
US10394782B2 (en) Chord distributed hash table-based map-reduce system and method
CN114020470B (zh) 资源分配方法、装置、可读介质及电子设备
CN102446139B (zh) 一种数据存储方法及装置
CN111597148B (zh) 用于分布式文件***的分布式元数据管理方法
CN112905342B (zh) 资源调度方法、装置、设备及计算机可读存储介质
CN110673959A (zh) 用于处理任务的***、方法和装置
CN110543362B (zh) 一种图形处理器管理方法、装置及服务器
US11093291B2 (en) Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost
CN110309229A (zh) 分布式***的数据处理方法和分布式***
CN109783002B (zh) 数据读写方法、管理设备、客户端和存储***
CN113204421A (zh) 无服务器功能与存储池的同分布
CN116737370A (zh) 一种多资源调度方法、***、存储介质及终端
CN115878333A (zh) 进程组间的一致性判断方法、装置及设备
US10635336B1 (en) Cache-based partition allocation
CN115658295A (zh) 资源调度方法、装置、电子设备和存储介质
US20210149746A1 (en) Method, System, Computer Readable Medium, and Device for Scheduling Computational Operation Based on Graph Data
CN112099728B (zh) 一种执行写操作、读操作的方法及装置
CN109407970B (zh) 读写请求处理方法、装置及电子设备
CN115129709A (zh) 一种数据处理方法、服务端及***
CN104598390A (zh) 一种数据存储方法及装置
CN111800446A (zh) 调度处理方法、装置、设备和存储介质
CN117389747B (zh) 分布式数据库的数据共享方法、电子设备和存储介质
CN115174585B (zh) 基于Elasticsearch的报文生成方法及redis数据管理***、主控设备

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
GR01 Patent grant
GR01 Patent grant