CN110162397B - 资源分配方法、装置及系统 - Google Patents

资源分配方法、装置及系统 Download PDF

Info

Publication number
CN110162397B
CN110162397B CN201810525561.1A CN201810525561A CN110162397B CN 110162397 B CN110162397 B CN 110162397B CN 201810525561 A CN201810525561 A CN 201810525561A CN 110162397 B CN110162397 B CN 110162397B
Authority
CN
China
Prior art keywords
resource
gpu processing
gpu
target
electronic device
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
CN201810525561.1A
Other languages
English (en)
Other versions
CN110162397A (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing 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 Tencent Technology Shenzhen Co Ltd, Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810525561.1A priority Critical patent/CN110162397B/zh
Publication of CN110162397A publication Critical patent/CN110162397A/zh
Application granted granted Critical
Publication of CN110162397B publication Critical patent/CN110162397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种资源分配方法、装置及系统,属于网络技术领域。所述方法包括:接收到第二电子设备的资源分配请求;将使用状态为未分配状态的目标图形处理器GPU处理资源分配给所述第二电子设备,将所述目标GPU处理资源的使用状态更新为已分配状态;接收所述第二电子设备发送的GPU空闲通知,所述GPU空闲通知用于表示所述第二电子设备基于所述目标GPU处理资源进行的任务已完成;将所述目标GPU处理资源的使用状态更新为未分配状态。采用本发明,可以提高GPU的利用率。

Description

资源分配方法、装置及系统
技术领域
本发明涉及网络技术领域,特别涉及一种资源分配方法、装置及系统。
背景技术
GPU(Graphic Processing Unit,图形处理器)可以用于执行复杂的数学和几何计算,常用于图像处理、机器学习算法训练等。
GPU的价格一般比较昂贵,一个公司或研究机构不能够为每台计算机设备都安装有GPU,因此,可以将GPU虚拟化,以满足多个设备的使用需求。在一个虚拟机系统中,安装有GPU的电子设备可以设置为host(主机),其它电子设备可以设置为guest(客户机)。第一电子设备可以通过设备直通的方式,将该电子设备上所安装的GPU分配给guest使用。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
guest分配到GPU后,将一直独占GPU来处理任务,该GPU不会再被分配给其它guest,使得其它guest不能使用该GPU。占用GPU的guest的任务结束后,GPU会一直处于空闲状态,导致GPU的利用率较低,经统计,GPU的利用率大概只有20%-30%。
发明内容
本发明实施例提供了一种资源分配方法、装置及系统,能够解决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是本发明实施例提供的一种实施环境图;
图2是本发明实施例提供的一种资源分配方法流程图;
图3是本发明实施例提供的一种资源分配场景示意图;
图4是本发明实施例提供的一种资源再分配流程示意图;
图5是本发明实施例提供的一种资源分配方法流程图;
图6是本发明实施例提供的一种确定目标GPU处理资源的流程图;
图7是本发明实施例提供的一种资源分配装置示意图;
图8是本发明实施例提供的一种资源分配装置示意图;
图9是本发明实施例提供的一种第一电子设备的结构示意图;
图10是本发明实施例提供的一种第二电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种资源分配方法,该方法可以由至少一个第一电子设备和至少一个第二电子设备共同实现,其中,第一电子设备可以是虚拟机系统中的host,第二电子设备可以是虚拟机系统中的guest。第一电子设备可以安装有一个或多个GPU,用于提供GPU处理资源。
图1是本发明实施例提供的一种实施环境图。该实施环境可以包括多个第二电子设备101、用于为该多个第二电子设备101提供服务的第一电子设备102。多个第二电子设备101通过无线或者有线网络和第一电子设备102连接,该多个第二电子设备101可以为能够访问第一电子设备102的计算机设备。该第一电子设备102可以将使用状态为未分配状态的目标GPU处理资源分配给第二电子设备101。对于第一电子设备102来说,该第一电子设备102还可以具有至少一种数据库,用以存储GPU处理资源的使用状态等等。在本发明实施例中,第二电子设备101可以作为需求的提出方,通过向第一电子设备102的发送资源分配请求的方式,请求第一电子设备102对GPU处理资源进行分配。
本发明实施例以KVM(Kernel-based Virtual Machine,内核虚拟机)为例,第一电子设备和第二电子设备可以具有内核层和用户层,其中,用户层上可以运行有QEMU(一种纯软件实现的虚拟化模拟器),可以用于虚拟机应用程序的运行,例如,在第一电子设备上运行GPU管理程序,在第二电子设备上运行GPU应用程序;内核层上可以运行有KVM内核模块,可以为QEMU提供接口以便调用物理内核。
结合图2所示的资源分配方法流程图和图3所示的资源分配场景示意图,该方法的处理流程可以包括如下的步骤:
201、第二电子设备向第一电子设备发送资源分配请求,该资源分配请求携带有目标资源大小。
在一种可能的实施方式中,用户可以在第二电子设备上进行操作,使得第二电子设备需要基于GPU处理资源完成一些任务的处理,第二电子设备可以根据任务所需的资源大小,向第一电子设备发送资源分配请求。其中,第二电子设备可以根据被触发的任务类型,获取该任务类型对应的资源大小,并将该资源大小携带在资源分配请求中发送。另一种可能的实施方式中,资源分配请求中也可以不携带有第二电子设备所需的资源大小,此时,第一电子设备可以是将预设资源大小进行分配,对任一个资源分配请求均分配相同大小的GPU资源。
需要说明的是,在虚拟机系统中可以包括多个第一电子设备,该多个第一电子设备可以用于提供GPU处理资源,因此,当第二电子设备有GPU处理资源的需求时,还可以从多个第一电子设备中选择一个第一电子设备或者向预先设置的第一电子设备作为本次资源请求的对象,本发明实施例对具体采用哪种方式来确定第一电子设备不做限定。例如,第二电子设备可以选择一个当前处理量最少的第一电子设备,作为本次资源请求的对象。
当用户在第二电子设备上触发任一任务时,第二电子设备可以判断是否需要向第一电子设备发送资源分配请求,具体可以分为以下2种情况:
情况一,判断第二电子设备是否已分配有GPU处理资源。
如果第二设备已经分配有GPU处理资源,说明本次资源请求之前,第一电子设备已经将GPU处理资源分配给该第二电子设备,则表明第二电子设备具有已分配的GPU处理资源的使用权限,可以基于该GPU处理资源对任务进行处理,不需要向第一电子设备发送资源分配请求。如果未分配,则第二电子设备需要向第一电子设备发送资源分配请求。
情况二,判断第二电子设备是否已分配有GPU处理资源,且已分配的GPU处理资源大小是否满足任务处理需求。
对于一些计算量较大的任务来说,其所需的GPU处理资源较多,则需要根据实际的任务处理需求来确定已有资源是否满足,不同任务所需GPU处理资源大小可以不同。例如,机器学习算法训练任务的计算量较大,相比于其它任务,在相同时间开销的情况下可能需要更多的GPU处理资源,技术人员可以对机器学习算法训练任务所需的GPU处理资源大小进行设置。因此,如果判断出已分配有GPU处理资源,则可以继续确定已分配的GPU处理资源大小,判断该GPU处理资源大小是否满足机器学习算法训练任务的需求。如果满足,则不需要向第一电子设备发送资源分配请求;如果不满足,则可以向第一电子设备发送资源分配请求。
可选的,为了进一步提高GPU的利用率,第二电子设备在向第一电子设备发送资源分配请求之前,还可以确定仍需分配的GPU处理资源大小。例如,第二电子设备可以将任务所需的GPU处理资源大小与已分配的GPU处理资源大小相减,将得到的差值作为目标资源大小,携带在资源分配请求中发送。
示例性的,如图3所示的资源分配场景示意图,在基于KVM的虚拟机系统的架构中,第二电子设备进行步骤201的相应处理可以是,通过用户层中的GPU应用程序执行机器学习算法训练、判断是否需要资源分配等任务进程,还可以通过内核层的KVM内核模块对任务进程进行管理以及与第一电子设备进行交互,例如,KVM内核模块在向第一电子设备发送资源分配请求时,可以挂起机器学习算法训练的任务进程,当接收到第一电子设备分配的GPU处理资源时,恢复执行机器学习算法训练的任务进程。
202、当第一电子设备接收到第二电子设备的资源分配请求时,如果使用状态为未分配状态的GPU处理资源大小大于或等于目标资源大小,则第一电子设备可以在使用状态为未分配状态的GPU处理资源中,将目标资源大小的GPU处理资源确定为目标GPU处理资源,分配给第二电子设备。
在一种可能的实施方式中,第一电子设备上存储有其管理的所有GPU处理资源的使用状态,该使用状态可以主要分为两种:未分配状态和已分配状态。初始状态下,GPU处理资源没有执行任何处理,此时,其使用状态可以是未分配状态,当第一电子设备接收到第二电子设备的资源分配请求时,由于第二电子设备具有任务处理需求时才发送资源分配请求,则第一电子设备将该GPU处理资源分配给第二电子设备后,就可以将其使用状态从未分配状态更新为已分配状态。直到第一电子设备回收该GPU处理资源,该GPU处理资源此时不会被任何第二电子设备使用,则第一电子设备可以将其使用状态从已分配状态更新为未分配状态。
当第一电子设备接收到第二电子设备发送的资源分配请求时,根据所有GPU处理资源的使用状态,查询使用状态为未分配状态的GPU处理资源,并确定相应的资源大小。进而,第一电子设备可以判断未分配的GPU处理资源大小是否大于或等于目标资源大小,如果是,则表明未分配的目标资源满足第二电子设备的需求。第一电子设备可以根据预设规则选取分配给第二电子设备使用的目标GPU处理资源,并将该目标GPU处理资源分配给第二电子设备。例如,上述根据预设规则选取可以是随机选取,第一电子设备分配目标GPU处理资源的具体处理可以是向第二电设备发送分配消息,该分配消息可以是目标GPU处理资源对应的访问地址,以便第二电子设备通过该访问地址调用目标GPU处理资源进行任务处理。
另一种可能的实施方式中,资源分配请求中也可以不携带有第二电子设备所需的目标资源大小,则第一电子设备可以根据预设资源大小,选取使用状态为未分配状态的目标GPU处理资源,然后将目标GPU处理资源分配给第二电子设备。与上述实施方式相比,第一电子设备不需要对分配的目标GPU处理资源大小进行确定,可以简化第一电子设备的处理流程,提高资源分配的效率。
步骤202是对第一电子设备可以分配GPU处理资源的情况进行的介绍,此外还存在第一电子设备无法分配GPU处理资源的情况,例如,第一电子设备中没有使用状态为未分配状态的GPU处理资源,或,第一电子设备中可分配的GPU处理资源大小不满足第二电子设备的需求。此时,第一电子设备可以向第二电子设备反馈分配失败通知,例如,第二电子设备接收到分配失败通知后,可以在屏幕上显示“当前GPU繁忙,请稍后再试”。或者,第一电子设备还可以通知第二电子设备向其它第一电子设备发送资源分配请求,或直接将第二电子设备转发给其它第一电子设备,以便其它第一电子设备将GPU处理资源分配给第二电子设备。对于第一电子设备具体采用何种处理方式,此处不作限定。
示例性的,如图3所示的资源分配场景示意图,在基于KVM的虚拟机系统的架构中,第一电子设备进行步骤202的相应处理可以是,通过用户层的GPU管理程序分配GPU处理资源,以及通过QEMU对GPU处理资源的使用状态进行更新,还可以通过内核层的KVM内核模块与第二电子设备进行交互。
203、第二电子设备基于第一电子设备分配的目标GPU处理资源进行任务处理。
由于GPU的物理硬件可以是安装在第一电子设备,则第二电子设备需要通过访问的方式,调用GPU处理资源进行任务处理。第一电子设备将目标GPU处理资源分配给第二电子设备时,发送的分配消息可以有多种形式,例如,分配消息可以是目标GPU处理资源的访问地址或目标GPU处理资源的标识,下面对这两种形式进行介绍:
对于第一种形式,第二电子设备可以根据目标GPU处理资源的访问地址,将任务的指令、处理数据等发送给目标GPU处理资源,以便目标GPU处理资源通过运行任务的指令对处理数据进行处理,处理完成后向第二电子设备反馈处理结果。例如,对于机器学习算法训练任务,第二电子设备可以将任务的指令、机器学习模型和训练样本数据发送给目标GPU处理资源,目标GPU处理资源可以向第二电子设备反馈训练后的机器学习模型。
对于第二种形式,第二电子设备可以是将目标GPU处理资源的标识、任务的指令、处理数据等发送给第一电子设备,然后第一电子设备可以通过目标GPU处理资源的标识,调用相应的目标GPU处理资源进行处理,后续过程与第一种形式相类似,此处不再赘述。
示例性的,如图3所示的资源分配场景示意图,在基于KVM的虚拟机系统的架构中,第二电子设备进行步骤203的相应处理可以是,第二电子设备接收到第一电子设备的分配消息时,内核层可以获知GPU就绪,恢复用户层的任务进程。
204、当任务处理完成时,第二电子设备向第一电子设备发送GPU空闲通知。
GPU空闲通知用于表示第二电子设备基于目标GPU处理资源处理的任务已完成。
在一种可能的实施方式中,第二电子设备可以监控目标GPU处理资源的使用状态,当任务处理完成时,目标GPU处理资源的利用率可以为0,第二电子设备可以获知目标GPU处理资源处于空闲状态。然后,第二电子设备可以向第一电子设备发送GPU空闲通知。可选的,GPU空闲通知中可以携带有目标GPU处理资源的访问地址、目标GPU处理资源的标识或第二电子设备的标识,以便第一电子设备获知目标GPU处理资源处于空闲状态。对于GPU空闲通知中仅携带有第二电子设备的标识的情况,第一电子设备在将目标GPU处理资源分配给第二电子设备时,还可以记录下目标GPU处理资源与第二电子设备的对应关系,当接收到携带有第二电子设备的标识的GPU空闲通知时,可以根据目标GPU处理资源与第二电子设备的对应关系,确定目标GPU处理资源处于空闲状态。
示例性的,如图3所示的资源分配场景示意图,在基于KVM的虚拟机系统的架构中,第二电子设备的用户层上还可以运行有GPU监控程序,例如Daemon-gpu(GPU守护程序),可以监控GPU当前的使用状态。
205、如果第一电子设备接收GPU空闲通知后达到预设时长,则将目标GPU处理资源的使用状态更新为未分配状态。
在一种可能的实施方式中,第一电子设备在接收到GPU空闲通知时,可以启动计时器。当然,也可以是第二电子设备启动计时器来确定计算目标GPU处理资源的空闲时长,当达到预设时长时,才向第一电子设备发送GPU空闲通知,此时,第一电子设备在接收到GPU空闲通知时,也可以不等待预设时长,就将目标GPU处理资源的使用状态更新为未分配状态,此处不作限定。
对于第一电子设备等待预设时长的情况,如果在该预设时长中,第二电子设备再次有GPU处理资源的需求,并且重新基于目标GPU处理资源进行任务处理,则第二电子设备可以向第一电子设备发送目标GPU处理资源对应的GPU忙碌通知,用于通知第一电子设备目标GPU处理资源被重新启用,此时,第一电子设备可以将等待时长清零,当再次接收到目标GPU处理资源对应的GPU空闲通知时,重新确定等待时长。
如果第一电子设备的等待时长达到预设时长,则表明目标GPU处理资源在预设时长中一直处于空闲状态,例如空闲达到5分钟,第一电子设备可以回收该目标GPU处理资源,并且可以在其管理的所有GPU处理资源的使用状态中,将目标GPU处理资源的使用状态更新为未分配状态。
第一电子设备回收目标GPU处理资源的具体处理可以是,向第二电子设备发送回收消息,与上述分配消息相对应的,回收消息中也可以携带有目标GPU处理资源的访问地址或目标GPU处理资源的标识。此时,第二电子设备可以将设备上已存储的目标GPU处理资源的访问地址或标识删除,使得第二电子设备不能够继续基于目标GPU处理资源进行任务处理,当其再次有GPU处理资源的需求时,需要向第一电子设备发送资源分配请求。如图4所示的资源再分配流程示意图,目标GPU处理资源的使用状态更新为未分配状态之后,可以被分配给任一第二电子设备,提高GPU的利用率。在这样的实施方式中,如果第二电子设备的任务较为繁重,在预设时长内就会启动下一个任务进程,则第二电子设备可以继续使用已分配的GPU处理资源进行任务处理,不需要频繁地向第一电子设备提交资源分配请求,提高第二电子设备处理任务的效率。
可选的,为了提高回收GPU处理资源的准确性,当目标GPU处理资源中的部分GPU处理资源处于空闲状态时,第二电子设备也可以向第一电子设备发送该部分GPU处理资源对应的GPU空闲通知,GPU空闲通知中可以携带有该部分GPU处理资源的访问地址或该部分GPU处理资源的标识。后续第一电子设备回收GPU处理资源的过程与上述步骤205的过程相类似,此处不再赘述。
上述步骤201-205的过程,是以第一电子设备接收GPU空闲通知后需要预设时长才回收GPU处理资源为例进行介绍的,另一种可能的实施方式中,第一电子设备在接收到GPU空闲通知时,还可以不需要等待预设时长,就将目标GPU处理资源的使用状态更新为未分配状态,加快GPU处理资源的回收流程,提高GPU的利用率。
另外,对于机器学习算法训练任务来说,训练过程中一般会占用一个GPU 100%的处理资源进行处理,如果多个机器学习算法训练任务共享一个GPU进行训练,则会使得训练时间成倍增加。因此,上述GPU处理资源可以是以一个GPU为单位,一个机器学习算法训练任务可以占用一个或多个GPU,避免多个机器学习算法训练任务共享一个GPU的情况,可以提高机器学习算法训练任务的处理效率。
本发明实施例中,第一电子设备将GPU处理资源分配给第二电子设备后,如果GPU处理资源处于空闲状态,则可以更新为未分配状态。进而,当第一电子设备再次接收到资源分配请求时,可以将处于未分配状态的GPU处理资源分配给请求的第二电子设备,达到动态分配GPU处理资源的效果。经过上述处理,可以避免GPU处理资源不能分配给其它第二电子设备而一直处于空闲状态,提高GPU的利用率。
基于相同的技术构思,本发明实施例还提供了一种资源分配方法,本发明实施例与上述发明实施例的区别在于,为了细化GPU的管理,已分配状态还可以包括已分配且空闲状态以及已分配且忙碌状态,其中,已分配且空闲状态可以是指GPU处理资源已分配给第二电子设备且未被使用的状态,已分配且忙碌状态可以是指GPU处理资源已分配给第二电子设备使用且正在被使用的状态。在上述发明实施例的步骤202中,由于第二电子设备具有任务处理需求时才发送资源分配请求,则第一电子设备将目标GPU处理资源分配给第二电子设备后,就可以将其使用状态从未分配状态更新为已分配且忙碌状态。在上述发明实施例的步骤205中,当第一电子设备接收到目标GPU处理资源的GPU空闲通知时,可以将其使用状态从已分配且忙碌状态更新为已分配且空闲状态。如果在等待时长中接收到目标GPU处理资源的GPU忙碌通知,则第一电子设备可以将其使用状态从已分配且空闲状态更新为已分配且忙碌状态;如果等待达到预设时长,则第一电子设备可以将其使用状态从已分配且空闲状态更新为未分配状态。
结合图5所示的资源分配方法流程图,该方法的处理流程可以包括如下的步骤:
501、第二电子设备向第一电子设备发送资源分配请求,该资源分配请求携带有目标资源大小。
步骤501具体过程与上述步骤201相类似,此处不再赘述。
502、当第一电子设备接收到第二电子设备的资源分配请求时,确定目标GPU处理资源,将目标GPU处理资源分配给第二电子设备。
步骤502中确定目标GPU处理资源、并将目标GPU处理资源分配给第二电子设备的处理可以详细分为下述步骤5021-5024,下面结合图6所示的确定目标GPU处理资源的流程图,对步骤502进行介绍。
当第一电子设备接收到第二电子设备的分配请求时,可以进行步骤5021的处理。
5021、第一电子设备判断使用状态为未分配状态的GPU处理资源大小是否大于或等于目标资源大小。
如果第一电子设备判断出使用状态为未分配状态的GPU处理资源大小大于或等于目标资源大小,则表明未分配GPU处理资源满足第二电子设备的需求,第一电子设备可以跳转至步骤5022。
如果第一电子设备判断出使用状态为未分配状态的GPU处理资源大小小于目标资源大小,则表明未分配GPU处理资源不满足第二电子设备的需求,第一电子设备可以跳转至步骤5023。
5022、在使用状态为未分配状态的GPU处理资源中,将目标资源大小的GPU处理资源确定为目标GPU处理资源,分配给第二电子设备。
步骤5022具体过程与上述步骤202相类似,此处不再赘述。
5023、第一电子设备判断使用状态为可分配的GPU处理资源大小是否大于或等于目标资源大小。
上述可分配的GPU处理资源大小是指已分配且空闲状态的GPU处理资源大小与使用状态为未分配状态的GPU处理资源大小之和。
如果第一电子设备判断出使用状态为已分配且空闲状态的GPU处理资源大小与使用状态为未分配状态的GPU处理资源大小之和大于或等于目标资源大小,则表明第一电子设备中可分配的GPU处理资源满足第二电子设备的需求,第一电子设备可以跳转至步骤5024。
如果第一电子设备判断出使用状态为已分配且空闲状态的GPU处理资源大小与使用状态为未分配状态的GPU处理资源大小之和小于目标资源大小,则表明当前第一电子设备中可分配的GPU处理资源不满足第二电子设备的需求,第一电子设备可以结束分配GPU处理资源的流程。不分配GPU处理资源的过程在上述发明实施例中已经介绍过,对于其它第一电子设备将GPU处理资源分配给第二电子设备,具体的处理还可以如图6中的步骤5025:第一电子设备确定第三电子设备,向第二电子设备发送携带有第三电子设备的访问地址的迁移指令。上述第三电子设备是指在虚拟机系统中,除当前第一电子设备之外的其它第一电子设备。
第二电子设备在接收到携带有第三电子设备的访问地址的迁移指令后,可以基于该访问地址与第三电子设备进行交互,例如,第二电子设备可以根据该访问地址,向第三电子设备发送资源分配请求。
在一种可能的实施方式中,第一电子设备可以选择一个第三电子设备,如果该第三电子设备仍然不能满足第二电子设备的需求,则经过步骤501-502后,该第三电子设备将重复上述步骤5025,遍历虚拟机系统,直到找到满足第二电子设备的需求的第一电子设备,才能继续完成步骤501-步骤505的过程。
为了提高资源分配的效率,在另一种可能的实施方式中,虚拟机系统中的所有第一电子设备都可以获知各个第一电子设备中GPU处理资源的使用情况,此时,当前第一电子设备可以确定一个可分配的GPU处理资源满足第二电子设备的需求的第三电子设备,其中,可分配的GPU处理资源满足第二电子设备的需求是指使用状态为已分配且空闲状态的GPU处理资源大小与使用状态为未分配状态的GPU处理资源大小之和大于或等于目标资源大小。
这样,第二电子设备可以动态使用虚拟机系统中的GPU,提高虚拟机系统的GPU利用率。当然,也可能存在虚拟机系统中没有满足第二电子设备的需求的第一电子设备的情况,此时,用户可以等待一段时间后,再操作第二电子设备进行该任务的处理。
5024、第一电子设备获取空闲时长最长的GPU处理资源,将空闲时长最长的GPU处理资源的使用状态更新为未分配状态。
在一种可能的实施方式中,第一电子设备可以在所有使用状态为已分配且空闲状态的GPU处理资源中,判断哪个GPU处理资源对应的等待时长最长,即表明该GPU处理资源空闲时常最长,可以将该GPU处理资源的使用状态更新为未分配状态,跳转至步骤5021。直到使用状态为未分配状态的GPU处理资源大小大于或等于目标资源大小,才能进行步骤5022的处理,将GPU处理资源分配给第二电子设备,进一步提高GPU的利用率。
另一种可能的实施方式中,第一电子设备可以将目标资源大小与使用状态为未分配状态的GPU处理资源大小相减,得到待回收的GPU处理资源大小,将空闲时长最长,且资源大小之和大于或等于待回收的GPU处理资源大小的至少一个GPU处理资源的使用状态更新为未分配状态。
可选的,不同的第二电子设备可以具有不同的使用GPU的优先级,在步骤5024中,第一电子设备确定是否将处于已分配且空闲状态的GPU处理资源更新为未分配状态之前,可以判断请求资源分配的第二电子设备的优先级是否大于当前分配到GPU处理资源的第二电子设备,如果大于,则可以按照上述发明实施例的步骤205中介绍的回收GPU处理资源的过程进行处理,并将对应的GPU处理资源的使用状态从已分配且空闲状态更新为未分配状态。经过上述处理,可以保证优先级高的第二电子设备的优先处理任务。
503、第二电子设备基于第一电子设备分配的目标GPU处理资源进行任务处理。
504、当任务处理完成时,第二电子设备向第一电子设备发送GPU空闲通知。
505、如果第一电子设备接收GPU空闲通知后达到预设时长,则将目标GPU处理资源的使用状态更新为未分配状态。
步骤503-504具体过程与上述步骤203-204相类似,此处不再赘述。
本发明实施例中,当第一电子设备中处于未分配状态的GPU处理资源不满足第二电子设备的需求时,可以回收处于已分配且空闲状态的GPU处理资源,并分配给第二电子设备,进一步提高GPU的利用率。
基于相同的技术构思,本发明实施例还提供了一种资源分配装置,该装置可以是上述第一电子设备。如图7所示的资源分配装置示意图,该装置包括:
接收模块710,用于接收到第二电子设备的资源分配请求;
分配模块720,用于将使用状态为未分配状态的目标图形处理器GPU处理资源分配给所述第二电子设备,将所述目标GPU处理资源的使用状态更新为已分配状态;
所述第二接收模块710,还用于接收所述第二电子设备发送的GPU空闲通知,所述GPU空闲通知用于表示所述第二电子设备基于所述目标GPU处理资源进行的任务已完成;
更新模块730,用于将所述目标GPU处理资源的使用状态更新为未分配状态。
可选的,所述更新模块730用于:
如果接收所述GPU空闲通知后达到预设时长,则将所述目标GPU处理资源的使用状态更新为未分配状态。
可选的,所述已分配状态包括已分配且空闲状态或已分配且忙碌状态;所述分配模块720用于:
将所述目标GPU处理资源的使用状态更新为已分配且忙碌状态;
所述接收模块还用于:当接收到所述第二电子设备发送的GPU空闲通知时,将所述目标GPU处理资源的使用状态更新为已分配且空闲状态。
可选的,所述已分配状态包括已分配且空闲状态或已分配且忙碌状态,所述资源分配请求中携带有目标资源大小,所述分配模块720用于:
如果使用状态为未分配状态的GPU处理资源大小大于或等于所述目标资源大小,则在使用状态为未分配状态的GPU处理资源中,将所述目标资源大小的GPU处理资源确定为目标GPU处理资源,分配给所述第二电子设备。
可选的,所述分配模块720用于:
如果使用状态为未分配状态的GPU处理资源大小小于所述目标资源大小,则确定使用状态为已分配且空闲状态的GPU处理资源大小;
如果所述使用状态为已分配且空闲状态的GPU处理资源大小与所述使用状态为未分配状态的GPU处理资源大小之和大于或等于所述目标资源大小,则获取空闲时长最长的GPU处理资源;
将所述空闲时长最长的GPU处理资源的使用状态更新为未分配状态,直到使用状态为未分配状态的GPU处理资源大于或等于所述目标资源大小;
在使用状态为未分配状态的GPU处理资源中,将所述目标资源大小的GPU处理资源确定为目标GPU处理资源,分配给所述第二电子设备。
可选的,所述装置还包括:
迁移模块740,用于如果所述使用状态为已分配且空闲状态的GPU处理资源大小与所述使用状态为未分配状态的GPU处理资源大小之和小于所述目标资源大小,则确定第三电子设备,向所述第二电子设备发送携带有所述第三电子设备的访问地址的迁移指令。
基于相同的技术构思,本发明实施例还提供了一种资源分配装置,该装置可以是上述第二电子设备。如图8所示的资源分配装置示意图,该装置包括:
发送模块810,用于向第一电子设备发送资源分配请求;
处理模块820,用于当接收到所述第一电子设备分配的目标图形处理器GPU处理资源时,基于所述目标GPU处理资源进行任务处理;
所述发送模块810,还用于当所述任务处理完成时,向所述第一电子设备发送GPU空闲通知。
可选的,所述资源分配请求携带有目标资源大小。
可选的,所述装置还包括:
第三发送模块830,用于当接收到所述第一电子设备发送的携带有第三电子设备的访问地址的迁移指令时,根据所述第三电子设备的访问地址,向所述第三电子设备发送所述资源分配请求。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
上述发明实施例中,第一电子设备将GPU处理资源分配给第二电子设备后,如果GPU处理资源处于空闲状态,则可以更新为未分配状态。进而,当第一电子设备再次接收到资源分配请求时,可以将处于未分配状态的GPU分配给请求的第二电子设备,达到动态分配GPU处理资源的效果。经过上述处理,可以避免GPU处理资源不能分配给其它第二电子设备而一直处于空闲状态,提高GPU的利用率。
需要说明的是:上述实施例提供的资源分配装置在资源分配时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将第一电子设备和第二电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的资源分配装置与资源分配方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于相同的技术构思,本发明实施例还提供了一种资源分配系统,该系统包括第一电子设备和第二电子设备,其中:
所述第一电子设备,用于接收到所述第二电子设备的资源分配请求;将使用状态为未分配状态的目标图形处理器GPU处理资源分配给所述第二电子设备,将所述目标GPU处理资源的使用状态更新为已分配状态;接收所述第二电子设备发送的GPU空闲通知,所述GPU空闲通知用于表示所述第二电子设备基于所述目标GPU处理资源进行的任务已完成;将所述目标GPU处理资源的使用状态更新为未分配状态;
所述第二电子设备,用于向所述第一电子设备发送资源分配请求;当接收到所述第一电子设备分配的目标图形处理器GPU处理资源时,基于所述目标GPU处理资源进行任务处理;当所述任务处理完成时,向所述第一电子设备发送GPU空闲通知。
本发明实施例中,第一电子设备将GPU处理资源分配给第二电子设备后,如果GPU处理资源处于空闲状态,则可以更新为未分配状态。进而,当第一电子设备再次接收到资源分配请求时,可以将处于未分配状态的GPU分配给请求的第二电子设备,达到动态分配GPU处理资源的效果。经过上述处理,可以避免GPU处理资源不能分配给其它第二电子设备而一直处于空闲状态,提高GPU的利用率。
图9是本发明实施例提供的一种第一电子设备的结构示意图,该第一电子设备900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)901、一个或一个以上的存储器902和一个或一个以上的图形处理器GPU903,,其中,所述存储器902中存储有至少一条指令,所述至少一条指令由所述处理器901加载并执行以实现下述资源分配方法的步骤:
接收到第二电子设备的资源分配请求;
将使用状态为未分配状态的目标图形处理器GPU处理资源分配给所述第二电子设备,将所述目标GPU处理资源的使用状态更新为已分配状态;
接收所述第二电子设备发送的GPU空闲通知,所述GPU空闲通知用于表示所述第二电子设备基于所述目标GPU处理资源进行的任务已完成;
将所述目标GPU处理资源的使用状态更新为未分配状态。
可选的,所述至少一条指令由所述处理器901加载并执行以实现下述方法步骤:
如果接收所述GPU空闲通知后达到预设时长,则将所述目标GPU处理资源的使用状态更新为未分配状态。
可选的,所述已分配状态包括已分配且空闲状态或已分配且忙碌状态;所述至少一条指令由所述处理器901加载并执行以实现下述方法步骤:
将所述目标GPU处理资源的使用状态更新为已分配且忙碌状态;
所述方法还包括:当接收到所述第二电子设备发送的GPU空闲通知时,将所述目标GPU处理资源的使用状态更新为已分配且空闲状态。
可选的,所述已分配状态包括已分配且空闲状态或已分配且忙碌状态,所述资源分配请求中携带有目标资源大小,所述至少一条指令由所述处理器901加载并执行以实现下述方法步骤:
如果使用状态为未分配状态的GPU处理资源大小大于或等于所述目标资源大小,则在使用状态为未分配状态的GPU处理资源中,将所述目标资源大小的GPU处理资源确定为目标GPU处理资源,分配给所述第二电子设备。
可选的,所述至少一条指令由所述处理器901加载并执行以实现下述方法步骤:
如果使用状态为未分配状态的GPU处理资源大小小于所述目标资源大小,则确定使用状态为已分配且空闲状态的GPU处理资源大小;
如果所述使用状态为已分配且空闲状态的GPU处理资源大小与所述使用状态为未分配状态的GPU处理资源大小之和大于或等于所述目标资源大小,则获取空闲时长最长的GPU处理资源;
将所述空闲时长最长的GPU处理资源的使用状态更新为未分配状态,直到使用状态为未分配状态的GPU处理资源大于或等于所述目标资源大小;
在使用状态为未分配状态的GPU处理资源中,将所述目标资源大小的GPU处理资源确定为目标GPU处理资源,分配给所述第二电子设备。
可选的,所述至少一条指令由所述处理器901加载并执行以实现下述方法步骤:
如果所述使用状态为已分配且空闲状态的GPU处理资源大小与所述使用状态为未分配状态的GPU处理资源大小之和小于所述目标资源大小,则确定第三电子设备,向所述第二电子设备发送携带有所述第三电子设备的访问地址的迁移指令。
图10是本发明实施例提供的一种第二电子设备的结构示意图,该第二电子设备1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1001和一个或一个以上的存储器1002,其中,所述存储器1002中存储有至少一条指令,所述至少一条指令由所述处理器1001加载并执行以实现下述资源分配方法的步骤:
向第一电子设备发送资源分配请求;
当接收到所述第一电子设备分配的目标图形处理器GPU处理资源时,基于所述目标GPU处理资源进行任务处理;
当所述任务处理完成时,向所述第一电子设备发送GPU空闲通知。
可选的,所述资源分配请求携带有目标资源大小。
可选的,所述至少一条指令由所述处理器1001加载并执行以实现下述方法步骤:
当接收到所述第一电子设备发送的携带有第三电子设备的访问地址的迁移指令时,根据所述第三电子设备的访问地址,向所述第三电子设备发送所述资源分配请求。
上述发明实施例中,第一电子设备将GPU处理资源分配给第二电子设备后,如果GPU处理资源处于空闲状态,则可以更新为未分配状态。进而,当第一电子设备再次接收到资源分配请求时,可以将处于未分配状态的GPU分配给请求的第二电子设备,达到动态分配GPU处理资源的效果。经过上述处理,可以避免GPU处理资源不能分配给其它第二电子设备而一直处于空闲状态,提高GPU的利用率。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中第一电子设备和第二电子设备的资源分配方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的可能实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种资源分配系统,其特征在于,所述系统包括至少一个第一电子设备和至少两个第二电子设备,其中:
所述第一电子设备,用于接收到所述第二电子设备的资源分配请求,所述资源分配请求中携带有目标资源大小;如果使用状态为未分配状态的图形处理器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处理资源大小之和小于所述目标资源大小,则确定第三电子设备,向所述第二电子设备发送携带有所述第三电子设备的访问地址的迁移指令。
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处理资源大小之和小于所述目标资源大小,则确定第三电子设备,向所述第二电子设备发送携带有所述第三电子设备的访问地址的迁移指令。
3.一种资源分配方法,其特征在于,所述方法应用于第二电子设备,所述方法包括:
向第一电子设备发送资源分配请求,所述资源分配请求中携带有目标资源大小,其中,所述第一电子设备和所述第二电子设备包括在资源分配系统中,并且所述资源分配系统包括的第二电子设备为至少两个;
基于所述第一电子设备分配的目标图形处理器GPU处理资源进行任务处理,其中,第一电子设备分配目标GPU处理资源的过程包括:如果使用状态为未分配状态的图形处理器GPU处理资源大小小于所述目标资源大小,则确定使用状态为已分配且空闲状态的GPU处理资源大小;如果所述使用状态为已分配且空闲状态的GPU处理资源大小与所述使用状态为未分配状态的GPU处理资源大小之和大于或等于所述目标资源大小,则获取空闲时长最长的GPU处理资源;判断请求资源分配的第二电子设备的优先级是否大于当前分配到所述空闲时长最长的GPU处理资源的第二电子设备,如果大于则将所述空闲时长最长的GPU处理资源的使用状态更新为未分配状态,直到使用状态为未分配状态的GPU处理资源大小大于或等于所述目标资源大小;在使用状态为未分配状态的GPU处理资源中,将所述目标资源大小的GPU处理资源确定为目标GPU处理资源,分配给所述请求资源分配的第二电子设备,将所述目标GPU处理资源的使用状态更新为已分配且忙碌状态;
当所述任务处理完成时,向所述第一电子设备发送GPU空闲通知;
接收所述第一电子设备发送的回收消息,所述回收消息用于指示回收所述空闲通知对应的GPU处理资源;
如果在接收到所述回收消息之前,所述空闲通知对应的GPU处理资源重新用于进行任务处理,则向所述第一电子设备发送GPU忙碌通知;
所述方法还包括:
当接收到所述第一电子设备发送的携带有第三电子设备的访问地址的迁移指令时,根据所述第三电子设备的访问地址,向所述第三电子设备发送所述资源分配请求。
4.一种资源分配装置,其特征在于,所述装置为第一电子设备,所述装置包括:
接收模块,用于接收到第二电子设备的资源分配请求,所述资源分配请求中携带有目标资源大小,其中,所述第一电子设备和所述第二电子设备包括在资源分配系统中,并且所述资源分配系统包括的第二电子设备为至少两个;
分配模块,用于如果使用状态为未分配状态的图形处理器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处理资源大小之和小于所述目标资源大小,则确定第三电子设备,向所述第二电子设备发送携带有所述第三电子设备的访问地址的迁移指令。
5.一种资源分配装置,其特征在于,所述装置为第二电子设备,所述装置包括:
发送模块,用于向第一电子设备发送资源分配请求,所述资源分配请求中携带有目标资源大小,其中,所述第一电子设备和所述第二电子设备包括在资源分配系统中,并且所述资源分配系统包括的第二电子设备为至少两个;
处理模块,用于当接收到所述第一电子设备分配的目标图形处理器GPU处理资源时,基于所述目标GPU处理资源进行任务处理,其中,第一电子设备分配目标GPU处理资源的过程包括:如果使用状态为未分配状态的目标图形处理器GPU处理资源大小小于所述目标资源大小,则确定使用状态为已分配且空闲状态的GPU处理资源大小;如果所述使用状态为已分配且空闲状态的GPU处理资源大小与所述使用状态为未分配状态的GPU处理资源大小之和大于或等于所述目标资源大小,则获取空闲时长最长的GPU处理资源;判断请求资源分配的第二电子设备的优先级是否大于当前分配到所述空闲时长最长的GPU处理资源的第二电子设备,如果大于则将所述空闲时长最长的GPU处理资源的使用状态更新为未分配状态,直到使用状态为未分配状态的GPU处理资源大小大于或等于所述目标资源大小;在使用状态为未分配状态的GPU处理资源中,将所述目标资源大小的GPU处理资源确定为目标GPU处理资源,分配给所述请求资源分配的第二电子设备,将所述目标GPU处理资源的使用状态更新为已分配且忙碌状态;
所述发送模块,还用于当所述任务处理完成时,向所述第一电子设备发送GPU空闲通知;
所述装置还用于执行下述任一项:
接收所述第一电子设备发送的回收消息,所述回收消息用于指示回收所述空闲通知对应的GPU处理资源;
如果在接收到所述回收消息之前,所述空闲通知对应的GPU处理资源重新用于进行任务处理,则向所述第一电子设备发送GPU忙碌通知;
所述装置还包括:
第三发送模块,用于当接收到所述第一电子设备发送的携带有第三电子设备的访问地址的迁移指令时,根据所述第三电子设备的访问地址,向所述第三电子设备发送所述资源分配请求。
6.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求2所述资源分配方法;或,如权利要求3所述资源分配方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求2所述资源分配方法;或,如权利要求3所述资源分配方法。
CN201810525561.1A 2018-05-28 2018-05-28 资源分配方法、装置及系统 Active CN110162397B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810525561.1A CN110162397B (zh) 2018-05-28 2018-05-28 资源分配方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810525561.1A CN110162397B (zh) 2018-05-28 2018-05-28 资源分配方法、装置及系统

