CN111158879A - 一种系统资源的调度方法,装置、机器可读介质和系统 - Google Patents
一种系统资源的调度方法,装置、机器可读介质和系统 Download PDFInfo
- Publication number
- CN111158879A CN111158879A CN201911403771.4A CN201911403771A CN111158879A CN 111158879 A CN111158879 A CN 111158879A CN 201911403771 A CN201911403771 A CN 201911403771A CN 111158879 A CN111158879 A CN 111158879A
- Authority
- CN
- China
- Prior art keywords
- target task
- resource
- nodes
- amount
- gpu
- 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 54
- 230000015654 memory Effects 0.000 claims description 42
- 230000001174 ascending effect Effects 0.000 claims description 20
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 239000000725 suspension Substances 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 238000012800 visualization Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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
- G06F9/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及计算机软件领域,特别地公开了一种系统资源的调度方法,装置、机器可读介质和系统。系统资源的调度方法,包括:获取系统中的每个节点的可用资源量,其中,系统包括多个节点;接收目标任务,计算目标任务的资源占用量;将目标任务分配至集群中可用资源量超过目标任务的资源占用量的节点上,其中,接收目标任务的节点为可用资源量超过目标任务的资源占用量的节点中可用资源最小的节点。本发明提供的系统资源的方法,系统资源能够被最大化。
Description
技术领域
本发明涉及计算机软件领域,特别地公开了一种系统资源的调度方法,装置、机器可读介质和系统。
背景技术
在大数据时代,海量数据的处理对计算机的计算能力要求较高,海量数据的处理无法在单台计算机上完成。目前,现已有许多基于CPU(Central Processing Unit,中央处理器)计算的分布式计算平台用来处理海量数据。然而,由于GPU具有良好的并行计算能力,对于浮点运算、通用计算、图像处理等计算应用场景,GPU可以提供数十倍乃至于上百倍于CPU的性能。但对于跨机多GPU的使用,却还没有很好的解决方案,多GPU的使用仍然依赖于程序开发者实现协同调度。
现有基于K8S的容器调度在GPU显卡共享调度上的一般性做法是是利用脚本生成容器启动时候的配置文件,通过配置文件中的环境变量传递容器内算法程序需要的显卡设备信息,这种做法只能应对小规模部署结构简单的情况,但是如果面对很多规模不等企业级用户,调度逻辑就需要灵活,带来了一定的复杂性。
发明内容
本申请提供了一种系统资源的调度方法,包括:
获取系统中的每个节点的可用资源量,其中,系统包括多个节点;
接收目标任务,计算目标任务的资源占用量;
将目标任务分配至集群中可用资源量超过目标任务的资源占用量的节点上,其中,接收目标任务的节点为可用资源量超过目标任务的资源占用量的节点中可用资源最小的节点。
可选地,将目标任务分配至集群中可用资源量超过目标任务的资源占用量的节点上时,还包括:
在接收到多个目标任务的情况下,按目标任务的资源占用量升序排序后,将系统资源分配至目标任务。
可选地,还包括:
在集群中的所有节点中每一个节点的可用资源量小于目标任务的资源占用量的情况下,将目标任务的状态设置为挂起。
可选地,还包括:
在存在状态为挂起的目标任务的情况下,接收到新生成的目标任务时,优先分配状态为挂起的目标任务。
可选地,还包括:
在目标任务执行完成,节点的可用资源量被释放且可用资源量超过状态为挂起的目标任务的资源占用量的情况下,将状态为挂起的目标任务分配至节点。
本申请还提供了一种系统资源的调度装置,包括:
获取模块,获取模块用于获取系统中的每个节点的可用资源量,其中,系统包括多个节点;
任务模块,任务模块用于接收目标任务,计算目标任务的资源占用量;
调度模块,调度模块用于将目标任务分配至集群中可用资源量超过目标任务的资源占用量的节点上,其中,接收目标任务的节点为可用资源量超过目标任务的资源占用量的节点中可用资源最小的节点。
可选地,调度模块将目标任务分配至集群中可用资源量超过目标任务的资源占用量的节点上时,
调度模块还用于在接收到多个目标任务的情况下,按目标任务的资源占用量升序排序后,将系统资源分配至目标任务。
可选地,
调度模块还用于,在集群中的所有节点中每一个节点的可用资源量小于目标任务的资源占用量的情况下,将目标任务的状态设置为挂起。
可选地,
调度模块还用于,在存在状态为挂起的目标任务的情况下,接收到新生成的目标任务时,优先分配状态为挂起的目标任务。
可选地,
调度模块还用于,在目标任务执行完成,节点的可用资源量被释放且可用资源量超过状态为挂起的目标任务的资源占用量的情况下,将状态为挂起的目标任务分配至节点。
本申请还提供了一种机器可读介质,机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述确定分布式存储系统中的系统资源的调度方法。
本申请实施例还提供了一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行上述的确定分布式存储系统中的系统资源的调度方法。
本发明提供的系统资源的方法,系统资源能够被最大化地利用。
附图说明
图1根据本申请的一些实施例,示出了一种系统资源的调度方法的流程示意图。
图2根据本申请的一些实施例,示出了一种系统资源的调度方法的结构示意图。
图3根据本申请的一些实施例,示出了一种系统资源的调度方法的结构示意图。
图4根据本申请的一些实施例,示出了一种系统资源的调度方法的结构示意图。
图5根据本申请的一些实施例,示出了一种系统资源的调度方法的结构示意图。
图6根据本申请的一些实施例,示出了一种系统资源的调度装置的结构示意图。
图7根据本申请的一些实施例,示出了一种系统的框图。
图8根据本申请一些实施例,示出了一种片上系统(SoC)的框图。
具体实施例
可以理解,如本文所使用的,术语“模块””可以指代或者包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。
可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。
本发明的实施例中涉及系统包括但不限于GPU,CPU系统,节点为GPU,CPU资源节点,本说明书的实施例是基于GPU系统以及GPU资源节点描述说明的,但并没有将CPU等其他系统资源排除,本领域的技术人员可以想到将本发明的实施例应用到考虑到CPU等其他系统资源上。
现有技术中GPU资源存在利用率不足,GPU不支持逻辑控制功能和任务的调度处理的问题,当先后启动两个任务A、B时,假设当前GPU资源可以满足A和B同时运行,但是实际上由于A申请了较大的资源值,在任务A运行过程中,存在部分空闲资源无法利用的情况,而现有的GPU的资源调度方法无法动态调整GPU资源,导致GPU剩余资源不足以启动任务B,进而导致GPU资源的浪费和利用率低下的问题,本申请提供一种计算资源调度方法及装置,通过根据GPU当前资源占用信息,即GPU当前资源的使用情况和剩余情况,结合目标任务的资源需求,确定用于分配给目标任务的GPU当前可分配资源,以实现GPU资源调度的动态化,保证GPU资源利用率最大化,进而提升对目标任务的整体处理性能。
下面将结合附图对本申请的实施例作进一步地详细描述。
根据本申请的一些实施例公开了以及一种系统资源的调度方法、调度装置、机器可读介质以及系统。
首先参考图1,图1示出了一种系统资源的调度方法的流程图,包括:获取系统中的每个节点的可用资源量,其中,系统包括多个节点,接收目标任务,计算目标任务的资源占用量,将目标任务分配至集群中可用资源量超过目标任务的资源占用量的节点上,其中,接收目标任务的节点为可用资源量超过目标任务的资源占用量的节点中可用资源最小的节点。
具体地,获取系统GPU资源节点的占用信息,包括但不限于:系统GPU资源的可用资源量、任务处理信息和任务的数量;目标任务的信息可以包括但不限于如下信息:任务ID、资源占用量等,这里目标任务的资源占用量可以指执行目标任务需要占用的资源量,也就是占用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节点1,GPU节点2,GPU节点3,GPU节点1的可用资源量为2G显存,GPU节点2的可用资源量为1G显存,GPU节点3的可用资源量为3G显存,由于三个GPU节点的可用资源量不同,因此将GPU节点1,GPU节点2,GPU节点3的可用资源量按升序排序,GPU节点2,GPU节点1,GPU节点3。按照该升序排列的顺序为任务分配资源,这样可以使得可用资源量最少的GPU节点1尽快处于资源饱和状态,也就是达到满负荷状态。
同时,如图3所示,将目标任务的资源占用量升序排序后,将目标任务按资源占用量升序排序的顺序分配,能够使得资源占用量较高的GPU资源节点尽可能地分配目标任务,也能够达到使得资源占用量较高的GPU资源节点尽快处于满负荷状态的目的,保证系统GPU资源的利用率最大化。
具体地,当前系统接收到三个目标任务,目标任务1,目标任务2,目标任务3,目标任务1的资源占用量为2G显存,目标任务2的资源占用量为1G显存,目标任务3的资源占用量为3G显存,由于三个目标任务的资源占用量不同,因此将目标任务1,目标任务2,目标任务3的资源占用量按升序排序,排序后的顺序为目标任务2,目标任务1,目标任务3,按照排序后的目标任务的顺序为其分配GPU资源节点,例如,如图2中所示排列后的GPU节点,系统会为目标任务2分配GPU节点2,为目标任务1分配GPU节点1,为目标任务3分配GPU节点3,这样GPU节点1,GPU节点2,GPU节点3都可以达到满负荷状态,目标任务1,目标任务2,目标任务3也能获得资源。
在集群中的所有节点中每一个节点的的可用资源量小于目标任务的资源占用量的情况下,将目标任务的状态设置为挂起。在目标任务为多个的情况下,优先分配状态为挂起的目标任务。
具体地,在GPU集群中的所有GPU资源节点中每一个节点的可用资源量小于目标任务的资源占用量的情况下,该目标任务暂时处于无法被执行的状态,对该目标任务执行挂起(等待,阻塞)的操作,该挂起操作可以是暂时处于无法执行状态,在资源不足的情况下,无法被立即处理的目标任务被暂时停止,当条件允许的时候,会被再次激活,重新进入等待被执行的状态。其中,上述条件可以是例如在目标任务为多个的情况下,即,包括状态为挂起的目标任务和新生成的目标任务的多个任务的情况下,状态为挂起的目标任务将优先于新生成的目标任务对其分配系统GPU资源。
根据本申请的一些实施例,如图4所示,当前系统GPU资源节点包含一个节点,GPU节点1,GPU节点1的可用资源量为1G显存。当前系统接收到三个目标任务,目标任务1,目标任务2,两个目标任务的资源占用量为1G显存,系统将目标任务1分配GPU节点1后,目标任务2没有资源可以使用,因此系统将目标任务2设置为挂起,之后又新接收到目标任务3,当目标任务1执行完毕,GPU节点1的资源释放后,优先将处于挂起的目标任务2分配至GPU节点1执行。
可以理解的是,上述条件也可以是例如,当检测有目标任务完成且GPU资源节点的资源被释放且释放出的资源满足该挂起的目标任务的资源占用量时,即,节点的可用资源量超过该状态为挂起的目标任务的资源占用量,将挂起的目标任务分配至释放出资源的GPU资源节点。在为目标任务计算系统GPU资源的可用资源量时,首先考虑从系统GPU资源的当前可用资源量中获取资源,但系统GPU资源的当前可用资源并不能全部用来进行资源分配,还需保留部分资源以保障系统的正常运行,除去该部分资源后得到的即系统GPU资源的可用资源量,将目标任务分配了包含系统GPU资源的节点后,若此时系统中仍然有多个当前任务等待分配系统GPU资源,则可以根据目标任务所需要的资源占用量来判断系统GPU资源的可用资源量是否满足目标任务的资源占用量,如果满足,则可直接将系统GPU资源的可用资源量全部用来分配给目标任务,分配后,如果系统GPU资源的当前可用资源量还有剩余则可以进行下一步分配。
为了能够保障系统GPU资源对后续任务的资源分配正常,在本申请的系统资源的调度方法的一实施例中,还可以具体包含在目标任务处理完成后释放其占用系统GPU资源的步骤,监测目标任务是否处理完成。若是,则对目标任务的当前占用的系统GPU资源进行资源释放。
根据本申请的一些实施例,如图5所示,当前系统GPU资源节点包含两个节点,GPU节点1,GPU节点2,GPU节点1的可用资源量为1G显存,GPU节点2的可用资源量为2G显存。当前系统接收到三个目标任务,目标任务1,目标任务2,目标任务3,目标任务1的资源占用量为1G显存,目标任务2的资源占用量为2G显存,目标任务3的资源占用量为2G显存,系统将目标任务1,目标任务2,分配GPU节点1和GPU节点2后,目标任务3没有资源可以使用,因此系统将目标任务3设置为挂起,当目标任务2执行完毕,GPU节点2的资源释放后,将目标任务3分配至GPU节点2执行。
可以理解的是,可以通过现有的任务监控技术对目标任务的处理状态进行实时监控,若监测到目标任务已经处理完成,则为了使后续其他待处理任务能够得到系统GPU资源,需要对目标任务当前占用的系统GPU资源进行资源释放。
在本申请的系统资源的调度方法的一实施例中,还可以基于至少一个可视化系统定制调度组件,该调度组件用于表示系统GPU资源的可用资源量;完成定制调度组件后,基于远程通信方式部署调度组件;可视化界面内显示至少一个调度组件。其中,基于可视化界面内,选择至少一个调度组件,分配给目标任务执行,于可视化界面内显示至少一个相对于目标任务的执行结果。
具体地,在对可定制的调度组件进行配置生成的过程中,可以将调度组件的运行时输入参数、输出参数、异常信息,以及实现功能等在一个可视化界面进行实时地显示,以便于用户了解调度组件的信息。在完成用户提交的自定义调度组件的信息之后,可视化系统自动对自定义调度组件的代码进行封装,为自定义的调度组件添加任务接口,并为自定义的调度组件添加调用接口。可视化系统可以通过调度任务接口对目标任务分配调度组件后执行,并将执行结果反馈在可视化系统的界面上。
可以理解的是,可视化系统还能够提供多个已经预设的调度策略,供用户选择使用或者修改后使用。另外,根据用户按照所需的目标任务对可视化系统的界面上所显示的资源组件进行的选择组合,确定目标任务需要使用的调度组件与调度策略之间的依赖关系。例如,可视化系统的界面包括组件区域和策略区域,根据将可视化系统的界面上所显示的资源组件添加到调度策略区域内,确定将调度策略区域内的至少一个调度组件作为目标组件;以及根据用户对任意两个调度组件的参数的关联操作,更新两个调度组件之间的依赖关系,对任意两个调度组件的参数的关联操作用于:通过两个调度组件的功能的组合生成一个调度策略。
其中,对可视化系统的界面上的调度组件或者调度策略的选中操作,可以是用户点击调度组件或者调度策略并确定使用该调度组件或者调度策略的操作,或者,可以是将调度组件拖拽到或者拖拽出调度策略区域的操作等,本实施例对于可视化系统的界面的选中操作的具体实现方式不做具体限定。
基于上面的描述,下面具体介绍系统资源的调度装置中各设备的主要工作流程。
根据本申请的一些实施例,结合上述方法中对系统资源的调度方法的描述,本装置中描述的技术细节在此依然适用,为了避免重复,有些在此次不再赘述。如图6所示,具体地,包括:
获取模块,获取模块用于获取系统中的每个节点的可用资源量,其中,系统包括多个节点;
任务模块,任务模块用于接收目标任务,计算目标任务的资源占用量;
调度模块,调度模块用于将目标任务分配至集群中可用资源量超过目标任务的资源占用量的节点上,其中,接收目标任务的节点为可用资源量超过目标任务的资源占用量的节点中可用资源最小的节点。
本发明的实施例中将系统配置为包括但不限于GPU,CPU系统,节点为GPU,CPU资源节点。
具体地,获取模块获取系统GPU资源节点的占用信息,包括但不限于:系统GPU资源的可用资源量、任务处理信息和任务的数量;任务模块获取目标任务的信息,可以包括但不限于如下信息:任务ID、资源占用量等,这里目标任务的资源占用量可以指执行目标任务需要占用的资源量,也就是占用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资源。
本申请还提供了一种机器可读介质,机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述系统资源的调度方法。
本申请实施例还提供了一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行上述系统资源的调度方法。
现在参考图7,所示为根据本申请的一个实施例的系统1400的框图。图7示意性地示出了根据多个实施例的示例系统1400。在一个实施例中,系统1400可以包括一个或多个处理器1404,与处理器1404中的至少一个连接的系统控制逻辑1408,与系统控制逻辑1408连接的系统内存1412,与系统控制逻辑1408连接的非易失性存储器(NVM)1416,以及与系统控制逻辑1408连接的网络接口1420。
在一些实施例中,处理器1404可以包括一个或多个单核或多核处理器。在一些实施例中,处理器1404可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在系统1400采用eNB(EvolvedNode B,增强型基站)101或RAN(Radio Access Network,无线接入网)控制器102的实施例中,处理器1404可以被配置为执行各种符合的实施例,例如,如图1所示的多个实施例中的一个或多个。
在一些实施例中,系统控制逻辑1408可以包括任意合适的接口控制器,以向处理器1404中的至少一个和/或与系统控制逻辑1408通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,系统控制逻辑1408可以包括一个或多个存储器控制器,以提供连接到系统内存1412的接口。系统内存1412可以用于加载以及存储数据和/或指令。在一些实施例中系统1400的内存1412可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。
NVM/存储器1416可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器1416可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard DiskDrive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。
NVM/存储器1416可以包括安装系统1400的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1420通过网络访问NVM/存储1416。
特别地,系统内存1412和NVM/存储器1416可以分别包括:指令1424的暂时副本和永久副本。指令1424可以包括:由处理器1404中的至少一个执行时导致系统1400实施如图1所示的方法的指令。在一些实施例中,指令1424、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑1408,网络接口1420和/或处理器1404中。
网络接口1420可以包括收发器,用于为系统1400提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口1420可以集成于系统1400的其他组件。例如,网络接口1420可以集成于处理器1404的,系统内存1412,NVM/存储器1416,和具有指令的固件设备(未示出)中的至少一种,当处理器1404中的至少一个执行所述指令时,系统1400实现如图1所示的方法。
网络接口1420可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1420可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑封装在一起,以形成系统封装(SiP)。在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(SoC)。
系统1400可以进一步包括:输入/输出(I/O)设备1432。I/O设备1432可以包括用户界面,使得用户能够与系统1400进行交互;外围组件接口的设计使得外围组件也能够与系统1400交互。在一些实施例中,系统1400还包括传感器,用于确定与系统1400相关的环境条件和位置信息的至少一种。
在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。
在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
在一些实施例中,传感器可包括但不限于陀螺仪传感器,加速度计,近程传感器,环境光线传感器和定位单元。定位单元还可以是网络接口1420的一部分或与网络接口1420交互,以与定位网络的组件(例如,全球定位系统(GPS)卫星)进行通信。
根据本申请的实施例,图8示出了一种SoC(System on Chip,片上系统)1500的框图。在图8中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图8中,SoC 1500包括:互连单元1550,其被耦合至应用处理器1515;系统代理单元1570;总线控制器单元1580;集成存储器控制器单元1540;一组或一个或多个协处理器1520,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1530;直接存储器存取(DMA)单元1560。在一个实施例中,协处理器1520包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (8)
1.一种系统资源的调度方法,其特征在于,包括:
获取系统中的每个节点的可用资源量,其中,所述系统包括多个节点;
接收目标任务,计算所述目标任务的资源占用量;
将所述目标任务分配至所述集群中可用资源量超过所述目标任务的资源占用量的节点上,其中,接收所述目标任务的节点为所述可用资源量超过所述目标任务的资源占用量的节点中可用资源最小的节点。
2.根据权利要求1所述的调度方法,其特征在于,将所述目标任务分配至所述集群中可用资源量超过所述目标任务的资源占用量的节点上时,还包括:
在接收到多个所述目标任务的情况下,按所述目标任务的资源占用量升序排序后,将所述目标任务分配至所述节点。
3.根据权利要求1所述的调度方法,其特征在于,还包括:
在所述集群中的所有节点中每一个节点的所述可用资源量小于所述目标任务的资源占用量的情况下,将所述目标任务的状态设置为挂起。
4.根据权利要求3所述的调度方法,其特征在于,还包括:
在存在状态为挂起的所述目标任务的情况下,接收到新生成的所述目标任务时,,优先分配所述状态为挂起的所述目标任务。
5.根据权利要求3所述的调度方法,其特征在于,还包括:
在所述目标任务执行完成、所述节点的可用资源量被释放且所述可用资源量超过所述状态为挂起的所述目标任务的资源占用量的情况下,将状态为挂起的所述目标任务分配至所述节点。
6.一种系统资源的调度装置,其特征在于,包括:
获取模块,所述获取模块用于获取系统中的每个节点的可用资源量,其中,所述系统包括多个节点;
任务模块,所述任务模块用于接收目标任务,计算所述目标任务的资源占用量;
调度模块,所述调度模块用于将所述目标任务分配至所述集群中可用资源量超过所述目标任务的资源占用量的节点上,其中,接收所述目标任务的节点为所述可用资源量超过所述目标任务的资源占用量的节点中可用资源最小的节点。
7.一种机器可读介质,其特征在于,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行权利要求1至5中任一项所述的系统资源的调度方法。
8.一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行权利要求1至5中任一项所述的系统资源的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911403771.4A CN111158879B (zh) | 2019-12-31 | 2019-12-31 | 一种系统资源的调度方法,装置、机器可读介质和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911403771.4A CN111158879B (zh) | 2019-12-31 | 2019-12-31 | 一种系统资源的调度方法,装置、机器可读介质和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158879A true CN111158879A (zh) | 2020-05-15 |
CN111158879B CN111158879B (zh) | 2024-03-22 |
Family
ID=70559538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911403771.4A Active CN111158879B (zh) | 2019-12-31 | 2019-12-31 | 一种系统资源的调度方法,装置、机器可读介质和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158879B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796932A (zh) * | 2020-06-22 | 2020-10-20 | 贝式计算(天津)信息技术有限公司 | 一种gpu资源调度方法 |
CN112203057A (zh) * | 2020-10-10 | 2021-01-08 | 重庆紫光华山智安科技有限公司 | 解析任务创建方法、装置、服务器和计算机可读存储介质 |
CN112346859A (zh) * | 2020-10-26 | 2021-02-09 | 北京市商汤科技开发有限公司 | 资源调度方法及装置、电子设备和存储介质 |
CN112698943A (zh) * | 2020-12-29 | 2021-04-23 | 北京顺达同行科技有限公司 | 资源分配方法、装置、计算机设备以及存储介质 |
CN113301087A (zh) * | 2020-07-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置、计算设备和介质 |
CN113391905A (zh) * | 2021-06-25 | 2021-09-14 | 图灵人工智能研究院(南京)有限公司 | 基于多gpu的任务调度方法、装置 |
CN113612732A (zh) * | 2021-07-06 | 2021-11-05 | 华控清交信息科技(北京)有限公司 | 一种资源调用方法、装置和多方安全计算系统 |
CN113742059A (zh) * | 2021-07-15 | 2021-12-03 | 上海朋熙半导体有限公司 | 任务分配方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357251A (zh) * | 2015-09-24 | 2016-02-24 | 浪潮集团有限公司 | 一种资源池的管理系统及管理方法 |
US9794136B1 (en) * | 2015-01-21 | 2017-10-17 | Pivotal Software, Inc. | Distributed resource allocation |
CN107992359A (zh) * | 2017-11-27 | 2018-05-04 | 江苏海平面数据科技有限公司 | 一种云环境下代价感知的任务调度算法 |
CN109471727A (zh) * | 2018-10-29 | 2019-03-15 | 北京金山云网络技术有限公司 | 一种任务处理方法、装置及系统 |
CN110442451A (zh) * | 2019-07-12 | 2019-11-12 | 中电海康集团有限公司 | 一种面向深度学习的多类型gpu集群资源管理调度方法和系统 |
-
2019
- 2019-12-31 CN CN201911403771.4A patent/CN111158879B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9794136B1 (en) * | 2015-01-21 | 2017-10-17 | Pivotal Software, Inc. | Distributed resource allocation |
CN105357251A (zh) * | 2015-09-24 | 2016-02-24 | 浪潮集团有限公司 | 一种资源池的管理系统及管理方法 |
CN107992359A (zh) * | 2017-11-27 | 2018-05-04 | 江苏海平面数据科技有限公司 | 一种云环境下代价感知的任务调度算法 |
CN109471727A (zh) * | 2018-10-29 | 2019-03-15 | 北京金山云网络技术有限公司 | 一种任务处理方法、装置及系统 |
CN110442451A (zh) * | 2019-07-12 | 2019-11-12 | 中电海康集团有限公司 | 一种面向深度学习的多类型gpu集群资源管理调度方法和系统 |
Non-Patent Citations (1)
Title |
---|
马士龙;朱怡安;叶丞;: "一种优先满足最小服务需求的动态网格资源调度算法" * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796932A (zh) * | 2020-06-22 | 2020-10-20 | 贝式计算(天津)信息技术有限公司 | 一种gpu资源调度方法 |
CN113301087B (zh) * | 2020-07-21 | 2024-04-02 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置、计算设备和介质 |
CN113301087A (zh) * | 2020-07-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置、计算设备和介质 |
CN112203057A (zh) * | 2020-10-10 | 2021-01-08 | 重庆紫光华山智安科技有限公司 | 解析任务创建方法、装置、服务器和计算机可读存储介质 |
CN112203057B (zh) * | 2020-10-10 | 2022-06-03 | 重庆紫光华山智安科技有限公司 | 解析任务创建方法、装置、服务器和计算机可读存储介质 |
CN112346859A (zh) * | 2020-10-26 | 2021-02-09 | 北京市商汤科技开发有限公司 | 资源调度方法及装置、电子设备和存储介质 |
CN112698943A (zh) * | 2020-12-29 | 2021-04-23 | 北京顺达同行科技有限公司 | 资源分配方法、装置、计算机设备以及存储介质 |
CN113391905A (zh) * | 2021-06-25 | 2021-09-14 | 图灵人工智能研究院(南京)有限公司 | 基于多gpu的任务调度方法、装置 |
CN113391905B (zh) * | 2021-06-25 | 2024-05-14 | 图灵人工智能研究院(南京)有限公司 | 基于多gpu的任务调度方法、装置 |
CN113612732A (zh) * | 2021-07-06 | 2021-11-05 | 华控清交信息科技(北京)有限公司 | 一种资源调用方法、装置和多方安全计算系统 |
CN113612732B (zh) * | 2021-07-06 | 2023-12-26 | 华控清交信息科技(北京)有限公司 | 一种资源调用方法、装置和多方安全计算系统 |
CN113742059B (zh) * | 2021-07-15 | 2024-03-29 | 上海朋熙半导体有限公司 | 任务分配方法、装置、计算机设备和存储介质 |
CN113742059A (zh) * | 2021-07-15 | 2021-12-03 | 上海朋熙半导体有限公司 | 任务分配方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111158879B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111158879B (zh) | 一种系统资源的调度方法,装置、机器可读介质和系统 | |
CN107526640B (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
US10467025B2 (en) | Managing delivery of code and dependent data using application containers | |
EP3495950A1 (en) | Method and device for managing background applications of terminal | |
JP2014517434A5 (zh) | ||
CN112181663A (zh) | 一种内存调度方法、装置及计算机设备 | |
CN113760543A (zh) | 资源管理方法、装置、电子设备及计算机可读存储介质 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN115237589A (zh) | 一种基于sr-iov的虚拟化方法、装置和设备 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
CN111654539B (zh) | 基于云原生的物联网操作系统构建方法、系统及电子设备 | |
CN113439263A (zh) | 应用清理方法、装置、存储介质及电子设备 | |
CN116450473A (zh) | 踩内存问题的定位方法和电子设备 | |
CN114942833A (zh) | 定时任务资源动态调度方法及相关装置 | |
CN111258754A (zh) | 一种基于时间窗口的资源处理方法、装置、介质以及系统 | |
CN111352710B (zh) | 进程管理方法及装置、计算设备、存储介质 | |
CN113495787A (zh) | 资源分配方法、装置、存储介质及电子设备 | |
CN110633141A (zh) | 一种应用程序的内存管理方法、装置、终端设备及介质 | |
CN113360290B (zh) | 死锁检测方法和装置 | |
CN111737013B (zh) | 芯片的资源管理方法、装置、存储介质及系统芯片 | |
US20230342200A1 (en) | System and method for resource management in dynamic systems | |
CN111124594B (zh) | 容器运行方法、装置、异构gpu服务器及容器集群系统 | |
CN110895464B (zh) | 应用部署方法、设备和系统 | |
CN116339846A (zh) | 进程管理方法、装置、存储介质以及电子设备 | |
CN114880092A (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 |