CN109726008B - 资源分配方法及设备 - Google Patents

资源分配方法及设备 Download PDF

Info

Publication number
CN109726008B
CN109726008B CN201711050085.4A CN201711050085A CN109726008B CN 109726008 B CN109726008 B CN 109726008B CN 201711050085 A CN201711050085 A CN 201711050085A CN 109726008 B CN109726008 B CN 109726008B
Authority
CN
China
Prior art keywords
gpu card
gpu
card type
resource
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.)
Active
Application number
CN201711050085.4A
Other languages
English (en)
Other versions
CN109726008A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201711050085.4A priority Critical patent/CN109726008B/zh
Publication of CN109726008A publication Critical patent/CN109726008A/zh
Application granted granted Critical
Publication of CN109726008B publication Critical patent/CN109726008B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

本申请的目的是提供一种作业节点分配方法及设备,通过获取作业节点申请的资源量和GPU卡型号的偏好;根据各机器节点的剩余资源和GPU卡型号,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点,实现资源调度器能够根据作业管理器对GPU卡类型的偏好和当前集群内部的机器节点剩余资源,合理的选择最恰当的GPU卡型号的机器节点进行资源分配。

Description

资源分配方法及设备
技术领域
本申请涉及计算机领域,尤其涉及一种资源分配方法及设备。
背景技术
在分布式系统中,通常存在三个角色:资源调度器、作业管理器及下属作业节点、机器节点。
其中,技术术语“资源调度器”(英文全称为Resource Manager)一般是指分布式系统中协调、分配系统可用资源的服务器。
其中,技术术语“作业管理器”(英文全称为Job Master)一般是指分布式系统中控制本作业所有作业节点(Job Worker)的角色,负责代表所有作业节点向资源调度服务器申请作业资源,以及,向机器节点发送作业程序。一般地,分布式系统可以包括多个作业管理器。
其中,技术术语“机器节点”(英文全称为Machine Node)一般是指分布式系统中代表机器负责监管用户作业程序执行的角色。
其中,技术术语“作业节点”(英文全称为Job Worker)一般是指分布式系统中执行具体作业程序的角色,一般只与作业管理器通信。
当用户需要提交一个作业程序时,作业管理器会向资源调度器申请一定数量的机器资源(如CPU、内存)供作业节点使用;资源调度器在收到作业资源申请后,会根据分布式系统中剩余的可用资源计算出可以分配给作业管理器可用资源列表,资源列表中包括可用的机器节点及其对应的分配的可用资源量,例如在A机器上可用1核CPU、1GB内存,在B机器上可用2核CPU、2GB内存;然后,资源调度器会将资源列表发送给作业管理器和相应机器节点。作业管理器在收到资源(Resource)列表后,会将作业节点中的作业程序分配到相应的机器节点执行。当作业节点执行完毕时,作业管理器会告知资源管理器归还该作业节点的资源,资源管理器收到归还申请后通知机器节点释放掉该作业节点的资源,此释放资源可再次分配给其他作业。
目前随着大数据在各行各业的飞速发展,越来越多的机器学习程序被应用到分布式系统中。机器学习程序会涉及大量的卷积运算和矩阵运算的组合,而卷积运算通过一定的数学手段也可以通过矩阵运算完成。如果使用CPU进行计算,由于处理这些计算往往非常耗时,会占用了CPU的一大部分时间。而CPU还要处理计算机器许多其他任务,则会进一步降低程序的执行速度。GPU全称叫做graphics processing unit(图形处理器),是专门为了图像渲染设计的,渲染这个过程具体来说就是矩阵的运算,所以GPU天生就是为了运行矩阵运算而诞生的,它对矩阵运算有特殊的硬件优化,执行速度比CPU要快。此外,一般的GPU有几千个执行子核心,可以独立并发执行多个矩阵运算,而在CPU内程序执行是串行的。综合来看,在机器学习的程序中,使用GPU的执行速度要远远高于使用CPU。
而随着GPU硬件的快速发展,一个GPU集群中可能会存在不同型号的GPU卡型号,比如,在刚开始搭建集群的时候,采购的是同一批次的GPU卡型号;过了半年,GPU厂商推出了新的GPU卡型号,那么集群管理者可能会采购新的GPU机器添加到原有集群中,如图1所示,图1中的M40\K40\P40表示机器上GPU卡的型号,不同GPU卡型号型号之间的性能差异比较明显,相邻两代的GPU卡性能一般有2倍左右的差异。假设GPU卡速度M40<K40<P40。
在GPU卡型号混布的集群中,通常对调度有如下需求:
1、集群管理者希望将同一个作业管理器下面的作业节点分配到相同GPU卡型号的机器上,原因是通常使用GPU卡的作业节点间是需要互相通信的:由于GPU卡型号的性能差异,假设部分作业节点被分配到了性能好的GPU卡上,部分作业节点被分配到了性能较差的GPU卡上,那么就会形成“木桶短板”效应,好的GPU卡上的作业节点不得不等待慢的GPU卡上的作业节点,这样对好的GPU卡实际上是一种“浪费”。
2、作业管理器在向资源调度器申请资源时,并不会明确指定需要哪种GPU卡型号,因为作业管理器并不知道集群中哪种卡的GPU资源是可以满足的:考虑以下情况,假设作业管理器只要P40的机器资源,但是此时P40的机器资源被其他用户作业使用,那么这个用户作业只能在资源等待队列中排队。然而此时K40的机器恰好是能够满足用户作业的资源申请的,虽然K40的执行速度要慢于P40,但考虑到我们无法判断使用P40正在执行的用户作业什么时候能够跑完,所以理论上先使用K40去跑反而会比等待P40资源去跑会先执行完毕。
3、在作业程序执行完毕后,由于不同GPU卡收费价格不同的原因(通常速度越快越贵),作业程序必须从资源调度器处能够获得自己使用的GPU卡型号。
而业内已有方案是资源调度器不会识别不同的GPU卡,这就造成了如下问题:
如图2所示,黑色的机器节点是被分配作业节点的机器节点,作业节点可能会被资源调度器调度到不同型号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卡型号下的机器节点,
若否,按所述交集中的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卡型号的机器节点进行资源分配。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出现有的机器节点上的GPU卡型号的示意图;
图2示出现有的为作业节点分配机器节点的示意图;
图3示出本申请一实施例的机器节点在向资源调度器汇报GPU卡型号的示意图;
图4示出本申请一实施例的作业管理器为其所属的作业节点申请资源的示意图;
图5示出本申请一实施例的资源调度器将分配的GPU卡型号通知作业管理器的示意图;
图6示出本申请一实施例的资源调度器的管理结构图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他型号的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请提供一种资源分配方法,应用于资源调度器为作业节点分配机器节点过程中,所述方法包括:
获取作业节点申请的资源量和GPU卡型号的偏好;
根据各机器节点的剩余资源和GPU卡型号,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
本实施例能够实现资源调度器能够根据作业管理器对GPU卡类型的偏好和当前集群内部的机器节点剩余资源,合理的选择最恰当的GPU卡型号的机器节点进行资源分配。
本申请的资源调度器端为作业节点分配机器节点的方法一实施例中,包括:
步骤S12,获取作业管理器为其所属的作业节点申请的机器节点的资源量、GPU卡型号的偏好如GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;
在此,作业管理器对于GPU型号也不是完全没有需求,作业管理器会需要偏好(“prefer”语义):“尽量分配P40型号,P40型号的资源不足就分配K40型号,K40型号的资源不足就分配M40型号”,这需要资源调度器支持;
作业管理器在向资源调度器申请资源的时候,需要描述对于CPU\Memory\GPU的资源大小描述,比如,如图4所示,{CPU:100,Memory:1000,GPU:40}*5,表明用户作业一共有5个作业节点(SlotNum),每个作业节点需要的资源大小是{CPU:100,Memory:1000,GPU:40}。这里的GPU可以指任何一种GPU卡的型号,它描述的一种通用的资源描述:无论分配给某个作业节点的GPU卡是M40\K40\P40,该作业节点需要的GPU资源量都是450;
另外,如图4所示,作业管理器还需要有能力去描述对GPU型号的偏好(“prefer”语义),为此,可以在作业管理器和资源管理器交互的协议中引入2个新的结构:
PreferKey:GPU,PreferValueList:[P40,M40,K40],
其中,PreferKey:GPU表明需要对GPU资源进行prefer语义的处理,这个与资源调度器中保存的GPU集群内部所有存在的GPU卡型号(如GPU_TYPE_SET结构)对应,有了PreferKey,就可以在保存的GPU集群内部所有存在的GPU卡型号中找到所有潜在可能分配的GPU卡型号;
PreferValueList则描述了对于PreferKey,希望分配的GPU卡型号的候选集及优先级顺序,在上述例子中,PreferValueList的例子是优先分配P40型号、其次是M40型号、再其次是K40型号;
步骤S13,根据所述各机器节点对应的资源情况和GPU卡型号、所述申请的机器节点的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配对应GPU卡型号下的机器节点,并通知被分配的机器节点。
具体的,各机器节点对应的资源情况可以包括每个机器节点的总资源量(TotalResSlotNum)和/或当前剩余资源量(FreeResSlotNum),如图3所示,GPU集群中的各机器节点在向资源调度器汇报自己的资源情况的同时,可以将自己机器节点上的GPU卡型号一并向资源调度器汇报;
本实施例通过获取GPU集群中的各机器节点对应的资源情况和GPU卡型号,能够让资源调度器识别出每个机器节点的GPU卡的型号并加以管理;
通过获取作业管理器为其所属的作业节点申请的机器节点的GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,能够支持作业管理器在提交资源申请时对GPU卡型号描述偏好(“prefer”语义);
通过根据所述各机器节点对应的资源情况和GPU卡型号、所述申请的机器节点的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配对应GPU卡型号下的机器节点,并通知被分配的机器节点,实现资源调度器能够根据作业管理器对GPU卡类型的偏好(“prefer”语义)和当前集群内部的机器节点资源情况,合理的选择最恰当的GPU卡型号的机器节点进行资源分配。
本申请的资源调度器端为作业节点分配机器节点的方法一实施例中,步骤S12之前还可以包括:
步骤S11,获取GPU集群中的各机器节点对应的资源情况和GPU卡型号;
在此,获取GPU集群中的各机器节点对应的资源情况和GPU卡型号可以提前获取、周期性获取,或者每次分配时获取。
本申请的资源调度器端为作业节点分配机器节点的方法一实施例中,步骤S13中的为所述作业节点分配对应GPU卡型号下的机器节点之后,还包括:
步骤S14,向所述作业管理器通知所述为作业节点分配的对应GPU卡型号下的机器节点,实现资源管理器能够将分配的GPU卡型号告知作业管理器。
具体的,如图5所示,如果资源调度器成功找到了合适的GPU卡型号,则可以在资源调度器和作业管理器中添加一个结构,让资源调度器有能力将分配的GPU卡型号通知作业管理器,如:
preferValueResult:M40\K40\P40。
本申请的资源调度器端的作业节点分配方法一实施例中,步骤S11,获取GPU集群中的各机器节点对应的资源情况和GPU卡型号之后,还包括:
记录所述GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点;
在此,从资源调度器的角度看过去,不同GPU型号的机器节点都属于“拥有GPU卡”的机器节点,只是它们的GPU卡型号不同,故资源调度器的管理结构可以如图6所示:
在调度器内部,构造一个数据结构map<GPU,set<GPU_TYPE>>,称作GPU_TYPE_SET,GPU_TYPE_SET中保存着GPU集群内部所有存在的GPU卡型号,在上述例子中,GPU_TYPE_SET中存在3个元素:M40、K40、P40;
同时,再构造一个数据结构map<GPU_TYPE,vector<MACHINE>>,称作GPU_TYPE_2_MACHINE_MAP,保存着每一个GPU型号对应的所有机器列表;
通过GPU_TYPE_SET和GPU_TYPE_2_MACHINE_MAP,就能够将GPU型号和机器节点列表有机的管理起来,为后续的资源分配做好准备;
对应的,步骤S13,根据所述各机器节点对应的资源情况和GPU卡型号、所述申请的机器节点的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配对应GPU卡型号下的机器节点,包括:
根据所述各机器节点对应的资源情况和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的机器节点的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配对应GPU卡型号下的机器节点。
本申请的资源调度器端为作业节点分配机器节点的方法一实施例中,步骤S13,根据所述各机器节点对应的资源情况和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的机器节点的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配对应GPU卡型号下的机器节点,包括:
将所述记录的GPU集群中所有的GPU卡型号与所述申请的GPU卡型号的候选集进行交集处理,所述交集中的GPU卡型号的优先级顺序对应于所述候选集中各GPU卡型号的优先级顺序;
具体的,当资源调度器发现作业管理器的PreferKey是GPU时,可以首先根据GPU_TYPE_SET选出集群内部所有的GPU卡型号,然后和PreferValueList做一个交集,因为GPU_TYPE_SET中存在的GPU卡型号可能并不存在于PreferValueList中,另外,交集的结果也需要按照PreferValueList的顺序存储;
按所述交集中的GPU卡型号的优先级顺序遍历所述交集中的每一个GPU卡型号,直至遍历结束,或者直至当前遍历到的GPU卡型号下的所有机器节点的资源剩余总量大于等于申请的机器节点的资源量,则遍历提前结束,为所述作业节点分配当前遍历到的GPU卡型号下的机器节点后,分配结束。
具体的,得到交集之后,可以按交集中的GPU卡型号的优先级顺序遍历交集,对每个交集元素,可以都能够从GPU_TYPE_2_MACHINE_MAP中获得GPU卡型号对应的全部机器节点列表,资源调度器可以在这些机器节点列表中用每个的剩余资源量和总资源量分配算出总共能为用户作业分配多少份资源,记为FreeResSlotNum及TotalResSlotNum;
如果某个型号下的所有机器节点的所有FreeResSlotNum的总量大于等于作业管理器的作业节点需要的资源量,则交集遍历提前结束,将当前的GPU卡型号当做这个作业管理器的作业节执行的GPU卡型号后,分配结束。否则,则继续重复按交集中的GPU卡型号的优先级顺序遍历交集,直到交集遍历结束。
本申请的资源调度器端为作业节点分配机器节点的方法一实施例中,接上一实施例,所述遍历结束或遍历提前结束之后,还包括:
判断是否已经为所述作业节点分配当前遍历到的GPU卡型号下的机器节点,
若否,按所述交集中的GPU卡型号的优先级顺序,直至遍历结束,或直至遍历到所述交集中所有符合条件的GPU卡型号,则所述遍历提前结束,所述符合条件的GPU卡型号为该GPU卡型号下的所有机器节点的资源总量大于等于申请的机器节点的资源量,从所有符合条件的GPU卡型号中选择剩余资源总量最多的GPU卡型号,为所述作业节点分配所述选择的GPU卡型号下的机器节点。
具体的,上一实施例中,如果整个交集遍历结束,还没有为所述作业节点分配当前遍历到的GPU卡型号下的机器节点,则说明当前集群里所有的GPU型号下的机器节点对应的剩余资源量都无法立即满足作业管理器的作业节点的资源量,那么可以在所有所属机器节点的TotalResSlotNum的总量大于等于资源量的GPU卡型号里,将FreeResSlotNum的总量最多的对应的GPU卡型号当做这个作业管理器的作业节点执行的GPU卡型号,分配结束,因为,只要某一GPU卡型号下的所有所属机器节点的TotalResSlotNum的总量大于等于资源量,那总可以等到该GPU卡型号下的机器节点的释放资源后,该GPU卡型号下所有机器节点的所有FreeResSlotNum的总量大于等于作业管理器的作业节点需要的资源的时刻,而且,从所有符合条件的GPU卡型号中选择剩余资源总量最多的GPU卡型号,为所述作业节点分配所述选择的GPU卡型号下的机器节点,可以保证等待的时间会比较短。
本申请的资源调度器端为作业节点分配机器节点的方法一实施例中,接上一个实施例,所述遍历结束或遍历提前结束之后,还包括:
判断是否已经为所述作业节点分配所述选择的GPU卡型号下的机器节点,
若否,通知所述作业管理器所属的作业节点分配失败。
在此,如果每一个GPU卡型号下的所有机器节点的TotalResSlotNum的总量都小于资源量,那么表明作业管理器的作业节点无论如何都不会从当前集群里的任一GPU卡型号下的机器节点拿满资源,由于作业节点间需要数据交换,少了任何一个作业节点整个用户作业都无法正常运行,所以资源调度器会直接将作业置为执行失败,分配结束。
根据本申请的另一面,还提供资源分配方法,应用于机器节点为作业节点分配机器节点的过程中,该方法包括:
步骤S22,从资源调度器接收被分配的作业节点及所述作业节点申请的资源量,例如,可以从资源调度器接收被分配的作业节点的通知。
在此,各机器节点对应的资源情况可以包括每个机器节点的总资源量(TotalResSlotNum)和/或当前剩余资源量(FreeResSlotNum),如图3所示,GPU集群中的各机器节点在向资源调度器汇报自己的资源情况的同时,可以将自己机器节点上的GPU卡型号一并向资源调度器汇报;
本实施例实现资源调度器能够根据作业管理器对GPU卡类型的偏好(“prefer”语义)和当前集群内部的机器节点资源情况,合理的选择最恰当的GPU卡型号的机器节点进行资源分配。
本申请的机器节点为作业节点分配机器节点的方法一实施例中,步骤S22之前还包括:
步骤S21,GPU集群中的各机器节点向资源调度器发送其对应的资源情况和GPU卡型号。
在此,获取GPU集群中的各机器节点对应的资源情况和GPU卡型号可以提前发送、周期性发送,或者每次分配时发送。
根据本申请的另一面,还提供一种资源分配方法,应用于作业管理器为作业节点分配机器节点的过程中,该方法包括:
步骤S31,确定待分配资源的作业节点,为所述作业节点确定申请的资源量和GPU卡型号的偏好;
步骤S32,将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器,以便所述资源调度器为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
例如,可以为作业管理器所属的作业节点,向资源调度器申请的机器节点的资源量、GPU卡型号的偏好如GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序。
在此,作业管理器对于GPU型号也不是完全没有需求,作业管理器会需要偏好(“prefer”语义):“尽量分配P40型号,P40型号的资源不足就分配K40型号,K40型号的资源不足就分配M40型号”,这需要资源调度器支持;
作业管理器在向资源调度器申请资源的时候,需要描述对于CPU\Memory\GPU的资源大小描述,比如,如图4所示,{CPU:100,Memory:1000,GPU:40}*5,表明用户作业一共有5个作业节点(SlotNum),每个作业节点需要的资源大小是{CPU:100,Memory:1000,GPU:40}。这里的GPU可以指任何一种GPU卡的型号,它描述的一种通用的资源描述:无论分配给某个作业节点的GPU卡是M40\K40\P40,该作业节点需要的GPU资源量都是450;
另外,如图4所示,作业管理器还需要有能力去描述对GPU型号的偏好(“prefer”语义),为此,可以在作业管理器和资源管理器交互的协议中引入2个新的结构:
PreferKey:GPU,PreferValueList:[P40,M40,K40],
其中,PreferKey:GPU表明需要对GPU资源进行prefer语义的处理,这个与资源调度器中保存的GPU集群内部所有存在的GPU卡型号(如GPU_TYPE_SET结构)对应,有了PreferKey,就可以在保存的GPU集群内部所有存在的GPU卡型号中找到所有潜在可能分配的GPU卡型号;
PreferValueList则描述了对于PreferKey,希望分配的GPU卡型号的候选集及优先级顺序,在上述例子中,PreferValueList的例子是优先分配P40型号、其次是M40型号、再其次是K40型号;
在此,本实施例通过获取作业管理器为其所属的作业节点申请的机器节点的GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,能够支持作业管理器在提交资源申请时对GPU卡型号描述偏好(“prefer”语义)。
本申请的作业管理器为作业节点分配机器节点的方法一实施例中,步骤S32,将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器之后,还包括:
从资源调度器接收为所述作业节点分配的满足所述申请的资源量和GPU卡型号偏好的机器节点,例如从所述资源调度器接收所述为作业节点分配的对应GPU卡型号下的机器节点的通知。
具体的,如图5所示,如果资源调度器成功找到了合适的GPU卡型号,则可以在资源调度器和作业管理器中添加一个结构,让资源调度器有能力将分配的GPU卡型号通知作业管理器,如:
preferValueResult:M40\K40\P40。
根据本申请的另一面,还提供一种资源调度器,该资源调度器包括:
机器节点信息获取装置,用于获取GPU集群中的各机器节点对应的资源情况和GPU卡型号;
在此,各机器节点对应的资源情况可以包括每个机器节点的总资源量(TotalResSlotNum)和/或当前剩余资源量(FreeResSlotNum),如图3所示,GPU集群中的各机器节点在向资源调度器汇报自己的资源情况的同时,可以将自己机器节点上的GPU卡型号一并向资源调度器汇报;
作业管理器信息获取装置,用于获取作业节点申请的资源量和GPU卡型号的偏好,例如,用于获取作业管理器为其所属的作业节点申请的机器节点的资源量、GPU卡型号的偏好如GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;
在此,作业管理器对于GPU型号也不是完全没有需求,作业管理器会需要偏好(“prefer”语义):“尽量分配P40型号,P40型号的资源不足就分配K40型号,K40型号的资源不足就分配M40型号”,这需要资源调度器支持;
作业管理器在向资源调度器申请资源的时候,需要描述对于CPU\Memory\GPU的资源大小描述,比如,如图4所示,{CPU:100,Memory:1000,GPU:40}*5,表明用户作业一共有5个作业节点(SlotNum),每个作业节点需要的资源大小是{CPU:100,Memory:1000,GPU:40}。这里的GPU可以指任何一种GPU卡的型号,它描述的一种通用的资源描述:无论分配给某个作业节点的GPU卡是M40\K40\P40,该作业节点需要的GPU资源量都是450;
另外,如图4所示,作业管理器还需要有能力去描述对GPU型号的偏好(“prefer”语义),为此,可以在作业管理器和资源管理器交互的协议中引入2个新的结构:
PreferKey:GPU,PreferValueList:[P40,M40,K40],
其中,PreferKey:GPU表明需要对GPU资源进行prefer语义的处理,这个与资源调度器中保存的GPU集群内部所有存在的GPU卡型号(如GPU_TYPE_SET结构)对应,有了PreferKey,就可以在保存的GPU集群内部所有存在的GPU卡型号中找到所有潜在可能分配的GPU卡型号;
PreferValueList则描述了对于PreferKey,希望分配的GPU卡型号的候选集及优先级顺序,在上述例子中,PreferValueList的例子是优先分配P40型号、其次是M40型号、再其次是K40型号;
分配装置,用于根据各机器节点的剩余资源和GPU卡型号,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点,例如,用于根据所述各机器节点对应的资源情况和GPU卡型号、所述申请的机器节点的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配对应GPU卡型号下的机器节点,并通知被分配的机器节点。
具体的,本实施例通过获取GPU集群中的各机器节点对应的资源情况和GPU卡型号,能够让资源调度器识别出每个机器节点的GPU卡的型号并加以管理;
通过获取作业管理器为其所属的作业节点申请的机器节点的GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,能够支持作业管理器在提交资源申请时对GPU卡型号描述偏好(“prefer”语义);
通过根据所述各机器节点对应的资源情况和GPU卡型号、所述申请的机器节点的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配对应GPU卡型号下的机器节点,并通知被分配的机器节点,实现资源调度器能够根据作业管理器对GPU卡类型的偏好(“prefer”语义)和当前集群内部的机器节点资源情况,合理的选择最恰当的GPU卡型号的机器节点进行资源分配。
根据本申请的另一面还提供一种机器节点,该机器节点包括:
信息发送装置,用于从资源调度器接收被分配的作业节点及所述作业节点申请的资源量,例如,在这之前,还可以用于向资源调度器发送本机器节点对应的资源情况和GPU卡型号;
在此,各机器节点对应的资源情况可以包括每个机器节点的总资源量(TotalResSlotNum)和/或当前剩余资源量(FreeResSlotNum),如图3所示,GPU集群中的各机器节点在向资源调度器汇报自己的资源情况的同时,可以将自己机器节点上的GPU卡型号一并向资源调度器汇报;
信息接收装置,用于从资源调度器接收被分配的作业节点的通知。
在此,本实施例实现资源调度器能够根据作业管理器对GPU卡类型的偏好(“prefer”语义)和当前集群内部的机器节点资源情况,合理的选择最恰当的GPU卡型号的机器节点进行资源分配。
根据本申请的另一面还提供一种作业管理器,该作业管理器包括:
信息发送装置,用于确定待分配资源的作业节点,为所述作业节点确定申请的资源量和GPU卡型号的偏好,将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器,以便所述资源调度器为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点,例如,用于为作业管理器所属的作业节点,向资源调度器申请的机器节点的资源量、GPU卡型号的偏好如GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序。
在此,作业管理器对于GPU型号也不是完全没有需求,作业管理器会需要偏好(“prefer”语义):“尽量分配P40型号,P40型号的资源不足就分配K40型号,K40型号的资源不足就分配M40型号”,这需要资源调度器支持;
作业管理器在向资源调度器申请资源的时候,需要描述对于CPU\Memory\GPU的资源大小描述,比如,如图4所示,{CPU:100,Memory:1000,GPU:40}*5,表明用户作业一共有5个作业节点(SlotNum),每个作业节点需要的资源大小是{CPU:100,Memory:1000,GPU:40}。这里的GPU可以指任何一种GPU卡的型号,它描述的一种通用的资源描述:无论分配给某个作业节点的GPU卡是M40\K40\P40,该作业节点需要的GPU资源量都是450;
另外,如图4所示,作业管理器还需要有能力去描述对GPU型号的偏好(“prefer”语义),为此,可以在作业管理器和资源管理器交互的协议中引入2个新的结构:
PreferKey:GPU,PreferValueList:[P40,M40,K40],
其中,PreferKey:GPU表明需要对GPU资源进行prefer语义的处理,这个与资源调度器中保存的GPU集群内部所有存在的GPU卡型号(如GPU_TYPE_SET结构)对应,有了PreferKey,就可以在保存的GPU集群内部所有存在的GPU卡型号中找到所有潜在可能分配的GPU卡型号;
PreferValueList则描述了对于PreferKey,希望分配的GPU卡型号的候选集及优先级顺序,在上述例子中,PreferValueList的例子是优先分配P40型号、其次是M40型号、再其次是K40型号;
在此,本实施例通过获取作业管理器为其所属的作业节点申请的机器节点的GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,能够支持作业管理器在提交资源申请时对GPU卡型号描述偏好(“prefer”语义)。
本申请的作业管理器一实施例中,还包括信息接收装置,用于从所述资源调度器接收所述为作业节点分配的对应GPU卡型号下的机器节点的通知。
具体的,如图5所示,如果资源调度器成功找到了合适的GPU卡型号,则可以在资源调度器和作业管理器中添加一个结构,让资源调度器有能力将分配的GPU卡型号通知作业管理器,如:
preferValueResult:M40\K40\P40。
根据本申请的另一面,还提供一种基于计算的设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取作业节点申请的资源量和GPU卡型号的偏好;
根据各机器节点的剩余资源和GPU卡型号,为所述作业节点分配满足所述
申请的资源量和GPU卡型号偏好的机器节点。
根据本申请的另一面,还提供一种基于计算的设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
确定待分配资源的作业节点;
为所述作业节点确定申请的资源量和GPU卡型号的偏好;
将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器,以便所述资源调度器为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,该计算机可执行指令被处理器执行时使得该处理器:
获取作业节点申请的资源量和GPU卡型号的偏好;
根据各机器节点的剩余资源和GPU卡型号,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
确定待分配资源的作业节点;
为所述作业节点确定申请的资源量和GPU卡型号的偏好;
将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器,以便所述资源调度器为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
本申请的资源调度器、作业管理器、机器节点及其设备、计算机可读存储介质的各实施例的详细内容具体可参见方法实施例的对应部分,在此不再赘述。
综上所述,本申请通过获取作业节点申请的资源量和GPU卡型号的偏好;根据各机器节点的剩余资源和GPU卡型号,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点,实现资源调度器能够根据作业管理器对GPU卡类型的偏好和当前集群内部的机器节点资源情况,合理的选择最恰当的GPU卡型号的机器节点进行资源分配。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (13)