Publications (2)

Publication Number Publication Date
CN110162397A CN110162397A (zh) 2019-08-23
CN110162397B true CN110162397B (zh) 2022-08-23

Family

ID=67644868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810525561.1A Active CN110162397B (zh) 2018-05-28 2018-05-28 资源分配方法、装置及系统

Country Status (1)

Country Link
CN (1) CN110162397B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597635B (zh) * 2019-09-12 2023-10-27 腾讯科技(深圳)有限公司 图形处理资源分配方法、装置、计算机设备及存储介质
CN110795241B (zh) * 2019-10-18 2022-07-19 北京并行科技股份有限公司 一种作业调度管理方法、调度中心和系统
CN113110813B (zh) * 2021-03-31 2024-02-27 联想(北京)有限公司 一种第一电子设备和处理方法
CN116841691A (zh) * 2023-06-15 2023-10-03 海光信息技术股份有限公司 加密硬件的配置方法、数据机密计算方法及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN103309748A (zh) * 2013-06-19 2013-09-18 上海交通大学 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法
CN105242957A (zh) * 2015-09-28 2016-01-13 广州云晫信息科技有限公司 一种云计算系统调配gpu资源到虚拟机的方法及系统
CN107450977A (zh) * 2015-12-30 2017-12-08 北京典赞科技有限公司 基于yarn的面向gpgpu集群的资源管理调度方法
KR20170138759A (ko) * 2016-06-08 2017-12-18 삼성전자주식회사 복수의 운영체제들의 화면을 통합하여 표시하는 방법 및 그 전자 장치
CN107544845A (zh) * 2017-06-26 2018-01-05 新华三大数据技术有限公司 Gpu资源调度方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN103309748A (zh) * 2013-06-19 2013-09-18 上海交通大学 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法
CN105242957A (zh) * 2015-09-28 2016-01-13 广州云晫信息科技有限公司 一种云计算系统调配gpu资源到虚拟机的方法及系统
CN107450977A (zh) * 2015-12-30 2017-12-08 北京典赞科技有限公司 基于yarn的面向gpgpu集群的资源管理调度方法
KR20170138759A (ko) * 2016-06-08 2017-12-18 삼성전자주식회사 복수의 운영체제들의 화면을 통합하여 표시하는 방법 및 그 전자 장치
CN107544845A (zh) * 2017-06-26 2018-01-05 新华三大数据技术有限公司 Gpu资源调度方法及装置

