CN111400051B - 一种资源调度方法、装置及系统 - Google Patents
一种资源调度方法、装置及系统 Download PDFInfo
- Publication number
- CN111400051B CN111400051B CN202010247515.7A CN202010247515A CN111400051B CN 111400051 B CN111400051 B CN 111400051B CN 202010247515 A CN202010247515 A CN 202010247515A CN 111400051 B CN111400051 B CN 111400051B
- Authority
- CN
- China
- Prior art keywords
- gpu
- resource
- server
- identifier
- service
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012544 monitoring process Methods 0.000 claims description 52
- 230000003247 decreasing effect Effects 0.000 claims 2
- 238000013473 artificial intelligence Methods 0.000 description 69
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种资源调度方法、装置及系统,涉及计算机技术领域。本发明通过接收客户端发送的资源获取请求,根据资源获取请求,按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及目标服务器中的目标GPU对应的第二标识,将第一标识和第二标识发送至客户端,以使客户端根据第一标识和第二标识,启动目标服务器中的目标GPU执行客户端发送的服务请求对应的应用服务。当客户端需要发起AI服务请求时,首先要按照预设的资源调度策略为该AI服务请求分配GPU,提高每个GPU的使用效率,并且使得每个GPU能够高效、可靠的执行AI服务。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种资源调度方法、装置及系统。
背景技术
近年来,AI(Artificial Intelligence,人工智能)技术得以快速发展和成熟,逐渐被应用到零售、医疗、教育等行业中,AI技术主要依赖于服务器中的CPU(GraphicProcessing Unit,图形处理器)作为执行AI服务的主要资源。
目前,是将GPU与具体的AI服务绑定,当客户端发起AI服务请求时,直接调动绑定的GPU执行该AI服务请求对应的AI服务。
但是,目前绑定GPU与AI服务的方法,当AI服务的种类较多时,随着AI服务访问的不均衡性,将会导致访问量少的AI服务绑定的GPU的使用率低,而访问量多的AI服务绑定的GPU将会出现GPU资源不足的情况。
发明内容
本发明提供一种资源调度方法、装置及系统,以解决现有的绑定GPU与AI服务的方法,会导致访问量少的AI服务绑定的GPU的使用率低,而访问量多的AI服务绑定的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执行客户端发送的服务请求对应的应用服务。当客户端需要发起AI服务请求时,首先要按照预设的资源调度策略为该AI服务请求分配GPU,当AI服务的种类较多时,即使AI服务访问不均衡,也会合理的为每个AI服务请求分配GPU,避免因GPU与AI服务绑定,导致访问量少的AI服务绑定的GPU的使用率低,而访问量多的AI服务绑定的GPU将会出现GPU资源不足的情况,提高每个GPU的使用效率,并且使得每个GPU能够高效、可靠的执行AI服务。
附图说明
图1示出了本发明实施例的一种资源调度方法的流程图;
图2示出了本发明实施例的一种资源调度方法的交互图;
图3示出了本发明实施例的一种资源调度方法的具体流程图;
图4示出了本发明实施例的一种资源调度装置的结构框图;
图5示出了本发明实施例的一种资源调度系统的结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,示出了本发明实施例的一种资源调度方法的流程图,具体可以包括如下步骤:
步骤101,接收客户端发送的资源获取请求。
在本发明实施例中,用户在客户端中触发相应的应用服务,如AI服务,则客户端发送资源获取请求至资源调度装置,如图2所示,资源调度装置接收客户端发送的资源获取请求。
需要说明的是,本发明实施例中的客户端可以是浏览器,例如电脑中的浏览器或手机中的浏览器,当然,还可以是其他包括页面的应用,本发明实施例不对其加以限制。
步骤102,根据所述资源获取请求,按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及所述目标服务器中的目标GPU对应的第二标识。
在本发明实施例中,预先在资源调度装置中存储有资源管理列表,如图2所示,资源调度装置在接收到客户端发送的资源获取请求后,根据资源获取请求,按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及目标服务器中的目标GPU对应的第二标识,也就是从资源管理列表中,确定需要执行用户在客户端触发的应用服务的服务器对应的服务器标识和GPU对应的GPU标识。
其中,资源管理列表包括多个服务器对应的服务器标识,每个服务器中的多个GPU对应的GPU标识,以及每个GPU的资源使用情况,资源使用情况包括执行的应用服务对应的服务类型和服务数量。资源管理列表具体如下表一所示:
表一
如上表一所示,资源管理列表包括服务器标识A1和服务器标识A2,每个服务器包括多个GPU,服务器标识A1对应的服务器包括3个GPU,其对应的GPU标识分别为GPU标识A10、GPU标识A11和GPU标识A12,服务器标识A2对应的服务器包括3个GPU,其对应的GPU标识分别为GPU标识A20、GPU标识A21和GPU标识A22。当前在GPU标识A10对应的GPU上执行的应用服务对应的服务类型为AI服务B1,其对应的服务数量为1个;当前在GPU标识A11对应的GPU上执行的应用服务对应的服务类型为AI服务B2,其对应的服务数量为2个;当前在GPU标识A12对应的GPU上执行的应用服务对应的服务数量为0个,即GPU标识A12对应的GPU处于空闲状态;当前在GPU标识A20对应的GPU上执行的应用服务对应的服务类型为AI服务B1,其对应的服务数量为2个;当前在GPU标识A21对应的GPU上执行的应用服务对应的服务类型为AI服务B3,其对应的服务数量为2个;当前在GPU标识A22对应的GPU上执行的应用服务对应的服务数量为0个,即GPU标识A22对应的GPU处于空闲状态。
需要说明的是,上表一仅示出了两个服务器组成的服务器集群对应的资源管理列表,在实际应用中,服务器集群中的服务器数量不局限于两个,还可以为10个、20个等。
此外,本发明实施例中的每个GPU执行一种服务类型对应的应用服务,以提高GPU的运行效率,并且,每个GPU执行的应用服务对应的服务数量可以为多个。
步骤103,将所述第一标识和所述第二标识发送至所述客户端,以使所述客户端根据所述第一标识和所述第二标识,启动所述目标服务器中的所述目标GPU执行所述客户端发送的服务请求对应的应用服务。
在本发明实施例中,在确定了目标服务器对应的第一标识以及目标服务器中的目标GPU对应的第二标识之后,如图2所示,将第一标识和第二标识发送至客户端,客户端在接收到第一标识和第二标识之后,根据第一标识和第二标识向目标服务器中的目标GPU发送服务请求。
具体的,客户端是基于URL(Uniform Resource Locator,统一资源定位符)向目标服务器中的目标GPU发送服务请求的。
如图2所示,目标服务器中的目标GPU在接收到客户端发送的服务请求后,执行客户端发送的服务请求对应的应用服务,并在执行完成客户端发送的服务请求对应的应用服务之后,向客户端发送执行完成应用服务后得到的执行结果。
其中,应用服务可以为AI服务,是在GPU上利用GPU资源执行该AI服务的,AI服务通常为与图像处理相关的应用服务,如图片识别、图片拉伸等;当然,可以理解的是,本发明实施例中的应用服务不局限于AI服务,在GPU上可以执行的应用服务都适用。
在本发明一种可选的实施方式中,在步骤102之前,还包括步骤S11和步骤S12:
步骤S11,接收服务器发送的每个GPU的资源使用情况;
步骤S12,根据所述资源使用情况,更新所述资源管理列表。
由于本发明实施例是按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及目标服务器中的目标GPU对应的第二标识,因此,在步骤102之前,需要预先确定资源管理列表。
首先,服务器将每个GPU的资源使用情况发送至资源调度装置,资源调度装置在接收到服务器发送的每个GPU的资源使用情况之后,根据每个GPU的资源使用情况,更新资源调度装置中的资源管理列表。
进一步的,服务器包括监控代理模块,步骤S11具体可以包括子步骤S111:
子步骤S111,接收所述服务器中的所述监控代理模块在所述GPU的资源使用情况发生变更时发送的所述GPU的资源使用情况;其中,所述监控代理模块实时监控每个所述GPU的资源使用情况。
在本发明实施例中,在服务器中设置监控代理模块,服务器中的监控代理模块实时监控每个GPU的资源使用情况,当服务器中的监控代理模块监控到某个GPU的资源使用情况发生变更时,服务器中的监控代理模块将这个GPU的资源使用情况发送至资源调度装置,则资源调度装置接收服务器中的监控代理模块在GPU的资源使用情况发生变更时发送的GPU的资源使用情况,资源调度装置根据这个GPU的资源使用情况更新资源管理列表。
其中,GPU的资源使用情况发生变更具体指的是,GPU执行的应用服务对应的服务数量增加或减小时的情况,如GPU需要执行的应用服务对应的服务数量增加,或者GPU执行的某一应用服务结束。
当GPU需要执行的应用服务对应的服务数量从N变为N+1时,GPU的资源使用情况发生变化;当GPU执行的某一应用服务结束时,GPU需要执行的应用服务对应的服务数量从M+1变为M时,GPU的资源使用情况也发生变化。
因此,目标服务器中的目标GPU在接收到客户端发送的服务请求,并执行客户端发送的服务请求对应的应用服务时,此时,目标GPU需要执行的应用服务对应的服务数量增加。如图2所示,由于服务器中的监控代理模块实时监控目标GPU的资源使用情况,当监控代理模块监控到目标GPU开始执行客户端发送的服务请求对应的应用服务时,服务器中的监控代理模块将目标GPU的资源使用情况发送至资源调度装置,资源调度装置根据目标GPU的资源使用情况,更新资源管理列表。
并且,目标服务器中的目标GPU在执行完成客户端发送的服务请求对应的应用服务,并向客户端发送执行完成应用服务后得到的执行结果时,此时,目标GPU需要执行的应用服务对应的服务数量减小。如图2所示,由于服务器中的监控代理模块实时监控目标GPU的资源使用情况,当监控代理模块监控到目标GPU执行完成客户端发送的服务请求对应的应用服务时,服务器中的监控代理模块将目标GPU的资源使用情况发送至资源调度装置,资源调度装置根据目标GPU的资源使用情况,更新资源管理列表。
例如,如上表一所示,GPU标识A10对应的GPU为目标GPU,当监控代理模块监控到目标GPU开始执行客户端发送的服务请求对应的应用服务时,则确定目标GPU的资源使用情况发生变化,目标GPU执行的应用服务对应的服务数量增加了一个,若资源管理列表中GPU标识A10对应的GPU原本执行的应用服务对应的服务数量为1个,则将资源管理列表中GPU标识A10对应的GPU执行的应用服务对应的服务数量更新为2个;当监控代理模块监控到目标GPU执行完成客户端发送的服务请求对应的应用服务时,则确定目标GPU的资源使用情况发生变化,目标GPU执行的应用服务对应的服务数量减少了一个,若资源管理列表中GPU标识A10对应的GPU原本执行的应用服务对应的服务数量为2个,则将资源管理列表中GPU标识A10对应的GPU执行的应用服务对应的服务数量更新为1个。
通过在服务器中设置监控代理模块,以监控该服务器中包括的所有GPU的资源使用情况,并在GPU的资源使用情况发生变更时,发送GPU的资源使用情况至资源调度装置,以降低资源调度装置的运行复杂度,提高资源调度装置的可靠性。
若不在服务器中设置监控代理模块,服务器也可以将所有GPU的资源使用情况发送至资源调度装置,但是,由于服务器需要实时监控每个GPU的资源使用情况,并将每个GPU的资源使用情况都实时发送至资源调度装置,使得资源调度装置需要处理的资源使用情况的数据量大幅度增加,则会导致资源调度装置的运行复杂。因此,通过在服务器中设置监控代理模块,可以降低资源调度装置的运行复杂度,提高资源调度装置的可靠性。
需要说明的是,服务器中的监控代理模块还可以监控每个GPU的异常使用情况等。
在步骤S11之前,还包括步骤S13和步骤S14:
步骤S13,接收所述服务器中的所述监控代理模块发送的所述多个服务器对应的服务器标识以及每个所述服务器中的多个GPU对应的GPU标识;
步骤S14,根据所述服务器标识和所述GPU标识,对所述服务器和所述GPU进行注册。
为了实现资源调度装置可以采集每个GPU的资源使用情况,服务器中的监控代理模块需要获取多个服务器对应的服务器标识以及每个服务器中的多个GPU对应的GPU标识,将每个服务器标识和每个GPU标识都发送至资源调度装置,资源调度装置接收监控代理模块发送的服务器标识和GPU标识,根据该服务器标识和该GPU标识,对每个服务器和每个GPU进行注册,以实现后续对每个GPU的资源使用情况的采集。
在本发明实施例中,当客户端需要发起AI服务请求时,首先要按照预设的资源调度策略为该AI服务请求分配GPU,当AI服务的种类较多时,即使AI服务访问不均衡,也会合理的为每个AI服务请求分配GPU,避免因GPU与AI服务绑定,导致访问量少的AI服务绑定的GPU的使用率低,而访问量多的AI服务绑定的GPU将会出现GPU资源不足的情况,提高每个GPU的使用效率,并且使得每个GPU能够高效、可靠的执行AI服务。
实施例二
参照图3,示出了本发明实施例的一种资源调度方法的具体流程图,具体可以包括如下步骤:
步骤301,接收客户端发送的资源获取请求。
此步骤与上述实施例一中的步骤101原理类似,在此不在赘述。
步骤302,确定所述资源管理列表中是否存在,当前执行的应用服务对应的服务类型为所述目标服务类型的GPU对应的GPU标识。
在本发明实施例中,客户端发送的资源获取请求中包括需要执行的应用服务对应的目标服务类型,在接收到客户端发送的资源获取请求后,判断资源管理列表中是否存在,当前执行的应用服务对应的服务类型为目标服务类型的GPU对应的GPU标识,也就是判断各个GPU中当前执行的应用服务对应的服务类型是否包含目标服务类型。
其中,资源管理列表包括多个服务器对应的服务器标识,每个服务器中的多个GPU对应的GPU标识,以及每个GPU的资源使用情况,资源使用情况包括执行的应用服务对应的服务类型和服务数量。
例如,目标服务类型为AI服务B1,上表一中的GPU标识A10对应的GPU上执行的应用服务对应的服务类型为目标服务类型,上表一中的GPU标识A20对应的GPU上执行的应用服务对应的服务类型也为目标服务类型,即确定资源管理列表中存在当前执行的应用服务对应的服务类型为目标服务类型的GPU对应的GPU标识,其分别为GPU标识A10和GPU标识A20。
步骤303,当存在时,从执行所述目标服务类型的GPU对应的GPU标识中,选取执行的服务数量最少的GPU对应的GPU标识作为所述第二标识。
在本发明实施例中,当资源管理列表中存在当前执行的应用服务对应的服务类型为目标服务类型的GPU对应的GPU标识时,从执行的目标服务类型的GPU对应的GPU标识中,选取执行的服务数量最少的GPU对应的GPU标识,并将执行的服务数量最少的GPU对应的GPU标识确定为第二标识,则执行的服务类型为目标服务类型,且执行的服务数量最少的GPU为目标GPU。
例如,目标服务类型为AI服务B1,上表一中的GPU标识A10对应的GPU上执行的应用服务对应的服务类型为目标服务类型,上表一中的GPU标识A20对应的GPU上执行的应用服务对应的服务类型也为目标服务类型,并且,GPU标识A10对应的GPU上执行的应用服务对应的服务数量为1个,GPU标识A20对应的GPU上执行的应用服务对应的服务数量为2个,则将GPU标识A10作为第二标识。
步骤304,当不存在时,从所述资源管理列表中选取任意一个未执行应用服务的GPU对应的GPU标识作为所述第二标识。
在本发明实施例中,资源管理列表中不存在当前执行的应用服务对应的服务类型为目标服务类型的GPU对应的GPU标识时,即服务器集群中的所有服务器中包括的GPU当前都没有执行服务类型为目标服务类型的应用服务,则从资源管理列表中选取任意一个未执行应用服务的GPU对应的GPU标识作为第二标识,则第二标识对应的GPU为目标GPU。
例如,目标服务类型为AI服务B4,上表一中的各个GPU当前执行的应用服务对应的服务类型分别为AI服务B1、AI服务B2和AI服务B3,则确定资源管理列表中不存在当前执行的应用服务对应的服务类型为目标服务类型的GPU对应的GPU标识,则任意选取一个未执行应用服务的GPU对应的GPU标识作为第二标识,如选取GPU标识A22作为第二标识,GPU标识A22对应的GPU为目标GPU。
步骤305,将所述第二标识对应的服务器标识,确定为所述第一标识。
在本发明实施例中,在步骤303或步骤304中确定了第二标识之后,第二标识对应的GPU为目标GPU,将目标GPU所属的服务器确定为目标服务器,然后将目标服务器对应的服务器标识确定为第一标识,即将第二标识对应的服务器标识确定为第一标识。
例如,GPU标识A10为第二标识,则第一标识为服务器标识A1;若GPU标识A22为第二标识,则第一标识为服务器标识A2。
步骤306,将所述第一标识和所述第二标识发送至所述客户端,以使所述客户端根据所述第一标识和所述第二标识,启动所述目标服务器中的所述目标GPU执行所述客户端发送的服务请求对应的应用服务。
此步骤与上述实施例一中的步骤103原理类似,在此不在赘述。
在本发明实施例中,当客户端需要发起AI服务请求时,首先确定资源管理列表中是否存在,当前执行的应用服务对应的服务类型为目标服务类型的GPU对应的GPU标识,当存在时,从执行目标服务类型的GPU对应的GPU标识中,选取执行的服务数量最少的GPU对应的GPU标识作为第二标识,当不存在时,从资源管理列表中选取任意一个未执行应用服务的GPU对应的GPU标识作为第二标识,然后再将第二标识对应的服务器标识确定为第一标识,根据第一标识和第二标识为该AI服务请求分配GPU,当AI服务的种类较多时,即使AI服务访问不均衡,也会合理的为每个AI服务请求分配GPU,避免因GPU与AI服务绑定,导致访问量少的AI服务绑定的GPU的使用率低,而访问量多的AI服务绑定的GPU将会出现GPU资源不足的情况,提高每个GPU的使用效率,并且使得每个GPU能够高效、可靠的执行AI服务。
实施例三
参照图4,示出了本发明实施例的一种资源调度装置的结构框图。
该资源调度装置400包括:
资源获取请求接收模块401,被配置为接收客户端发送的资源获取请求;
标识确定模块402,被配置为根据所述资源获取请求,按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及所述目标服务器中的目标GPU对应的第二标识;
标识发送模块403,被配置为将所述第一标识和所述第二标识发送至所述客户端,以使所述客户端根据所述第一标识和所述第二标识,启动所述目标服务器中的所述目标GPU执行所述客户端发送的服务请求对应的应用服务。
可选的,所述资源管理列表包括多个服务器对应的服务器标识,每个所述服务器中的多个GPU对应的GPU标识,以及每个所述GPU的资源使用情况,所述资源使用情况包括执行的应用服务对应的服务类型和服务数量。
可选的,所述资源获取请求包括目标服务类型;所述标识确定模块402,包括:
GPU标识确定子模块,被配置为确定所述资源管理列表中是否存在,当前执行的应用服务对应的服务类型为所述目标服务类型的GPU对应的GPU标识;
第二标识第一确定子模块,被配置为当存在时,从执行所述目标服务类型的GPU对应的GPU标识中,选取执行的服务数量最少的GPU对应的GPU标识作为所述第二标识;
第一标识第一确定子模块,被配置为将所述第二标识对应的服务器标识,确定为所述第一标识。
可选的,所述资源调度装置400,还包括:
第二标识第二确定子模块,被配置为当不存在时,从所述资源管理列表中选取任意一个未执行应用服务的GPU对应的GPU标识作为所述第二标识;
第一标识第二确定子模块,被配置为将所述第二标识对应的服务器标识,确定为所述第一标识。
可选的,所述资源调度装置400,还包括:
资源使用情况接收模块,被配置为接收服务器发送的每个GPU的资源使用情况;
资源管理列表更新模块,被配置为根据所述资源使用情况,更新所述资源管理列表。
可选的,所述服务器包括监控代理模块;所述资源使用情况接收模块,包括:
资源使用情况接收子模块,被配置为接收所述服务器中的所述监控代理模块在所述GPU的资源使用情况发生变更时发送的所述GPU的资源使用情况;
其中,所述监控代理模块实时监控每个所述GPU的资源使用情况。
可选的,所述资源调度装置400,还包括:
标识接收模块,被配置为接收所述服务器中的所述监控代理模块发送的所述多个服务器对应的服务器标识以及每个所述服务器中的多个GPU对应的GPU标识;
注册模块,被配置为根据所述服务器标识和所述GPU标识,对所述服务器和所述GPU进行注册。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本发明实施例中,当客户端需要发起AI服务请求时,首先要按照预设的资源调度策略为该AI服务请求分配GPU,当AI服务的种类较多时,即使AI服务访问不均衡,也会合理的为每个AI服务请求分配GPU,避免因GPU与AI服务绑定,导致访问量少的AI服务绑定的GPU的使用率低,而访问量多的AI服务绑定的GPU将会出现GPU资源不足的情况,提高每个GPU的使用效率,并且使得每个GPU能够高效、可靠的执行AI服务。
实施例四
参照图5,示出了本发明实施例的一种资源调度系统的结构图。
本发明实施例还提供了一种资源调度系统,包括多个服务器以及上述的资源调度装置;服务器,被配置为发送每个GPU的资源使用情况至资源调度装置。
其中,如图5所示,服务器包括监控代理模块和多个GPU;GPU被配置为执行客户端发送的服务请求对应的应用服务,以及向客户端发送执行完成应用服务求后得到的执行结果。
监控代理模块,被配置为实时监控每个GPU的资源使用情况,以及在GPU的资源使用情况发生变更时,发送每个GPU的资源使用情况至资源调度装置;监控代理模块,还被配置为发送多个服务器对应的服务器标识以及每个服务器中的多个GPU对应的GPU标识至资源调度装置。
在本发明实施例中,服务器集群中包括的服务器数量为k个,分别为服务器1至服务器k,每个服务器都包括多个GPU,如服务器1中包括i个GPU,分别为GPU1至GPUi,如服务器k中包括j个GPU,分别为GPU1至GPUj,并且,每个服务器中都设置有监控代理模块。
每个服务器都与资源调度装置连接,监控代理模块实时监控每个GPU的资源使用情况,在GPU的资源使用情况发生变更时,发送GPU的资源使用情况至资源调度装置,资源调度装置根据每个GPU的资源使用情况,更新资源管理列表。
此外,监控代理模块还发送多个服务器对应的服务器标识以及每个服务器中的多个GPU对应的GPU标识至资源调度装置,资源调度装置根据监控代理模块发送的服务器标识和GPU标识,对服务器和GPU进行注册。
当用户在客户端中触发相应的应用服务时,客户端发送资源获取请求至资源调度装置,资源调度装置根据客户端发送的资源获取请求,按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及目标服务器中的目标GPU对应的第二标识,并将第一标识和第二标识发送至客户端,客户端再根据第一标识和第二标识向目标服务器中的目标GPU发送服务请求,目标GPU执行客户端发送的服务请求对应的应用服务,并在执行完成客户端发送的服务请求对应的应用服务之后,向客户端发送执行完成应用服务求后得到的执行结果。
在本发明实施例中,当客户端需要发起AI服务请求时,首先要按照预设的资源调度策略为该AI服务请求分配GPU,当AI服务的种类较多时,即使AI服务访问不均衡,也会合理的为每个AI服务请求分配GPU,避免因GPU与AI服务绑定,导致访问量少的AI服务绑定的GPU的使用率低,而访问量多的AI服务绑定的GPU将会出现GPU资源不足的情况,提高每个GPU的使用效率,并且使得每个GPU能够高效、可靠的执行AI服务。
相应的,本发明实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如本发明实施例一和实施例二所述的资源调度方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例一和实施例二所述的资源调度方法的步骤。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种资源调度方法、装置及系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种资源调度方法,其特征在于,包括:
接收客户端发送的资源获取请求;
根据所述资源获取请求,按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及所述目标服务器中的目标GPU对应的第二标识;所述资源管理列表包括多个服务器对应的服务器标识,每个所述服务器中的多个GPU对应的GPU标识,以及每个所述GPU的资源使用情况,所述资源使用情况包括执行的应用服务对应的服务类型和服务数量;
将所述第一标识和所述第二标识发送至所述客户端,以使所述客户端根据所述第一标识和所述第二标识,启动所述目标服务器中的所述目标GPU执行所述客户端发送的服务请求对应的应用服务;
其中,所述服务器实时监控多个所述GPU的资源使用情况,以使所述资源管理列表更新,多个所述GPU的资源使用情况包括所述GPU执行的应用服务对应的服务数量增加和/或减小的情况。
2.根据权利要求1所述的方法,其特征在于,所述资源获取请求包括目标服务类型;所述根据所述资源获取请求,按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及所述目标服务器中的目标GPU对应的第二标识的步骤,包括:
确定所述资源管理列表中是否存在,当前执行的应用服务对应的服务类型为所述目标服务类型的GPU对应的GPU标识;
当存在时,从执行所述目标服务类型的GPU对应的GPU标识中,选取执行的服务数量最少的GPU对应的GPU标识作为所述第二标识;
将所述第二标识对应的服务器标识,确定为所述第一标识。
3.根据权利要求2所述的方法,其特征在于,在所述确定所述资源管理列表中是否存在,当前执行的应用服务对应的服务类型为所述目标服务类型的GPU对应的GPU标识的步骤之后,还包括:
当不存在时,从所述资源管理列表中选取任意一个未执行应用服务的GPU对应的GPU标识作为所述第二标识;
将所述第二标识对应的服务器标识,确定为所述第一标识。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述资源获取请求,按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及所述目标服务器中的目标GPU对应的第二标识的步骤之前,还包括:
接收服务器发送的每个GPU的资源使用情况;
根据所述资源使用情况,更新所述资源管理列表。
5.根据权利要求4所述的方法,其特征在于,所述服务器包括监控代理模块;所述接收服务器发送的每个GPU的资源使用情况的步骤,包括:
接收所述服务器中的所述监控代理模块在所述GPU的资源使用情况发生变更时发送的所述GPU的资源使用情况;
其中,所述监控代理模块实时监控每个所述GPU的资源使用情况。
6.根据权利要求5所述的方法,其特征在于,在所述接收服务器发送的每个GPU的资源使用情况的步骤之前,还包括:
接收所述服务器中的所述监控代理模块发送的所述多个服务器对应的服务器标识以及每个所述服务器中的多个GPU对应的GPU标识;
根据所述服务器标识和所述GPU标识,对所述服务器和所述GPU进行注册。
7.一种资源调度装置,其特征在于,包括:
资源获取请求接收模块,被配置为接收客户端发送的资源获取请求;
标识确定模块,被配置为根据所述资源获取请求,按照预设的资源调度策略从资源管理列表中确定目标服务器对应的第一标识以及所述目标服务器中的目标GPU对应的第二标识;所述资源管理列表包括多个服务器对应的服务器标识,每个所述服务器中的多个GPU对应的GPU标识,以及每个所述GPU的资源使用情况,所述资源使用情况包括执行的应用服务对应的服务类型和服务数量;
标识发送模块,被配置为将所述第一标识和所述第二标识发送至所述客户端,以使所述客户端根据所述第一标识和所述第二标识,启动所述目标服务器中的所述目标GPU执行所述客户端发送的服务请求对应的应用服务;
其中,所述服务器实时监控多个所述GPU的资源使用情况,以使所述资源管理列表更新,多个所述GPU的资源使用情况包括所述GPU执行的应用服务对应的服务数量增加和/或减小的情况。
8.一种资源调度系统,其特征在于,包括多个服务器以及如权利要求7所述的资源调度装置;
所述服务器,被配置为发送每个GPU的资源使用情况至所述资源调度装置。
9.根据权利要求8所述的系统,其特征在于,所述服务器包括监控代理模块和多个GPU;
所述GPU,被配置为执行客户端发送的服务请求对应的应用服务,以及向所述客户端发送执行完成所述应用服务后得到的执行结果;
所述监控代理模块,被配置为实时监控每个所述GPU的资源使用情况,以及在所述GPU的资源使用情况发生变更时,发送所述GPU的资源使用情况至所述资源调度装置;
所述监控代理模块,还被配置为发送多个服务器对应的服务器标识以及每个所述服务器中的多个GPU对应的GPU标识至所述资源调度装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010247515.7A CN111400051B (zh) | 2020-03-31 | 2020-03-31 | 一种资源调度方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010247515.7A CN111400051B (zh) | 2020-03-31 | 2020-03-31 | 一种资源调度方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400051A CN111400051A (zh) | 2020-07-10 |
CN111400051B true CN111400051B (zh) | 2023-10-27 |
Family
ID=71434943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010247515.7A Active CN111400051B (zh) | 2020-03-31 | 2020-03-31 | 一种资源调度方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400051B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019005054A1 (en) * | 2017-06-29 | 2019-01-03 | Intel Corporation | DESIGN, DISCOVERY AND REUSE OF MODULAR ACCELERATOR FUNCTION UNIT (AFU) |
CN112035220A (zh) * | 2020-09-30 | 2020-12-04 | 北京百度网讯科技有限公司 | 开发机操作任务的处理方法、装置、设备以及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155811A (zh) * | 2015-04-28 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 图形处理装置、资源服务装置、资源调度方法和装置 |
CN107577534A (zh) * | 2017-08-31 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种资源调度方法及装置 |
CN108881030A (zh) * | 2018-06-07 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 灰度发布场景下的路由方法及装置 |
US10262390B1 (en) * | 2017-04-14 | 2019-04-16 | EMC IP Holding Company LLC | Managing access to a resource pool of graphics processing units under fine grain control |
CN110162407A (zh) * | 2019-05-31 | 2019-08-23 | 深圳前海微众银行股份有限公司 | 一种资源管理方法及装置 |
CN110493321A (zh) * | 2019-07-24 | 2019-11-22 | 网宿科技股份有限公司 | 一种资源获取方法以及边缘调度系统、服务器 |
CN110691042A (zh) * | 2019-10-23 | 2020-01-14 | 上海艾融软件股份有限公司 | 资源分配方法及装置 |
-
2020
- 2020-03-31 CN CN202010247515.7A patent/CN111400051B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155811A (zh) * | 2015-04-28 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 图形处理装置、资源服务装置、资源调度方法和装置 |
US10262390B1 (en) * | 2017-04-14 | 2019-04-16 | EMC IP Holding Company LLC | Managing access to a resource pool of graphics processing units under fine grain control |
CN107577534A (zh) * | 2017-08-31 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种资源调度方法及装置 |
CN108881030A (zh) * | 2018-06-07 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 灰度发布场景下的路由方法及装置 |
CN110162407A (zh) * | 2019-05-31 | 2019-08-23 | 深圳前海微众银行股份有限公司 | 一种资源管理方法及装置 |
CN110493321A (zh) * | 2019-07-24 | 2019-11-22 | 网宿科技股份有限公司 | 一种资源获取方法以及边缘调度系统、服务器 |
CN110691042A (zh) * | 2019-10-23 | 2020-01-14 | 上海艾融软件股份有限公司 | 资源分配方法及装置 |
Non-Patent Citations (1)
Title |
---|
吕相文等.云计算环境下多GPU资源调度机制研究.小型微型计算机系统.2016,49-55. * |
Also Published As
Publication number | Publication date |
---|---|
CN111400051A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547570B (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
US20200099606A1 (en) | Distrubuted testing service | |
CN111800462B (zh) | 微服务实例处理方法、装置、计算机设备及存储介质 | |
CN110020367B (zh) | 一种页面渲染方法及装置 | |
CN111475180A (zh) | 更新客户端缓存的方法和系统 | |
CN110580305B (zh) | 生成标识符的方法、装置、系统和介质 | |
CN111400051B (zh) | 一种资源调度方法、装置及系统 | |
US8856365B2 (en) | Computer-implemented method, computer system and computer readable medium | |
MX2008011659A (es) | Estimacion de datos de control de presentacion dinamica inicial. | |
CN108446172B (zh) | 数据调取方法、装置、计算机设备和存储介质 | |
CN110457097B (zh) | 页面响应控制方法、装置、计算机设备及存储介质 | |
CN113127168A (zh) | 服务分配方法、系统、装置、服务器及介质 | |
CN108256014B (zh) | 页面展示方法及装置 | |
CN112836152B (zh) | 页面渲染方法、系统、计算机设备及计算机可读存储介质 | |
CN111163130A (zh) | 一种网络服务系统及其数据传输方法 | |
CN109002364A (zh) | 进程间通信的优化方法、电子装置以及可读存储介质 | |
CN111367685A (zh) | 接口调用的方法及装置、计算机设备、存储介质 | |
CN111783005B (zh) | 显示网页的方法、装置和系统、计算机系统和介质 | |
CN113806216A (zh) | 接口测试方法、装置、介质及设备 | |
US9077768B2 (en) | Method and system for providing digital contents in a network environment | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
CN112328598B (zh) | Id生成方法、装置、电子设备及存储介质 | |
CN109614242B (zh) | 一种计算能力共享方法、装置、设备及介质 | |
CN112491939B (zh) | 多媒体资源调度方法及系统 | |
CN110309403B (zh) | 用于抓取数据的方法和装置 |
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 |