CN109726005A - 用于管理资源的方法、服务器系统和计算机程序产品 - Google Patents
用于管理资源的方法、服务器系统和计算机程序产品 Download PDFInfo
- Publication number
- CN109726005A CN109726005A CN201711029488.0A CN201711029488A CN109726005A CN 109726005 A CN109726005 A CN 109726005A CN 201711029488 A CN201711029488 A CN 201711029488A CN 109726005 A CN109726005 A CN 109726005A
- Authority
- CN
- China
- Prior art keywords
- resource
- application
- processing units
- specialized processing
- amount
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004590 computer program Methods 0.000 title claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 80
- 230000004044 response Effects 0.000 claims abstract description 31
- 230000005540 biological transmission Effects 0.000 claims 3
- 238000013135 deep learning Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 206010021703 Indifference Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/803—Application aware
-
- 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/5044—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 hardware capabilities
-
- 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/505—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 load
-
- 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/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/74—Admission control; Resource allocation measures in reaction to resource unavailability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/821—Prioritising resource allocation or reservation requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开的实施例提供了一种用于管理资源的方法、服务器系统和计算机程序产品。该方法可以包括接收来自应用的针对第一量的专用处理单元资源的请求,该应用具有已分配的优先级。该方法还可以包括基于请求确定应用将会占用的专用处理单元资源的总量。该方法还可以包括响应于总量接近或超出与优先级相关联的预定限额,为应用分配第一量的通用处理单元资源。
Description
技术领域
本公开的实施例涉及计算机领域,并且更具体地,涉及一种用于管理资源的方法、服务器系统以及计算机程序产品。
背景技术
目前,很多数据处理和计算的任务依赖于专用处理器来执行。例如,图形处理单元(GPU)是一种已知的专用处理器,其被用于在个人计算机、工作站、游戏机和移动设备上进行加速运算。同时利用GPU和中央处理单元(CPU)能够提供GPU加速计算。GPU加速计算能够将应用程序的计算密集的工作负荷转移到GPU上,而其余程序代码仍由CPU运行。从用户的角度来看,应用程序的运行速度明显加快。
如今,为了给诸如高性能计算(HPC)、机器学习(ML)或深度学习(DL)之类的密集型计算任务提供更好的服务,越来越多的公有云或数据中心开始部署GPU实例,以供这些密集型计算任务使用。这些公有云或数据中心中部署的GPU实例由不同租户的应用共享。然而,这些公有云或数据中心仅仅是简单地尝试部署GPU实例,目前尚处于初级阶段。到目前为止,没有在多个应用之间对这种共享的GPU中的资源进行服务质量(QoS)控制的方案。其他类型的专用处理器同样面对类似的问题。
发明内容
本公开的实施例提供了一种用于管理资源的方案。
在本公开的第一方面中,提供了一种用于管理资源的方法。该方法可以包括接收来自应用的针对第一量的专用处理单元资源的请求,该应用具有已分配的优先级。该方法还可以包括基于请求确定应用将会占用的专用处理单元资源的总量。该方法还可以包括响应于总量接近或超出与优先级相关联的预定限额,为应用分配第一量的通用处理单元资源。
在本公开的第二方面中,提供了一种服务器系统。该服务器系统可以包括专用处理单元、通用处理单元和控制器。控制器可以被配置为接收来自应用的针对第一量的专用处理单元资源的请求,应用具有已分配的优先级。控制器还可以被配置为基于请求确定应用将会占用的专用处理单元资源的总量。控制器还可以被配置为响应于总量接近或超出与优先级相关联的预定限额,为应用分配第一量的通用处理单元资源。
在本公开的第三方面中,提供了一种计算机程序产品,该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行上面所述的管理资源的方法的步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了为多个应用提供共享的专用处理器的环境。
图2示出了根据本公开的实施例的架构的示意图。
图3示出了根据本公开的实施例的架构的示意图。
图4示出了根据本公开的实施例的用于管理资源的方法的流程图。
图5示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的示例实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
图1示出了为多个应用提供共享的专用处理器的环境100。环境100例如可以是基于云的环境。如图所示,环境100包括第一用户站102、第二用户站104、第三用户站106、第一服务器108、第二服务器110、第三服务器112、网络114以及调度器116。虽然在图1中示出了三个用户站102、104、106和三个服务器108、110、112,但是本领域技术人员将理解的是,环境100可以包括任意数目的用户站和任意数目的服务器。
用户站102、104、106可以是通过网络114连接到服务器108、110、112的用户设备,例如台式计算机、膝上型计算机、平板电脑、智能手机等。用户站102、104、106上可以运行有客户端应用。举例来说而非限制地,第一用户站102上可以运行有高性能计算(HPC)应用,第二用户站104上可以运行有机器学习(ML)应用,而第三用户站106上可以运行有深度学习(DL)应用。
第一服务器108、第二服务器110和第三服务器112为用户站102、104、106上运行的应用提供共享的专用处理器,例如共享的GPU、共享的现场可编程门阵列(FPGA)等,以提供加速计算。服务器108、110、112中的每一个都可以包括一个或多个专用处理器。除了专用处理器以外,服务器108、110、112中的每一个还可以包括未示出的其他部件,例如诸如中央处理单元(CPU)之类的通用处理器、存储系统等等。调度器116可以负责为用户站102、104、106上运行的客户端应用分配服务器108、110、112中的专用处理器。
在具有共享的专用处理器的环境中,例如图1中所示的环境100中,来自相同或不同租户的多个应用(例如HPC应用、ML应用、DL应用)可能同时存在,并运行在相同的专用处理器中。一个需要解决的问题是如何使多个应用高效地使用这种共享的专用处理器,尤其是如何高效地使用共享的专用处理器中的资源。然而,到目前为止,尚不存在有效的方案来针对多个应用提供专用处理器的服务质量(QoS)控制。另外,在当前的专用处理器硬件架构中,虽然可以通过一些应用程序接口(API)来查询资源的使用情况,但是并不存在应用级的QoS控制能力。
为此,总体而言,本公开的实施例提供了一种对专用处理单元的资源进行管理的方案,使得优先级较高的应用或者服务级别协议较高的租户更容易获得专用处理单元的资源,并且尽量最小化在代码、重建或运行结果方面对各应用程序的影响。
在本公开的实施例中,为应用设置一个与该应用的优先级相关联的预定限额,预定限额随着优先级的提高而增大。预定限额指示允许应用在专用处理单元中使用的资源上限。响应于接收到来自应用的针对专用处理单元的资源(例如存储资源)的请求,对该请求进行解析以获得所请求的资源量。基于所请求的资源量以及该应用已经占用的资源量,来确定该应用在专用处理单元中将会占用的总资源量。如果总资源量接近或超出预定限额,则不为该应用分配专用处理单元的资源的任何部分,而是基于所请求的资源量,为该应用分配通用处理单元(例如中央处理单元(CPU))的资源的一部分。
通过为应用设置与应用的优先级相关联的限额,能够确保较高优先级的应用比较低优先级的应用获得更多的专用处理单元资源,使得低优先级的应用对高优先级的应用的影响较小。另一方面,如果针对专用处理单元的资源的请求导致应用在专用处理单元中将会占用的总资源量接近或超出预定限额,则为应用分配通用处理单元的资源。这确保了在满足限额的同时该应用能够继续运行,以得到运行结果。
在下面描述结合图2和图3的描述中,为了清楚和简化,将主要以GPU为例来详细描述本公开的示例实施例。如已知的,GPU是一种常见的专用处理器,其强大的计算能力源自其大量的内核以及高带宽的存储器。GPU的存储器是GPU的一种重要的稀缺资源。GPU的存储器的容量通常较小,例如大小为8GB-16GB,但是吞吐量极高,例如达到900GB/s。GPU的存储器对许多GPU应用起着重要的作用,原因在于数据的加载和移动可能会对应用的性能造成严重的影响。
但是,应当理解,GPU仅仅是一种示例性的专用处理器,并非用于限制本公开的范围。在此描述的精神和原理可以应用于其他专用处理器,例如现场可编程门阵列(FPGA)之类的加速器,不论是目前使用的还是将来开发的,而并不仅仅限于GPU。
图2示出了根据本公开的实施例的架构200的示意图。应当理解的是,图2中所示的某些部件是可以省略的,而且在其他实施例中架构200还可以包括没有在此示出的其他部件。也即,图2所述的示意图仅仅是为了在一个示例环境中描述本公开的实施例,以便帮助本领域技术人员理解在此描述的机制和原理,而无意以任何方式限制本公开的范围。
架构200包括第一应用202、第二应用204、第三应用206和服务器214。这些应用202、204、206可以是由相同租户或不同租户开发的GPU应用,例如高性能计算(HPC)应用、机器学习(ML)应用、深度学习(DL)应用等。第一应用202、第二应用204和第三应用206中的每一个的密集计算部分都可以由服务器204中的GPU220、222、224、226中的一个或多个来执行。
租户可以基于其服务等级协议为其应用设置一个预定限额。在一个实施例中,所设置的预定限额随着服务等级协议的提高而增大。服务等级协议反映了应用的优先级。可以以不同的方式来设置预定限额,例如以绝对的方式或相对的方式。在一个实施例中,可以存在三种限额类型。在类型1中,限额是一个绝对数目,例如4GB的存储资源。在类型2中,限额是总GPU资源的一个比例,例如总GPU存储资源的50%。在类型3中,限额是可用GPU资源的一个比例,例如可用GPU存储资源的50%。
应用202、204、206可以将其限额设置传递给服务器214。仅仅作为示例,在一个实施例中,应用202、204、206可以响应于第一次启动而经由一个预定义的请求格式<AppID,quotaType,quotaSetting>将限额设置传递给服务器214。AppID表示应用的标识符,每个应用可以具有一个唯一的标识符。QuotaType表示限额类型,例如上面描述的类型1、类型2或类型3。QutaSetting表示限额的值,例如4GB或50%。
在架构200下,每个应用202、204、206在内部动态地加载一个客户端驱动,例如客户端驱动208、210、212。客户端驱动可以拦截相应应用的与GPU有关的所有请求,例如针对GPU资源(如存储资源)的请求,并将拦截的请求转发给服务器214以进行处理。应用202、204、206通过分别动态加载客户端驱动208、210、212来拦截与GPU有关的请求,可以与服务器214进行交互以实现本公开的方案,而无须修改代码。从而从应用的角度来讲,本公开的方案是透明的。
服务器214包括服务器驱动216、GPU驱动218以及多个GPU220、222、224、226。GPU驱动218与常规的GPU驱动类似,在此不进行详细描述。服务器驱动216可以接收来自应用的格式为<AppID,quotaType,quotaSetting>的请求,并从该请求中提取出与限额有关的信息。
服务器驱动216还可以针对每个应用维护以下信息:应用的标识符;限额类型,例如上面描述的类型1、类型2或类型3;限额值,其可以是一个绝对数值,也可以是一个相对数值;已经使用的GPU资源量,其可以是一个绝对数值,也可以是一个相对数值;该应用将会占用的总资源量超出预定限额时的策略,例如,挂起策略、后惩罚策略、重映射策略等,下文将会对这些策略进行详细描述。除了上述信息以外,服务器驱动216还可以维护系统级的信息,包括系统的GPU资源的总量以及已被使用的GPU资源量或GPU资源的使用率。
服务器驱动216还可以接收来自第一应用202、第二应用204和第三应用206中的任意一个(例如第一应用202)的针对第一量的GPU资源的请求。服务器驱动216基于该请求和所维护的第一应用202在GPU中已经使用的资源量来确定第一应用202将要使用的GPU资源的总量。响应于第一应用202将要使用的GPU资源的总量接近或超出与第一应用202相关联的预定限额,例如,将要使用的总量达到了预定限额的一定比例(如90%或者任何其他适当的数值),服务器驱动216采取相应的策略。
在本公开的一个实施例中,响应于第一应用202将要使用的GPU资源的总量接近或超出预定限额,服务器驱动216所采取的策略是,不为第一应用分配GPU资源的任何部分,而是为第一应用202分配第一量的通用处理单元(例如CPU)的资源,例如CPU DRAM。举例来说,与GPU相比,CPU具有容量更大并且成本更低的存储资源。这样,能够确保第一应用202继续运行,同时其所占用的GPU资源不会超出预定限额。
作为例子,GPU资源可以包括GPU的存储资源,CPU资源可以包括CPU的存储资源。GPU的存储资源和CPU的存储资源可以借助于一个共享指针而统一编址。举例来说而非限制地,可以利用特定于GPU厂商的底层驱动来实现GPU存储器和CPU存储器的地址空间的统一编址。也可以在操作系统层面实现GPU存储器和CPU存储器的地址空间的统一编址。在该例子中,服务器驱动216可以设置共享指针指向所分配的CPU的存储资源,并将指针的信息返回给第一应用202,以供第一应用202使用。由于GPU的存储资源和CPU的存储资源利用了相同的指针编址,所以从应用的角度而言,应用并不知道给其分配的存储资源实际上是CPU的存储资源,即,应用可以透明地访问GPU的存储资源和CPU的存储资源。
在该例子中,除了上面描述的服务器驱动216所维护的信息以外,服务器驱动216还维护额外的元数据。这些额外的元数据可以包括:指示存储器类型的标记,指示数据所存储的位置(例如在GPU中还是在CPU中)的标记,以及最初希望将数据存储在哪个GPU上的指示。
服务器驱动216可以响应于第一应用202释放了先前占用的GPU资源的一部分,来确定第一应用在释放这部分资源后占用的GPU资源的总量是否低于预定限额达到阈值差异,例如比预定限额至少低10%或其他合适的值。响应于达到阈值差异,服务器驱动216将占用已分配的通用处理单元资源的数据的至少一部分迁移到GPU资源。通过这种方式,可以确保第一应用202所处理或访问的数据(例如频繁访问的数据)能够位于GPU上,从而加快对数据的处理或访问。
在本公开的一个实施例中,响应于第一应用202将要使用的GPU资源的总量接近或超出与第一应用202相关联的预定限额,服务器驱动216所采取的策略是,为第一应用202分配所请求的GPU资源量,以满足第一应用202的当前需求;但是响应于第一应用202利用所分配的GPU资源完成了相关联的操作,而使第一应用202在一个时间段内休眠,该时间段的长度与所使用的GPU资源量超出预定限额的差值正相关,即所使用的GPU资源量超出预定限额越多,第一应用202休眠的时间就越长。这样,在确保第一应用202继续运行的同时,可以实现各应用202、204、206对GPU资源的公平使用。
在本公开的另一个实施例中,响应于第一应用202将要使用的GPU资源的总量接近或超出与第一应用202相关联的预定限额,服务器驱动216所采取的策略是,挂起第一应用202,直到第一应用202释放了其已经使用的GPU资源的一部分为止。
以上描述的是在服务器侧对GPU资源的服务质量(QoS)进行控制。在本公开的另一实施例中,可以在客户端侧对GPU资源的QoS进行控制。例如客户端驱动208、210、212中的每一个可以获得服务器214处的GPU 220、222、224和226的使用率。响应于使用率在一段时间内一直超出一个阈值,客户端驱动208、210、212可以将拦截的与GPU有关的请求存放到队列中,而不是立即发送给服务器214,从而减轻服务器214处的压力。
还可以在服务器侧和客户端侧两者处协调地实现对GPU资源的QoS控制。下面结合图3来描述这种控制方式。图3示出了根据本公开实施例的架构300的示意图。架构300包括第一应用302、第二应用304、第三应用306以及服务器314。第一应用302设置有队列308,第二应用设置有队列310,并且第三应用设置有队列312。
服务器314包括资源监测模块316以及多个GPU 318、320、322、324。在该架构300下,客户端侧初始不采取任何控制措施,因此第一应用302、第二应用304、第三应用306可以持续地向服务器314发送请求。资源监测模块316可以检测GPU 318、320、322、324的使用率。响应于GPU 318、320、322、324的使用率在一段时间内一直超出一个阈值,资源监测模块316可以向第一应用302、第二应用304和第三应用306中的优先级较低的应用发送信号,以指示该应用延迟发送针对GPU资源的后续请求。该应用可以响应于接收到该信号而将后续请求存放到相应的队列中。在一个实施例中,资源监测模块316可以向所有的应用302、304、306发送这种信号,以指示它们延迟发送针对GPU资源的后续请求。
在架构300中,替代图2中的服务器驱动216,可以使用资源监测模块316可以实现上文描述的功能。例如,资源监测模块316可以从第一应用302接收针对GPU资源的请求,基于该请求确定第一应用302将会占用的GPU资源的总量,并响应于第一应用302将会占用的GPU资源的总量超出与第一应用302相关联的预定限额,而采取相应的策略。
在图3所示的架构300中,客户端侧和服务器侧协同地参与GPU资源的管理,使得对GPU资源的服务质量(QoS)控制分散在服务器侧和客户端侧两者上,从而减轻了服务器侧的负担,避免了服务器过载。
图4示出了根据本公开的实施例的管理资源的方法400的流程图。方法400可以由图2中所示的服务器驱动216或图3中所示的资源监测模块316来执行。
在框402中,接收来自应用的针对第一量的专用处理单元资源的请求,该应用具有已分配的优先级。在本公开的一个实施例中,应用的优先级与开发该应用的租户的服务等级协议相关联,服务等级协议越高,优先级也就越高。专用处理单元资源可以包括GPU的存储资源或者诸如FPGA之类的加速器的存储资源。
在框404中,基于请求确定应用将会占用的专用处理单元资源的总量。在本公开的一个实施例中,基于所请求的资源量与应用在专用处理单元中已经占用的资源量来确定所述总量。
在框406中,响应于所确定的总量接近或超出与优先级相关联的预定限额,为应用分配第一量的通用处理单元资源。在本公开的一个实施例中,与优先级相关联的预定限额由开发应用的租户设置,并且预定限额的指示是提前从应用处接收的。例如,应用在初次启动时,可以经由具有预定义格式的请求来向服务器发送预定限额的指示。
在本公开的一个实施例中,专用处理单元资源可以包括GPU的存储资源,通用处理单元资源可以包括CPU的存储资源。专用处理单元资源和通用处理单元资源可以借助于一个共享指针而统一编址。为应用分配第一量的通用处理单元资源可以包括设置共享指针指向所分配的通用处理单元资源,并且向应用返回指针的信息。
在方法400中,预定限额与应用的已分配的优先级相关联,能够确保较高优先级的应用比较低优先级的应用获得更多的专用处理单元资源,例如GPU存储资源,使得低优先级的应用对高优先级的应用的影响较小。另一方面,如果针对专用处理单元资源的请求导致应用将会占用的总资源量接近或超出预定限额,则在通用处理单元中为应用分配所需的资源量,这确保了应用能够继续运行,同时满足限额要求。
在本公开的一个优选实施例中,方法400还可以包括可选框408、410、412和414。在框408中,检测专用处理单元的资源的使用率。在框410中,响应于使用率超出预定阈值,例如使用率在一段时间内一直超出预定阈值,向应用发送信号以指示应用延迟发送针对专用处理单元的资源的下一请求。以这种方式,客户端侧也参与专用处理单元的资源的管理,使得对专用处理单元的资源的服务质量的控制分散在服务器侧和客户端侧两者上,从而减轻服务器侧的负担,避免服务器过载。
在框412,响应于应用释放了已经占用的专用处理单元资源的一部分,来确定应用在释放后占用的专用处理单元资源的总量是否低于预定限额达阈值差异。例如,确定应用在释放后占用的专用处理资源的总量是否比预定限额至少低10%或其他任何适当的数值。
在框414,响应于应用在释放后占用的专用处理单元资源的总量低于预定限额达阈值差异,将占用已分配的通用处理单元资源的数据的至少一部分迁移到专用处理单元资源。随着应用释放所占用的专用处理单元资源的一部分,专用处理单元处的资源压力得以减轻,而将占用通用处理单元资源的数据的至少一部分迁移到专用处理单元资源处,从而能够确保应用所访问或处理的数据能够处于专用处理单元本地,进而加快了数据的处理速度。
通过两个客户端在共享的GPU上同时执行矩阵乘法运算,对本公开中提供的方案进行了测试。两个客户端中的第一客户端的服务等级协议(即优先级)高于第二客户端的服务等级协议。在不采用本公开提供的方案的情况下,第一客户端完成矩阵乘法运算的时间为177.377毫秒,第二客户端完成矩阵乘法运算的时间为177.352毫秒,两者几乎无差别。
在采用本公开提供的方案的情况下,由于第一客户端的优先级高于第二客户端,所以第一客户端的预定限额高于第二客户端的预定限额。第一客户端完成矩阵乘法运算的时间为177.954,第二客户端完成矩阵乘法运算的时间为360.856,两者差别较大,从而实现了为不同优先级的客户端提供不同的服务质量(QoS)。
图5示出了可以用来实施本公开的实施例的示例设备500的示意性框图。如图所示,设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元501执行上文所描述的各个方法和处理,例如方法400。例如,在一些实施例中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由CPU 501执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其他实施例中,CPU 501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法400。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (18)
1.一种用于管理资源的方法,包括:
接收来自应用的针对第一量的专用处理单元资源的请求,所述应用具有已分配的优先级;
基于所述请求确定所述应用将会占用的所述专用处理单元资源的总量;以及
响应于所述总量接近或超出与所述优先级相关联的预定限额,为所述应用分配所述第一量的通用处理单元资源。
2.根据权利要求1所述的方法,其中所述专用处理单元资源包括图形处理单元(GPU)的存储资源,并且所述通用处理单元资源包括中央处理单元(CPU)的存储资源。
3.根据权利要求2所述的方法,其中所述专用处理单元资源和所述通用处理单元资源借助于共享指针而统一编址,并且分配所述第一量的通用处理单元资源包括:
设置所述共享指针指向为所述应用分配的所述第一量的通用处理单元资源;以及
向所述应用返回所述指针的信息。
4.根据权利要求1所述的方法,还包括:
响应于所述应用释放了先前占用的所述专用处理单元资源的一部分,确定所述应用在释放后占用的所述专用处理单元资源的总量是否低于所述预定限额达到阈值差异;以及
响应于达到所述阈值差异,将占用已分配的所述通用处理单元资源的数据的至少一部分迁移到所述专用处理单元资源。
5.根据权利要求1所述的方法,还包括:
检测所述专用处理单元资源的使用率;
响应于所述使用率超出预定阈值,向所述应用发送信号以指示所述应用延迟发送针对所述专用处理单元资源的下一请求。
6.根据权利要求1所述的方法,还包括:
从所述应用接收所述预定限额的指示。
7.一种服务器系统,包括:
专用处理单元;
通用处理单元;以及
控制器,所述控制器被配置为:
接收来自应用的针对第一量的专用处理单元资源的请求,所述应用具有已分配的优先级;
基于所述请求确定所述应用将会占用的所述专用处理单元资源的总量;以及
响应于所述总量接近或超出与所述优先级相关联的预定限额,为所述应用分配所述第一量的通用处理单元资源。
8.根据权利要求7所述的服务器系统,其中所述专用处理单元资源包括图形处理单元(GPU)的存储资源,并且所述通用处理单元资源包括中央处理单元(CPU)的存储资源。
9.根据权利要求8所述的服务器系统,其中所述专用处理单元资源和所述通用处理单元资源借助于共享指针而统一编址,并且分配所述第一量的通用处理单元资源包括:
设置所述共享指针指向为所述应用分配的所述第一量的通用处理单元资源;以及
向所述应用返回所述指针的信息。
10.根据权利要求7所述的服务器系统,其中所述控制器还被配置为:
响应于所述应用释放了先前占用的所述专用处理单元资源的一部分,确定所述应用在释放后占用的所述专用处理单元资源的总量是否低于所述预定限额达到阈值差异;以及
响应于达到所述阈值差异,将占用已分配的所述通用处理单元资源的数据的至少一部分迁移到所述专用处理单元资源。
11.根据权利要求7所述的服务器系统,其中所述控制器还被配置为:
检测所述专用处理单元资源的使用率;
响应于所述使用率超出预定阈值,向所述应用发送信号以指示所述应用延迟发送针对所述专用处理单元资源的下一请求。
12.根据权利要求7所述的服务器系统,其中所述控制器还被配置为:
从所述应用接收所述预定限额的指示。
13.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行一种用于管理资源的方法,所述方法包括:
接收来自应用的针对第一量的专用处理单元资源的请求,所述应用具有已分配的优先级;
基于所述请求确定所述应用将会占用的所述专用处理单元资源的总量;
响应于所述总量接近或超出与所述优先级相关联的预定限额,为所述应用分配所述第一量的通用处理单元资源。
14.根据权利要求13所述的计算机程序产品,其中所述专用处理单元资源包括图形处理单元(GPU)的存储资源,并且所述通用处理单元资源包括中央处理单元(CPU)的存储资源。
15.根据权利要求13所述的计算机程序产品,其中所述专用处理单元资源和所述通用处理单元资源借助于共享指针而统一编址,并且分配所述第一量的通用处理单元资源包括:
设置所述共享指针指向为所述应用分配的所述第一量的通用处理单元资源;以及
向所述应用返回所述指针的信息。
16.根据权利要求13所述的计算机程序产品,其中所述方法还包括:
响应于所述应用释放了先前占用的所述专用处理单元资源的一部分,确定所述应用在释放后占用的所述专用处理单元资源的总量是否低于所述预定限额达到阈值差异;以及
响应于达到所述阈值差异,将占用已分配的所述通用处理单元资源的数据的至少一部分迁移到所述专用处理单元资源。
17.根据权利要求13所述的计算机程序产品,其中所述方法还包括:
检测所述专用处理单元资源的使用率;
响应于所述使用率超出预定阈值,向所述应用发送信号以指示所述应用延迟发送针对所述专用处理单元资源的下一请求。
18.根据权利要求13所述的计算机程序产品,其中所述方法还包括:
从所述应用接收所述预定限额的指示。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711029488.0A CN109726005B (zh) | 2017-10-27 | 2017-10-27 | 用于管理资源的方法、服务器系统和计算机可读介质 |
US16/166,543 US10897428B2 (en) | 2017-10-27 | 2018-10-22 | Method, server system and computer program product for managing resources |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711029488.0A CN109726005B (zh) | 2017-10-27 | 2017-10-27 | 用于管理资源的方法、服务器系统和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726005A true CN109726005A (zh) | 2019-05-07 |
CN109726005B CN109726005B (zh) | 2023-02-28 |
Family
ID=66244920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711029488.0A Active CN109726005B (zh) | 2017-10-27 | 2017-10-27 | 用于管理资源的方法、服务器系统和计算机可读介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10897428B2 (zh) |
CN (1) | CN109726005B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821324A (zh) * | 2021-09-17 | 2021-12-21 | 海光信息技术股份有限公司 | 处理器的高速缓存系统、方法、设备和计算机介质 |
CN114356547A (zh) * | 2021-12-07 | 2022-04-15 | 北京百度网讯科技有限公司 | 基于处理器虚拟化环境的低优阻塞方法及装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445850B2 (en) * | 2015-08-26 | 2019-10-15 | Intel Corporation | Technologies for offloading network packet processing to a GPU |
US10990447B1 (en) * | 2018-07-12 | 2021-04-27 | Lightbits Labs Ltd. | System and method for controlling a flow of storage access requests |
US11282160B2 (en) | 2020-03-12 | 2022-03-22 | Cisco Technology, Inc. | Function-as-a-service (FaaS) model for specialized processing units |
CN111796934B (zh) * | 2020-06-28 | 2023-11-21 | 北京小米松果电子有限公司 | 任务下发方法、装置、存储介质和电子设备 |
CN112035220A (zh) * | 2020-09-30 | 2020-12-04 | 北京百度网讯科技有限公司 | 开发机操作任务的处理方法、装置、设备以及存储介质 |
CN113778669A (zh) * | 2021-06-29 | 2021-12-10 | 北京小米移动软件有限公司 | 系统资源分配方法、系统资源分配装置及存储介质 |
WO2023225986A1 (en) * | 2022-05-27 | 2023-11-30 | Microsoft Technology Licensing, Llc | Cloud resources allocation optimization |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7185192B1 (en) * | 2000-07-07 | 2007-02-27 | Emc Corporation | Methods and apparatus for controlling access to a resource |
US8024736B1 (en) * | 2005-01-28 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | System for controlling a distribution of unutilized computer resources |
CN103106043A (zh) * | 2011-06-29 | 2013-05-15 | 国际商业机器公司 | 用于管理存储服务器的资源的方法和计算机系统 |
CN102959504B (zh) * | 2011-03-29 | 2014-12-03 | 英特尔公司 | 促进异构平台中共享指针的方法和装置 |
CN105094983A (zh) * | 2014-04-30 | 2015-11-25 | 华为技术有限公司 | 计算机,控制设备和数据处理方法 |
US20160239391A1 (en) * | 2014-01-31 | 2016-08-18 | Hitachi, Ltd. | Management computer and management program |
JP2017027367A (ja) * | 2015-07-22 | 2017-02-02 | キヤノン株式会社 | 画像形成装置、リソース管理装置、リソース管理方法、画像形成装置およびプログラム |
WO2017034731A1 (en) * | 2015-08-26 | 2017-03-02 | Intel Corporation | Technologies for offloading network packet processing to a gpu |
CN106776038A (zh) * | 2016-12-30 | 2017-05-31 | 广东欧珀移动通信有限公司 | 一种热门应用资源分配方法及移动终端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7868891B2 (en) * | 2004-09-16 | 2011-01-11 | Nvidia Corporation | Load balancing |
KR101467558B1 (ko) * | 2007-07-26 | 2014-12-01 | 엘지전자 주식회사 | 그래픽데이터 처리 장치 및 방법 |
US8669990B2 (en) * | 2009-12-31 | 2014-03-11 | Intel Corporation | Sharing resources between a CPU and GPU |
US8830245B2 (en) * | 2010-12-14 | 2014-09-09 | Amazon Technologies, Inc. | Load balancing between general purpose processors and graphics processors |
US9830677B2 (en) * | 2016-03-03 | 2017-11-28 | International Business Machines Corporation | Graphics processing unit resource sharing |
-
2017
- 2017-10-27 CN CN201711029488.0A patent/CN109726005B/zh active Active
-
2018
- 2018-10-22 US US16/166,543 patent/US10897428B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7185192B1 (en) * | 2000-07-07 | 2007-02-27 | Emc Corporation | Methods and apparatus for controlling access to a resource |
US8024736B1 (en) * | 2005-01-28 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | System for controlling a distribution of unutilized computer resources |
CN102959504B (zh) * | 2011-03-29 | 2014-12-03 | 英特尔公司 | 促进异构平台中共享指针的方法和装置 |
CN103106043A (zh) * | 2011-06-29 | 2013-05-15 | 国际商业机器公司 | 用于管理存储服务器的资源的方法和计算机系统 |
US20160239391A1 (en) * | 2014-01-31 | 2016-08-18 | Hitachi, Ltd. | Management computer and management program |
CN105094983A (zh) * | 2014-04-30 | 2015-11-25 | 华为技术有限公司 | 计算机,控制设备和数据处理方法 |
JP2017027367A (ja) * | 2015-07-22 | 2017-02-02 | キヤノン株式会社 | 画像形成装置、リソース管理装置、リソース管理方法、画像形成装置およびプログラム |
WO2017034731A1 (en) * | 2015-08-26 | 2017-03-02 | Intel Corporation | Technologies for offloading network packet processing to a gpu |
CN106776038A (zh) * | 2016-12-30 | 2017-05-31 | 广东欧珀移动通信有限公司 | 一种热门应用资源分配方法及移动终端 |
Non-Patent Citations (2)
Title |
---|
吴恩华等: "基于图形处理器(GPU)的通用计算", 《计算机辅助设计与图形学学报》 * |
孙成刚等: "基于 GPU 的高性能并行计算应用", 《电子信息对抗技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821324A (zh) * | 2021-09-17 | 2021-12-21 | 海光信息技术股份有限公司 | 处理器的高速缓存系统、方法、设备和计算机介质 |
CN113821324B (zh) * | 2021-09-17 | 2022-08-09 | 海光信息技术股份有限公司 | 处理器的高速缓存系统、方法、设备和计算机介质 |
CN114356547A (zh) * | 2021-12-07 | 2022-04-15 | 北京百度网讯科技有限公司 | 基于处理器虚拟化环境的低优阻塞方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US10897428B2 (en) | 2021-01-19 |
US20190132257A1 (en) | 2019-05-02 |
CN109726005B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726005A (zh) | 用于管理资源的方法、服务器系统和计算机程序产品 | |
US11934864B1 (en) | System and method for controlled sharing of consumable resources in a computer cluster | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
US10572290B2 (en) | Method and apparatus for allocating a physical resource to a virtual machine | |
JP5510556B2 (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
US8863138B2 (en) | Application service performance in cloud computing | |
JP7174764B2 (ja) | リソーススケジューリング方法、機器、システム、ならびにセンタサーバ | |
CN105242957A (zh) | 一种云计算系统调配gpu资源到虚拟机的方法及系统 | |
US20100274890A1 (en) | Methods and apparatus to get feedback information in virtual environment for server load balancing | |
CN108139935A (zh) | 业务定义容器的资源约束的扩展 | |
CN109729113A (zh) | 管理专用处理资源的方法、服务器系统和计算机程序产品 | |
CN104521198A (zh) | 用于虚拟以太网接口绑定的系统和方法 | |
KR20150024845A (ko) | 물리적 큐들로의 가상 머신 플로우들의 오프로딩 기법 | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
WO2018157768A1 (zh) | 调度运行设备的方法、设备和运行设备 | |
US9292466B1 (en) | Traffic control for prioritized virtual machines | |
CN110998530A (zh) | 一种虚拟机资源分配系统、方法及计算机程序 | |
Liu et al. | Deadline guaranteed service for multi-tenant cloud storage | |
KR102064466B1 (ko) | 가상화 시스템에서의 가상 데스크톱을 할당하는 방법 및 그 가상화 시스템 | |
Berwal et al. | Load Balancing in cloud computing | |
KR102025425B1 (ko) | 가상 네트워크 기능 배치를 위한 네트워크 장치 및 그 방법 | |
US20140019623A1 (en) | Virtual server system, management server device, and system managing method | |
KR20150108167A (ko) | 부하 분산 장치 및 그 방법 | |
Altayeb et al. | Analysis of load balancing algorithms implementation on cloud computing environment | |
Patel et al. | Task Execution Efficiency Enrichment in Cloud Based Load Balancing Approaches |
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 |