Also Published As

Publication number Publication date
CN110162397A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
CN110162397B (zh) 资源分配方法、装置及系统
CN110888743B (zh) 一种gpu资源使用方法、装置及存储介质
CN110192182B (zh) 动态和专用的虚拟化图形处理
CN109240825B (zh) 弹性任务调度方法、装置、设备及计算机可读存储介质
US20130055254A1 (en) Methods and apparatuses for providing a virtual machine with dynamic assignment of a physical hardware resource
KR20210095690A (ko) 리소스 관리 방법과 장치, 전자 디바이스 및 기록 매체
CN109218356B (zh) 管理服务器上有状态应用的方法和设备
EP3748508A1 (en) Memory management in virtualized computing
US11928493B2 (en) Sharing of FPGA board by multiple virtual machines
WO2023050819A1 (zh) 片上系统、虚拟机任务处理方法及设备、存储介质
US20170024231A1 (en) Configuration of a computer system for real-time response from a virtual machine
EP3304294A1 (en) Method and system for allocating resources for virtual hosts
US10318343B2 (en) Migration methods and apparatuses for migrating virtual machine including locally stored and shared data
CN112286688A (zh) 一种内存管理和使用方法、装置、设备和介质
CN113377545B (zh) 用于分配gpu物理内存的方法及装置
CN115237589A (zh) 一种基于sr-iov的虚拟化方法、装置和设备
CN111813541B (zh) 一种任务调度方法、装置、介质和设备
CN105677481A (zh) 一种数据处理方法、系统及电子设备
US9088569B2 (en) Managing access to a shared resource using client access credentials
CN107766122B (zh) 一种宿主机的可用内存空间设置方法和装置
CN109617954B (zh) 一种创建云主机的方法和装置
CN114448909A (zh) 基于ovs的网卡队列轮询方法、装置、计算机设备及介质
CN111198747B (zh) 一种为虚拟机分配内存的方法和虚拟机
CN114185676B (zh) 服务器分配方法、装置、电子设备和计算机可读存储介质
EP4109255A1 (en) Scheduling in a container orchestration system utilizing hardware topology hints

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