1.一种资源分配方法,应用于资源调度器为作业节点分配机器节点过程中,其中,所述方法包括:
获取作业节点申请的资源量和GPU卡型号的偏好,所述GPU卡型号的偏好包括GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;
获取各机器节点的剩余资源和GPU卡型号;
记录所有的GPU卡型号和每个GPU卡型号下的所有机器节点;
根据所述各机器节点对应的剩余资源和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
2.根据权利要求1所述的方法,其中,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点之后,还包括:
向作业管理器通知为所述作业节点分配的满足所述申请的资源量和GPU卡型号偏好的机器节点。
3.根据权利要求1所述的方法,其中,根据所述各机器节点对应的剩余资源和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点,包括:
将所述记录的所有的GPU卡型号与所述申请的GPU卡型号的候选集进行交集处理,所述交集中的GPU卡型号的优先级顺序对应于所述候选集中各GPU卡型号的优先级顺序;
按所述交集中的GPU卡型号的优先级顺序遍历所述交集中的每一个GPU卡型号,直至遍历结束,或者直至当前遍历到的GPU卡型号下的所有机器节点的资源剩余总量大于等于申请的机器节点的资源量,则遍历提前结束,为所述作业节点分配当前遍历到的GPU卡型号下的机器节点。
4.根据权利要求3所述的方法,其中,所述遍历结束或遍历提前结束之后,还包括:
判断是否已经为所述作业节点分配当前遍历到的GPU卡型号下的机器节点,
若否,按所述交集中的GPU卡型号的优先级顺序遍历所述交集中的每一个GPU卡型号,直至遍历结束,或者直至遍历到所述交集中所有符合条件的GPU卡型号,则所述遍历提前结束,所述符合条件的GPU卡型号为该GPU卡型号下的所有机器节点的资源总量大于等于申请的机器节点的资源量,从所有符合条件的GPU卡型号中选择剩余资源总量最多的GPU卡型号,为所述作业节点分配所述选择的GPU卡型号下的机器节点。
5.根据权利要求4所述的方法,其中,所述遍历结束或遍历提前结束之后,还包括:
判断是否已经为所述作业节点分配所述选择的GPU卡型号下的机器节点,
若否,通知所述管理器所属的作业节点分配失败。
6.一种资源分配方法,应用于作业管理器为作业节点分配机器节点的过程中,其中,该方法包括:
确定待分配资源的作业节点;
为所述作业节点确定申请的资源量和GPU卡型号的偏好,所述GPU卡型号的偏好包括GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;
将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器,以便所述资源调度器在获取各机器节点的剩余资源和GPU卡型号,并记录所有的GPU卡型号和每个GPU卡型号下的所有机器节点后,根据所述各机器节点对应的剩余资源和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
7.根据权利要求6所述的方法,其中,将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器之后,还包括:
从资源调度器接收为所述作业节点分配的满足所述申请的资源量和GPU卡型号偏好的机器节点。
8.一种资源调度器,其中,该资源调度器包括:
作业管理器信息获取装置,用于获取作业节点申请的资源量和GPU卡型号的偏好,所述GPU卡型号的偏好包括GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;获取各机器节点的剩余资源和GPU卡型号;记录所有的GPU卡型号和每个GPU卡型号下的所有机器节点;
分配装置,用于根据所述各机器节点对应的剩余资源和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
9.一种作业管理器,其中,该作业管理器包括:
信息发送装置,用于确定待分配资源的作业节点,为所述作业节点确定申请的资源量和GPU卡型号的偏好,所述GPU卡型号的偏好包括GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器,以便所述资源调度器在获取各机器节点的剩余资源和GPU卡型号,并记录所有的GPU卡型号和每个GPU卡型号下的所有机器节点后,根据所述各机器节点对应的剩余资源和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
10.一种基于计算的设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取作业节点申请的资源量和GPU卡型号的偏好,所述GPU卡型号的偏好包括GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;
获取各机器节点的剩余资源和GPU卡型号;
记录所有的GPU卡型号和每个GPU卡型号下的所有机器节点;根据所述各机器节点对应的剩余资源和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
11.一种基于计算的设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
确定待分配资源的作业节点;
为所述作业节点确定申请的资源量和GPU卡型号的偏好,所述GPU卡型号的偏好包括GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;
将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器,以便所述资源调度器在获取各机器节点的剩余资源和GPU卡型号,并记录所有的GPU卡型号和每个GPU卡型号下的所有机器节点后,根据所述各机器节点对应的剩余资源和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
12.一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
获取作业节点申请的资源量和GPU卡型号的偏好,所述GPU卡型号的偏好包括GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;
获取各机器节点的剩余资源和GPU卡型号;
记录所有的GPU卡型号和每个GPU卡型号下的所有机器节点;根据所述各机器节点对应的剩余资源和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
13.一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
确定待分配资源的作业节点;
为所述作业节点确定申请的资源量和GPU卡型号的偏好,所述GPU卡型号的偏好包括GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序;
将所述为所述作业节点确定申请的资源量和GPU卡型号的偏好发送至资源调度器,以便所述资源调度器在获取各机器节点的剩余资源和GPU卡型号,并记录所有的GPU卡型号和每个GPU卡型号下的所有机器节点后,根据所述各机器节点对应的剩余资源和所述记录的GPU集群中所有的GPU卡型号和每个GPU卡型号下的所有机器节点、所述申请的资源量、GPU卡型号的候选集及所述候选集中各GPU卡型号的优先级顺序,为所述作业节点分配满足所述申请的资源量和GPU卡型号偏好的机器节点。
CN201711050085.4A 2017-10-31 2017-10-31 资源分配方法及设备 Active CN109726008B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711050085.4A CN109726008B (zh) 2017-10-31 2017-10-31 资源分配方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711050085.4A CN109726008B (zh) 2017-10-31 2017-10-31 资源分配方法及设备

Publications (2)

Publication Number Publication Date
CN109726008A CN109726008A (zh) 2019-05-07
CN109726008B true CN109726008B (zh) 2022-12-09

Family

ID=66293709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711050085.4A Active CN109726008B (zh) 2017-10-31 2017-10-31 资源分配方法及设备

Country Status (1)

Country Link
CN (1) CN109726008B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110620818B (zh) * 2019-09-18 2022-04-05 东软集团股份有限公司 一种实现节点分配的方法、装置及相关设备
CN111078356A (zh) * 2019-11-22 2020-04-28 北京达佳互联信息技术有限公司 Gpu集群资源控制系统、方法、装置、设备及存储介质
CN111104217B (zh) * 2019-11-27 2021-06-25 江苏艾佳家居用品有限公司 基于语义分析的渲染农场智能流量调度方法和系统
CN112035234B (zh) * 2020-09-02 2023-08-22 中国银行股份有限公司 分布式批量作业分配方法及装置
CN112988383A (zh) * 2021-03-12 2021-06-18 中国平安人寿保险股份有限公司 一种资源分配方法、装置、设备以及存储介质
CN113742064B (zh) * 2021-08-06 2023-08-04 苏州浪潮智能科技有限公司 一种服务器集群的资源整理方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247349A (zh) * 2008-03-13 2008-08-20 华耀环宇科技(北京)有限公司 一种网络流量快速分配方法
CN103299277A (zh) * 2011-12-31 2013-09-11 华为技术有限公司 Gpu系统及其处理方法
WO2014100558A1 (en) * 2012-12-20 2014-06-26 Vmware, Inc. Dynamic allocation of physical graphics processing units to virtual machines
CN106959891A (zh) * 2017-03-30 2017-07-18 山东超越数控电子有限公司 一种实现gpu调度的集群管理方法和系统
CN107135257A (zh) * 2017-04-28 2017-09-05 东方网力科技股份有限公司 一种节点集群中任务分配的方法、节点和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101885211B1 (ko) * 2012-01-27 2018-08-29 삼성전자 주식회사 Gpu의 자원 할당을 위한 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247349A (zh) * 2008-03-13 2008-08-20 华耀环宇科技(北京)有限公司 一种网络流量快速分配方法
CN103299277A (zh) * 2011-12-31 2013-09-11 华为技术有限公司 Gpu系统及其处理方法
WO2014100558A1 (en) * 2012-12-20 2014-06-26 Vmware, Inc. Dynamic allocation of physical graphics processing units to virtual machines
CN106959891A (zh) * 2017-03-30 2017-07-18 山东超越数控电子有限公司 一种实现gpu调度的集群管理方法和系统
CN107135257A (zh) * 2017-04-28 2017-09-05 东方网力科技股份有限公司 一种节点集群中任务分配的方法、节点和系统

Also Published As

Publication number Publication date
CN109726008A (zh) 2019-05-07

Similar Documents

Publication Publication Date Title
CN109726008B (zh) 资源分配方法及设备
US11036553B2 (en) Preempting or traversing allocated resource applications based on job priority and resource demand information
CN109684065B (zh) 一种资源调度方法、装置及系统
CN109144710B (zh) 资源调度方法、装置及计算机可读存储介质
CA3000422C (en) Workflow service using state transfer
US9069465B2 (en) Computer system, management method of computer resource and program
US8239505B2 (en) Progressively implementing declarative models in distributed systems
US8185907B2 (en) Method and system for assigning logical partitions to multiple shared processor pools
US9875139B2 (en) Graphics processing unit controller, host system, and methods
US20180246765A1 (en) System and method for scheduling jobs in distributed datacenters
US20110107341A1 (en) Job scheduling with optimization of power consumption
US10860385B2 (en) Method and system for allocating and migrating workloads across an information technology environment based on persistent memory availability
CN107168777B (zh) 分布式系统中资源的调度方法以及装置
TW201301029A (zh) 具有增強型應用程式元資料之記憶體管理器
CN111694658A (zh) Cpu资源分配方法、装置、电子设备和存储介质
CN113608834A (zh) 一种基于超融合的资源调度方法、装置、设备及可读介质
US20220129294A1 (en) Virtualization platform and virtualization platform scaling management method
CN115292014A (zh) 图像渲染方法、装置和服务器
WO2018235739A1 (ja) 情報処理システムおよびリソース割り当て方法
CN104518897A (zh) 虚拟防火墙的资源管理优化处理方法和装置
CN114721824A (zh) 一种资源分配方法、介质以及电子设备
CN113590320A (zh) 分布式批量任务调度的资源处理方法、装置、设备及介质
CN111600771B (zh) 网络资源探测系统、方法
CN113419839A (zh) 多类型作业的资源调度方法、装置、电子设备及存储介质
US20150212859A1 (en) Graphics processing unit controller, host system, and methods

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