CN111737010B - 任务处理方法和装置、图形任务处理系统以及存储介质 - Google Patents
任务处理方法和装置、图形任务处理系统以及存储介质 Download PDFInfo
- Publication number
- CN111737010B CN111737010B CN202010750648.6A CN202010750648A CN111737010B CN 111737010 B CN111737010 B CN 111737010B CN 202010750648 A CN202010750648 A CN 202010750648A CN 111737010 B CN111737010 B CN 111737010B
- Authority
- CN
- China
- Prior art keywords
- task
- task queue
- batch processing
- tasks
- queue length
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 325
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 230000008859 change Effects 0.000 claims description 42
- 238000000034 method Methods 0.000 claims description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 15
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000010923 batch production Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 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
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种任务处理方法和装置、图形任务处理系统以及计算机可读存储介质。任务处理方法包括:按照第一预设时间间隔,获取任务队列长度,并确定所述任务队列长度的变化量;基于所获取的任务队列长度以及所述任务队列长度的变化量,确定用于批量处理的预测任务数量;基于所述任务队列长度以及所述用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量;以及按照所述用于批量处理的任务数量,对所述任务队列中的任务进行批量处理。
Description
技术领域
本公开涉及计算机领域,更具体地涉及一种任务处理方法和装置、图形任务处理系统以及计算机可读存储介质。
背景技术
随着人工智能技术的蓬勃发展,越来越多的人工智能技术得到了落地应用,而基于人工智能技术的实时计算系统往往包含大量的运算。图形处理单元(GraphicsProcessing Unit,GPU)具有强大的并行运算能力,能够进行密集型并行计算,因此得到了广泛的应用。为了充分利用GPU运算能力,往往采用批量处理的系统架构设计,在这种情况下,每次批量处理的规模大小(即,用于批量处理的任务数量,也称为批量大小,batch-size)会直接影响到对请求执行计算任务的请求的处理时延与系统吞吐量,因此确定合适的批量处理的规模大小是对系统性能进行调优的关键。
然而,现有方案一般基于固定的批量大小来对任务进行批量处理,而对于不同的系统负载采用相同的批量大小并不是合适的,这可能会造成运算能力浪费以及带来针对请求执行任务的请求的较大处理时延。
因此,需要一种能够根据系统负载的变化而动态地调整批量处理规模(即批量大小)的方法。
发明内容
本公开的实施例提供了任务处理方法和装置、图形任务处理系统、以及计算机可读存储介质。
本公开的实施例提供了一种任务处理方法。该任务处理方法包括:按照第一预设时间间隔,获取任务队列长度,并确定所述任务队列长度的变化量;基于所获取的任务队列长度以及所述任务队列长度的变化量,确定用于批量处理的预测任务数量;基于所述任务队列长度以及所述用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量;以及按照所述用于批量处理的任务数量,分配所述任务队列中的任务。
例如,基于所获取的任务队列长度以及所述任务队列长度的变化量,确定用于批量处理的预测任务数量,包括:根据用于批量处理的预测任务数量与所述任务队列长度和所述任务队列长度的变化量的函数关系,来确定用于批量处理的预测任务数量。
例如,所述函数关系为:k=a*s+b*△s,其中,k是所述用于批量处理的预测任务数量,s指示所获取的任务队列长度,△s指示任务队列长度的变化量、并且为按照第一预设时间间隔所获取的任务队列长度与前一任务队列长度之间的差值,并且a和b是非零常数。
例如,基于所述任务队列长度以及所述用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量,包括:在所确定的用于批量处理的预测任务数量不大于所述任务队列长度的情况下,将所述预测任务数量确定为用于批量处理的任务数量;以及在所确定的用于批量处理的预测任务数量大于所述任务队列长度的情况下,基于预设等待时间内所述任务队列长度的动态变化,动态地确定用于批量处理的任务数量。
例如,基于预设等待时间内所述任务队列长度的动态变化,动态地确定用于批量处理的任务数量,包括:在所述预设等待时间内,按照所述第一预设时间间隔,获取更新的任务队列长度,其中,所述更新的任务队列长度表征了所述任务队列长度的动态变化;以及在所述预设等待时间内在所确定的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,或者在所述预设等待时间期满且所确定的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,将所述预测任务数量确定为用于批量处理的任务数量;在所述预设等待时间期满且所确定的用于批量处理的预测任务数量仍大于所述更新的任务队列长度的情况下,将所述更新的任务队列长度确定为用于批量处理的任务数量。
例如,基于预设等待时间内所述任务队列长度的动态变化,动态地确定用于批量处理的任务数量,包括:在所述预设等待时间内,按照所述第一预设时间间隔,获取更新的任务队列长度以及更新的任务队列长度的变化量,其中,所述更新的任务队列长度表征了所述任务队列长度的动态变化;基于所述更新的任务队列长度以及更新的所述任务队列长度的变化量,确定更新的用于批量处理的预测任务数量;以及在所述预设等待时间内在所更新的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,或者在所述预设等待时间期满且在所更新的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,将所述更新的预测任务数量确定为用于批量处理的任务数量;以及在所述预设等待时间期满且所确定的用于批量处理的预测任务数量仍大于所述更新的任务队列长度的情况下,将所述更新的任务队列长度确定为用于批量处理的任务数量。
例如,所述预设等待时间等于或长于所述第一预设时间间隔。
例如,按照第一预设时间间隔,获取任务队列长度,包括:在所获取的任务队列长度指示任务队列为空的情况下,按照第二预设时间间隔,获取任务队列长度;在按照所述第二预设时间间隔获取的任务队列长度指示所述任务队列仍为空的情况下,利用递增的时间间隔更新所述第二预设时间间隔;以及在按照所述更新的第二预设时间间隔获取的任务队列长度指示所述任务队列不再为空的情况下,按照所述第一预设时间间隔,获取任务队列长度。
例如,基于指数退避算法更新所述第二预设时间间隔,其中所述第二预设时间间隔的初始值与第一预设时间间隔的值相等。
例如,按照所述用于批量处理的任务数量,对所述任务队列中的任务进行批量处理,包括:从所述任务队列中拉取所述用于批量处理的任务数量的任务;以及将所拉取的所述用于批量处理的任务数量的任务分配至多个任务执行器;通过所述多个任务执行器对所述用于批量处理的任务数量的任务进行批量处理。
例如,所述任务为图形处理任务,其中,通过所述多个任务执行器对所述用于批量处理的任务数量的任务进行批量处理包括:通过所述多个任务执行器对所述用于批量处理的任务数量的任务进行并行处理。
本公开的实施例还提供了一种任务处理装置,包括:获取模块,被配置为按照第一预设时间间隔,获取任务队列长度,并确定所述任务队列长度的变化量;第一确定模块,被配置为基于所获取的任务队列长度以及所述任务队列长度的变化量,确定用于批量处理的预测任务数量;第二确定模块,被配置为基于所述任务队列长度以及所述用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量;以及任务处理模块,按照所述用于批量处理的任务数量,对所述任务队列中的任务进行批量处理。
本公开的实施例还提供了一种图形任务处理系统,包括:处理器,存储器,其上存储有指令,所述指令在被所述处理器执行时,使得所述处理器执行以下操作:基于请求生成图形任务,并向任务队列提交所述图形任务;在任务队列中缓存所述图形任务;以及执行如上所述的任务处理方法。
本公开的实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被执行时实现上述的任务处理方法。
本公开的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开实施例的任务处理方法。
本公开的实施例提供了一种任务处理方法和装置、图形任务处理系统以及计算机可读存储介质。本公开的实施例提供的任务处理方法通过基于系统负载来动态地调整批量大小,能够兼顾对于请求执行任务的请求的处理时延与系统吞吐量,能够解决在不同的系统负载的情况下的计算系统性能的调优问题并提高计算资源的使用效率。
附图说明
为了更清楚地说明本公开的实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。下面描述中的附图仅仅是本公开的示例性实施例。
图1是示出一种任务处理系统的示例示意图。
图2是示出根据本公开的实施例的任务处理系统的示例的示意图。
图3A是示出根据本公开的实施例的任务处理方法的流程图。
图3B-3C是示出根据本公开的实施例的任务处理方法的子步骤的两种实施方式的流程图。
图4A-4B是示出根据本公开的实施例的任务处理装置的示意结构框图。
图5是示出根据本公开的实施例的任务处理设备的示意结构框图。
图6是示出根据本公开的实施例的图形任务处理系统的示意结构框图。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
在本说明书和附图中,具有基本上相同或相似步骤和元素用相同或相似的附图标记来表示,且对这些步骤和元素的重复描述将被省略。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或排序。
目前,GPU并行计算已在多个领域实现应用落地,例如应用于当前火热的人脸识别、无人驾驶等。这些领域广泛采用了人工智能技术,例如深度学习,通过完美模拟人脑神经元多层深度传递过程,大幅提升解决问题的速度与复杂程度。由于这些应用需要对大量数据进行快速计算,传统的CPU架构已然无法胜任,因此GPU基于其强大的并行计算能力已成为最佳方案。
本公开的实施例提供的方案涉及对任务进行并行批量处理等技术,具体通过如下实施例进行说明。
图1是示出了一种任务处理系统100的示例示意图。
如图1所示,任务处理系统按照功能进行划分可以包括任务生成器(也可被称为任务生产者)、任务队列、以及任务处理装置(包括处理单元以及至少两个任务执行器,每个处理单元可以被称为任务消费者)。任务生成器接收请求,基于请求生成待执行的任务,并向任务队列提交任务。任务队列被配置为接收并缓存来自任务生成器的任务。任务处理装置被配置为在其能够处理任务的时候,按照预设参数从任务队列获取用于批量处理的任务,并在获取了用于批量处理的任务之后对该任务进行批量处理。
如前面所述,上述任务处理系统可以用于刷脸支付、人脸识别以及车辆识别等场景,例如基于所捕获的多张人脸图像的特征而在图像库中进行检索以确定人的具体身份的场景,特别是在当前人工智能技术被广泛应用到这些场景时的情况,此时需要大量复杂图形处理计算。在这种情况下,上述任务可以是图形处理任务,并且任务处理装置所使用的处理单元可以为图形处理单元(GPU),每个任务执行器可以与GPU的一个流处理器相对应。此外,在后文描述的某些实施例中,以任务处理装置用于批量处理的图形处理任务为例进行了描述,但是本领域技术人员将理解,本公开的实施例所提出的任务处理方法和装置可以用于批量处理的其他类型的任务。此外,在本公开的实施例中,任务处理装置能够利用其包括的多个(至少两个)任务执行器以及处理单元来并行地处理这些要被批量处理的任务。
在如图1所示的任务处理系统中,任务处理装置可以根据如下两种方案来获取要用于批量处理的任务:
方案一、按照预定的批量大小获取任务;以及
方案二、设置预设等待时间,如果任务队列的长度一直无法达到预定的批量大小,则在预设等待时间期满时获取任务队列中的任务。
但是,上述方案在实际应用中,往往存在以下缺点。
一方面,预定的批量大小确定困难。上述方案一中,预定的批量大小一般是一项系统配置参数,而该系统配置参数值直接受到请求量(在本文的其他部分,可以与任务数量、任务队列的长度、系统负载等互换使用)大小的影响,所以确定该预定的批量大小比较困难。例如,若该系统配置参数选取过大,会导致在大部分情况下任务队列的长度无法达到预定的批量大小,因此会浪费处理单元的运算能力,并且等待任务队列里的任务凑齐一个预定的批量大小的时间也比较长,因此影响了处理的实时性;而若该系统配置参数选取过小,则一次批量处理只能处理少量的任务,则无法充分利用处理单元的并行计算能力。
另一方面,预设等待时间确定困难。上述方案二中,与预定的批量大小类似,预设等待时间也是一项系统配置参数,同样也会直接受到请求量大小的影响。若预设等待时间设置得过长,会导致即使只有很少(例如1个)任务的情况下也要经过该预设等待时间之后才会将任务输出给任务处理装置并由任务处理装置利用其包括的处理单元进行批量处理,因此影响了处理的实时性,例如单请求时延增加;而若预设等待时间设置得过短,会导致大部分情况时批量处理的任务的批量大小都无法达到预设的批量大小,因此浪费处理单元的运算能力。
由以上分析可知,由于有预定的批量大小和预设等待时间两个可调预设参数存在,使得在对系统性能进行调优时很难兼顾系统时延与系统吞吐量的要求。
本申请的发明人发现,为了兼顾系统时延与系统吞吐量的要求,可以在系统负载较低时,牺牲处理单元的部分并行运算能力,从而增强实时性,例如适当减小用于批量处理的任务数量,从而减小等待时间,减小系统单请求时延;而当系统负载较高时,牺牲部分处理延时,充分发挥处理单元的并行运算能力,提升系统吞吐量,例如增大用于批量处理的任务数量,从而增大等待时间。
因此,本公开的实施例提出了一种改进的任务动态分配及处理方法和装置、图形任务处理系统以及计算机可读存储介质。本公开的实施例通过基于系统负载来动态地调整批量处理规模(即用于批量处理的任务数量),能够兼顾对于请求执行任务的请求的处理时延与系统吞吐量,能够解决在不同的系统负载的情况下计算系统的性能调优问题并提高计算资源的使用效率。
根据本公开的实施例的任务处理方法可以用于刷脸支付、人脸识别以及车辆识别等场景,特别是在当前人工智能技术被广泛应用到这些场景从而需要大量计算时的情况。
以下将结合图2-5对本公开的实施例的任务处理方法和装置、图形任务处理系统、计算机可读存储介质以及计算机程序产品进行详细介绍。
图2示出了根据本公开的实施例的任务处理系统200的示例示意图。在图1所示的任务分配系统的各个组成部分的基础上,在任务分配装置中加入了任务分配单元。该任务分配单元被配置为基于系统负载(也称为请求量、任务数量、任务队列的长度)来动态地调整要用于批量处理的任务数量,并按照动态调整的用于批量处理的任务数量从任务队列抓取任务,并将抓取的任务分配(或输出、传送等)至任务执行器。
根据本公开的实施例的任务处理系统所包括的按照功能划分的任务生成器、任务队列、任务处理装置以及处理单元可以被设置在单台服务器上,但是也可以设置在多台服务器上以构成分布式系统,本公开对此不做限制。此外,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
为了更好地帮助理解本申请的发明构思,首先介绍批量处理的几个特点,下文以处理单元为GPU为例。
1.GPU显存占用
GPU显存占用与用于批量处理的任务数量(batch size)存在以下关系:用于批量处理的任务数量的数量越大,GPU显存占用越大,接近于等比例关系。一般地,用于批量处理的任务数量不可能无限大。
2.GPU计算能力消耗
GPU计算能力消耗与用于批量处理的任务数量存在以下关系:
G1<Gk<k*G1
其中k表示用于批量处理的任务数量,且k为大约等于2的整数,G1表示用于批量处理的任务数量为1时消耗的GPU运算能力,并且Gk表示用于批量处理的任务数量为k时消耗的GPU运算能力。也就是说,在上式中,更大的用于批量处理的任务数量所消耗的GPU运算能力更大,但是小于单独地执行该用于批量处理的任务数量对应的各个任务所消耗的GPU运算能力之和。因此,才需要按照用于批量处理的任务数量来对任务队列中的任务进行批量处理,以减小所消耗的GPU运算能力。
同时,经过测试可知,当k超过特定值时,Gk的值和k·G1的差别不是特别大,因此k在一定范围内以上关系才成立。该范围是经验值。
3.处理耗时
处理耗时与批量大小存在以下关系:
t1<tk<k*t1
其中k表示用于批量处理的任务数量,t1表示用于批量处理的任务数量为1时的处理耗时,并且tk表示用于批量处理的任务数量为1时的处理耗时。也就是说,在上式中,更大的用于批量处理的任务数量所需要的处理耗时更大,但是小于单独地执行该用于批量处理的任务数量对应的各个任务所需要的处理耗时之和。因此,才需要按照用于批量处理的任务数量来对任务队列中的任务进行批量处理,以减小所消耗的GPU运算能力。
同时,经过测试可知,当k超过特定值时,tk的值和k·t1的差别不是特别大,因此k在一定范围内以上关系才成立。该范围是经验值。
如前面分析,若使用较小的用于批量处理的任务数量,当系统负载较大时,系统需要频繁地按照较小的用于批量处理的任务数量进行小批量处理,因此对GPU的运算能力消耗较大,同时限制了系统的吞吐量;若使用较大的用于批量处理的任务数量,当系统负载较小时,每次批量处理的任务无法用满一个批量(batch),浪费GPU的运算能力,并且单请求耗时较大。因此,根据系统负载大小动态调整用于批量处理的任务数量十分必要。需要注意的是,用于批量处理的任务数量调整的下限是1,即不使用GPU批量处理策略,单独处理每个任务;而调整上限一般是由GPU显存限制,或经验测试得到的先验值,这里设为K。
下面结合图3A-3C来描述根据本公开的实施例的任务处理方法。
图3A示出了根据本公开的实施例的任务处理方法的示意流程图。
在步骤S310,按照第一预设时间间隔,获取任务队列长度,并确定任务队列长度的变化量。
任务队列长度是指被提交至任务队列中的任务的数量,例如可以通过计数器等方式来获取。
在一些情况下,可能在较长的时间段内都没有任务被提交至任务队列,因此可以不必如此频繁的对任务队列长度进行获取,以便减少功耗以及计算量。因此,在所获取的任务队列长度指示任务队列为空的情况下,按照第二预设时间间隔的初始值,获取任务队列长度,其中,第二预设时间间隔的初始值与第一预设时间间隔的值是预设的且第二预设时间间隔的初始值大于等于第一预设时间间隔的值。此外,在开始按照第二预设时间间隔获取的任务队列长度之后,所获取的任务队列长度指示任务队列仍为空的情况下,利用递增的时间间隔更新第二预设时间间隔;以及在按照第二预设时间间隔获取的任务队列长度指示任务队列不再为空的情况下,改为按照第一预设时间间隔,获取任务队列长度。
例如,假设第一预设时间间隔为10ms,第二预设时间间隔的初始值为15ms。在按照第一预设时间间隔10ms获取的任务队列长度为0从而指示任务队列为空的情况下,开始按照第二预设时间间隔的初始值15ms而不是第一预设时间间隔10ms获取任务队列长度,并且在经过15ms时所获取的任务队列长度指示任务队列仍为空的情况下,将第二预设时间间隔更新为更长的时间间隔20ms,并且在经过20ms时继续获取任务队列长度,以此类推并基于递增的时间间隔更新第二预设时间间隔,直到所获取的任务队列长度指示任务队列不再为空,则此时重新按照第一预设时间间隔10ms获取任务队列长度。应了解,尽管以等距的方式进行第二预设时间间隔的递增,然而本公开不限于此,还可以以其他方式进行递增。
可选地,可以基于指数退避算法更新第二预设时间间隔。指数退避算法的原理是对于连续错误响应,重试等待间隔越来越长,并且重试等待间隔的时长随着重试次数的增加而呈指数增长。也就是说,在本公开的实施例中,如果任务队列一直为空,那么可以不停地按照第二预设时间间隔重试获取任务队列长度,并且第二预设时间间隔越来越长且随着重试次数的增加而呈指数增长。例如,可以预先设置第二预设时间间隔的最大值以及最大重试次数。
此外,应了解,上述设置第二预设时间间隔来确定所述任务队列长度是否为空不是必须的,也可以一直都按照第一预设时间间隔来获取任务队列长度,并如后面的步骤所述的基于所获取的任务队列长度为0而计算得到用于批量处理的任务数量为0,而不向任务处理装置分配任何任务。
在步骤S320,基于所获取的任务队列长度以及任务队列长度的变化量,确定用于批量处理的预测任务数量。
可选地,根据用于批量处理的预测任务数量与任务队列长度和任务队列长度的变化量的函数关系,来确定用于批量处理的预测任务数量。
可选地,函数关系应满足:在系统负载较高,例如任务队列长度和任务队列长度的变化量中的至少一个的值较大的情况下,用于批量处理的预测任务数量也应该选择较大的值,在系统负载较低,例如任务队列长度和任务队列长度的变化量的值均较小的情况下,用于批量处理的预测任务数量也应该选择较小的值。
可选地,函数关系为:k=a*s+b*△s。其中,k是用于批量处理的预测任务数量,s指示所获取的任务队列长度,△s指示任务队列长度的变化量、并且为按照第一预设时间间隔所获取的任务队列长度与前一任务队列长度之间的差值,a和b是非零常数,并且可以通过经验确定。
更具体地,在按照第一时间间隔对任务队列长度进行获取的情况下,第1次、第2次、…、以及第n次获取的任务队列长度可以被表示为s(1)、s(2)、…、s(n),因此该函数关系还可以进一步表达为k(n)=a*s(n)+b[s(n)-s(n-1)]。其中,s(n)指示第n次获取的任务队列长度,s(n-1)指示第n-1次获取的任务队列长度,n是大于等于1的整数,并且定义s(0)=0,k(n)是基于第n次获取的任务队列长度和任务队列长度的变化量所确定的用于批量处理的预测任务数量,a和b是非零常数,并且可以通过经验确定。
可选地,任务队列的最大长度是可知的,用于批量处理的预测任务数量与任务队列长度和任务队列长度的变化量之间的对应关系可以预先计算并存储,当获取到新的任务队列长度以及确定了新的任务队列长度的变化量时,可以通过例如查表的方式而直接获取到用于批量处理的预测任务数量,从而进一步减少了系统计算量。例如,任务队列的最大长度为10,那么任务队列长度的可能值可以为1到10中的任意整数值,并且任务队列长度的变化量的可能值可以为0到9中的任意整数值,那么根据特定的对应关系,例如根据上述函数关系,可以得到与任一可能的任务队列长度和任一可能任务队列长度的变化量相对应的用于批量处理的预测任务数量。
在步骤S330,基于任务队列长度以及用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量。
可选地,在所确定的用于批量处理的预测任务数量不大于对应的所获取的任务队列长度的情况下,将预测任务数量确定为用于批量处理的任务数量。例如,当预测任务数量为4,并且对应的所获取的任务队列长度为8的情况下,也就是说,在任务处理装置可以执行任务时,任务分配装置从任务队列的8个任务中拉取出4个任务,并将所拉取出的4个任务分配到任务处理装置。
可选地,在所确定的用于批量处理的预测任务数量大于对应的所获取的任务队列长度的情况下,基于预设等待时间内任务队列长度的动态变化,动态地确定用于批量处理的任务数量。例如,当预测任务数量为8,并且对应的所获取的任务队列长度为4的情况下,也就是说,预测任务数量为8个,但是任务队列里只有4个任务,这4个任务并不能填满一个批量(batch),因此可以等待预设等待时间,并根据预设等待时间内任务队列长度的动态变化,动态地确定用于批量处理的任务数量。主要可以分为以下两种方式。
第一种方式对应于在预设等待时间内按照所确定的用于批量处理的预测任务数量进行判断而不更新用于批量处理的预测任务数量的情况。
具体地,如图3B所示,由于在该预设等待时间内更新任务队列长度,但是不更新用于批量处理的预测任务数量,因此仅需将更新的任务队列长度与用于批量处理的未更新的预测任务数量进行比较。即,在预设等待时间内,按照第一预设时间间隔,获取更新的任务队列长度,其中更新的任务队列长度表征了所述任务队列长度的动态变化;在预设等待时间内在所确定的未更新的预测任务数量不大于更新的任务队列长度的情况下,或者在所述预设等待时间期满且所确定的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,将该所确定的未更新的预测任务数量确定为用于批量处理的任务数量;以及在预设等待时间期满时,在所确定的未更新的预测任务数量仍大于更新的任务队列长度的情况下,将更新的任务队列长度确定为用于批量处理的任务数量。
例如,如果预测任务数量不更新并保持为8个,但是在预设等待时间内有新的任务被提交到任务队列中,从而使得更新的任务队列长度已经从4个变为10个,或者,在预设等待时间内更新的任务队列长度小于8个但是在预设等待时间期满时更新的任务队列长度为10个,则在这两种情况下可以将预测任务数量(8个)确定为用于批量处理的任务数量。另一方面,如果在预设等待时间内有新的任务被提交到任务队列中,并且在预设等待时间期满时更新的任务队列长度已经从4个变为6个,但是仍然小于预测任务数量(8个),因此,在预设等待时间期满时,将更新的任务队列长度(6个)确定为用于批量处理的任务数量。
第二种方式对应于在预设等待时间内更新用于批量处理的预测任务数量的情况。
具体地,如图3C所示,由于在该预设等待时间内需要更新预测任务数量,因此需要基于更新的任务队列长度与更新的任务队列长度的变化量确定更新的预测任务数量。即,在预设等待时间内,按照第一预设时间间隔,获取更新的任务队列长度以及更新的任务队列长度的变化量,其中更新的任务队列长度表征了所述任务队列长度的动态变化;基于更新的任务队列长度以及更新的任务队列长度的变化量,确定更新的用于批量处理的预测任务数量;以及在所述预设等待时间内在所更新的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,或者在所述预设等待时间期满且在所更新的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,将所述更新的预测任务数量确定为用于批量处理的任务数量;以及在预设等待时间期满时,在所确定的更新的预测任务数量仍大于更新的任务队列长度,将更新的任务队列长度确定为用于批量处理的任务数量。
例如,如果在预设等待时间内有新的任务被提交到任务队列中,从而使得在预设等待时间期内,更新的任务队列长度已经从4个变为11个,更新的预测任务数量已经从8个变为10个,或者在预设等待时间内更新的任务队列长度更新的预测任务数量但是在预设等待时间期满时更新的任务队列长度为10个,则由于更新的用于批量处理的预测任务数量小于等于更新后的任务队列长度,因此可以将该更新的预测任务数量(10个)确定为用于批量处理的任务数量。另一方面,如果在预设等待时间期满时更新的任务队列长度已经从4个变为10个,更新的预测任务数量已经从8个变为12个,即,更新的任务队列长度(10个)仍然小于更新的预测任务数量(12个),因此,将更新的任务队列长度(10个)确定为用于批量处理的任务数量。
在一些实施例中,预设等待时间的时长可以等于或长于所述第一预设时间间隔。通过如此设置,能够保证在预设等待时间期满时可以获取到任务队列长度的至少一个值,以便能够得到更新的任务队列长度和/或更新的任务队列长度的变化量,从而用于后续确定用于批量处理的任务数量。
此外,在一些实施例中,考虑到实时性的要求,预设等待时间的时长也可以为毫秒级或者为0。这样,在所确定的用于批量处理的预测任务数量大于该次获取的任务队列长度的情况下,即使任务队列里的任务不能填满所确定的预测任务数量对应的一个批量(batch),也将该任务队列里的任务向任务处理装置分配,以减少任务处理时延。例如,以预设等待时间的时长为0毫秒为例,当预测任务数量为8,并且对应的所获取的任务队列长度为4的情况下,也就是说,预测任务数量为8个,但是任务队列里只有4个任务,并不能填满一个批量(batch),但是仍然立即将任务队列里的4个任务向能够处理任务的任务处理装置分配,以减少任务处理时延。
在步骤S340,按照所述用于批量处理的任务数量,对所述任务队列中的任务进行批量处理。
可选地,任务处理装置包括多个任务执行器,多个任务执行器可以利用处理单元来对任务进行并行处理。
可选地,任务处理装置(即,任务执行器)从任务队列中拉取用于批量处理的任务数量的任务,将所拉取的用于批量处理的任务数量的任务分配至该多个任务执行器,并且通过该多个任务执行器对用于批量处理的任务数量的任务进行批量处理。
可选地,该步骤可以在任务处理装置能够处理任务的情况下而被执行。
具体地,在已经确定了用于批量处理的任务数量时,如果任务处理装置中的任务执行器(以及处理单元)正在执行任务,即任务执行器正被占用,则此时不向任务执行器分配任务。在任务执行器能够执行批量任务的情况下,例如空闲时,则该任务执行器可以向任务分配单元发送指示信号,从而任务分配单元可以向任务执行器按照所确定的用于批量处理的任务数量而分配所述任务队列中的任务。
在本公开的另一实施例中,步骤S320-S340可以响应于从任务执行器接收到其能够处理任务的指示而被执行。也就是说,在步骤S310按照第一预设时间间隔获取了任务队列长度并确定了任务队列长度的变化量之后,并不立即执行步骤S320-S340,而是将在步骤S310获取的任务队列长度和确定的任务队列长度的变化量进行存储并更新,并且在任务处理装置中的任务执行器发送了其能够处理任务的指示之后,才基于当前存储的任务队列长度和任务队列长度的变化量来确定用于批量处理的预测任务数量,并基于当前存储的更新的任务队列长度以及所述用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量,然后按照用于批量处理的任务数量向任务处理装置分配任务队列中的任务。
通过这种实施方式,如果任务处理装置正在执行任务,即任务处理装置的任务执行器或者处理单元正被占用,则可以不在每次获取任务队列长度之后都进行用于批量处理的任务数量的确定步骤,而仅在任务处理装置可用的情况下才进行用于批量处理的任务数量的确定步骤,从而可以进一步减少系统的计算量。
在本公开的任务处理方法中,基于提交至任务队列的任务量(即系统负载)来动态地调整用于批量处理的任务数量,能够兼顾对于请求执行任务的请求的处理时延与系统吞吐量,能够解决在不同的系统负载的情况下计算系统的性能调优问题并提高计算资源的使用效率。
根据本公开的另一方面,还提供了一种任务处理装置。图4A-4B示出了根据本公开的实施例的任务处理装置400的示意结构框图。
任务处理装置400可以包括:获取模块401、第一确定模块402、第二确定模块403以及处理模块404。其中,获取模块401被配置为按照第一预设时间间隔,获取任务队列长度,并确定所述任务队列长度的变化量;第一确定模块402被配置为基于所获取的任务队列长度以及所述任务队列长度的变化量,确定用于批量处理的预测任务数量;第二确定模块403被配置为基于所述任务队列长度以及所述用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量;以及处理模块404被配置为按照所述用于批量处理的任务数量,对所述任务队列中的任务进行批量处理。
在一个实施例中,获取模块401在所获取的任务队列长度指示任务队列为空的情况下,按照第二预设时间间隔,获取任务队列长度;在按照所述第二预设时间间隔获取的任务队列长度指示所述任务队列仍为空的情况下,利用递增的时间间隔更新所述第二预设时间间隔;以及在按照所述更新的第二预设时间间隔获取的任务队列长度指示所述任务队列不再为空的情况下,按照所述第一预设时间间隔,获取任务队列长度。
在一个实施例中,在第一确定模块402确定的用于批量处理的预测任务数量不大于所述任务队列长度的情况下,第二确定模块403将所述预测任务数量确定为用于批量处理的任务数量;以及在第一确定模块402确定的用于批量处理的预测任务数量大于所述任务队列长度的情况下,第二确定模块403基于预设等待时间内所述任务队列长度的动态变化,动态地确定用于批量处理的任务数量。
在一个实施例中,在预设等待时间内第二确定模块403借助于获取模块401按照第一预设时间间隔所获取的更新的任务队列长度,并且第二确定模块403在预设等待时间内在所确定的用于批量处理的预测任务数量不大于更新的任务队列长度的情况下,或者在预设等待时间期满且所确定的用于批量处理的预测任务数量不大于更新的任务队列长度的情况下,将预测任务数量确定为用于批量处理的任务数量;以及第二确定模块403在预设等待时间期满且所确定的用于批量处理的预测任务数量仍大于更新的任务队列长度的情况下,将更新的任务队列长度确定为用于批量处理的任务数量。
在一个实施例中,在预设等待时间内第二确定模块403借助于获取模块401按照第一预设时间间隔所获取的更新的任务队列长度以及确定的更新的任务队列长度的变化量,以及借助于第一确定模块401基于更新的任务队列长度以及更新的任务队列长度的变化量确定的更新的用于批量处理的预测任务数量,第二确定模块403在预设等待时间内在所更新的用于批量处理的预测任务数量不大于更新的任务队列长度的情况下,或者在预设等待时间期满且在所更新的用于批量处理的预测任务数量不大于更新的任务队列长度的情况下,将更新的预测任务数量确定为用于批量处理的任务数量;以及第二确定模块403在预设等待时间期满且所确定的用于批量处理的预测任务数量仍大于更新的任务队列长度的情况下,将更新的任务队列长度确定为用于批量处理的任务数量。
在一个实施例中,如图4B所示,任务处理子模块404包括:拉取子模块4041、分配子模块4042和任务处理子模块4043。拉取子模块4041从所述任务队列中拉取所述用于批量处理的任务数量的任务,分配子模块4042将所拉取的所述用于批量处理的任务数量的任务分配给任务处理子模块4043,并且任务处理子模块4043对所述用于批量处理的任务数量的任务进行批量处理。
根据本公开的另一方面,还提供了一种任务处理设备。图5示出了根据本公开的实施例的任务处理设备500的示意结构框图。
参见图5,根据本公开的实施例的任务处理设备500可以包括处理器501和存储器502。处理器501和存储器502可以通过总线503相连。
处理器501可以根据存储在存储器502中的程序执行各种动作和处理。具体地,处理器501可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开的实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X87架构或ARM架构的。
存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DR RAM)。应注意,本公开描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
如前面所述,本公开的实施例的任务处理系统可以为图形任务处理系统。图6示出了根据本公开的实施例的图形任务处理系统600的示意结构框图。图形任务处理系统600可以包括处理器601和存储器602。处理器601和存储器602可以通过总线603相连。存储器602上存储有指令,所述指令在被所述处理器601执行时,使得所述处理器执行以下操作:基于请求生成图形任务,并向任务队列提交所述图形任务;在任务队列中缓存所述图形任务;执行如前所述的根据本公开的实施例的任务处理方法。
处理器601和存储器602可以采用与参考图5所描述的处理器501和存储器502相同的配置。
此外,图形任务处理系统600也可以分布在多台服务器当中构成分布式图形处理计算机系统。每台服务器中也包括处理器和存储器。每个存储器上存储有指令,所述指令在各种对应的处理器执行时,使得各自对应的处理器执行由图形任务处理系统所执行的上述操作中的至少一部分。
本公开的实施例还提供了一种计算机可读存储介质,其上存储有计算机可执行指令,该计算机指令被处理器执行时可以实现根据本公开实施例的三维地图处理方法。类似地,本公开实施例中的计算机可读存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开实施例的任务处理方法。
需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
在上面详细描述的本发明的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本发明的范围内。
Claims (12)
1.一种任务处理方法,包括:
按照第一预设时间间隔,获取任务队列长度,并确定所述任务队列长度的变化量;
基于所获取的任务队列长度以及所述任务队列长度的变化量,确定用于批量处理的预测任务数量;
基于所述任务队列长度以及所述用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量;以及
按照所述用于批量处理的任务数量,对所述任务队列中的任务进行批量处理,
其中,基于所述任务队列长度以及所述用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量,包括:
在所确定的用于批量处理的预测任务数量不大于所述任务队列长度的情况下,将所述预测任务数量确定为用于批量处理的任务数量;以及
在所确定的用于批量处理的预测任务数量大于所述任务队列长度的情况下,基于预设等待时间内所述任务队列长度的动态变化,动态地确定用于批量处理的任务数量。
2.根据权利要求1所述的方法,其中,基于所获取的任务队列长度以及所述任务队列长度的变化量,确定用于批量处理的预测任务数量,包括:
根据用于批量处理的预测任务数量与所述任务队列长度和所述任务队列长度的变化量的函数关系,来确定用于批量处理的预测任务数量。
3. 根据权利要求1所述的方法,其中,基于预设等待时间内所述任务队列长度的动态变化,动态地确定用于批量处理的任务数量,包括:
在所述预设等待时间内,按照所述第一预设时间间隔,获取更新的任务队列长度,其中,所述更新的任务队列长度表征了所述任务队列长度的动态变化;以及
在所述预设等待时间内在所确定的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,或者在所述预设等待时间期满且所确定的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,将所述预测任务数量确定为用于批量处理的任务数量;
在所述预设等待时间期满且所确定的用于批量处理的预测任务数量仍大于所述更新的任务队列长度的情况下,将所述更新的任务队列长度确定为用于批量处理的任务数量。
4.根据权利要求1所述的方法,其中,基于预设等待时间内所述任务队列长度的动态变化,动态地确定用于批量处理的任务数量,包括:
在所述预设等待时间内,按照所述第一预设时间间隔,
获取更新的任务队列长度以及更新的任务队列长度的变化量,其中,所述更新的任务队列长度表征了所述任务队列长度的动态变化;
基于所述更新的任务队列长度以及更新的所述任务队列长度的变化量,确定更新的用于批量处理的预测任务数量;
在所述预设等待时间内在所更新的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,或者在所述预设等待时间期满且在所更新的用于批量处理的预测任务数量不大于所述更新的任务队列长度的情况下,将所述更新的预测任务数量确定为用于批量处理的任务数量;以及
在所述预设等待时间期满且所确定的用于批量处理的预测任务数量仍大于所述更新的任务队列长度的情况下,将所述更新的任务队列长度确定为用于批量处理的任务数量。
5.根据权利要求3或4所述的方法,其中,所述预设等待时间等于或长于所述第一预设时间间隔。
6.根据权利要求1所述的方法,其中,按照第一预设时间间隔,获取任务队列长度,包括:
在所获取的任务队列长度指示任务队列为空的情况下,按照第二预设时间间隔,获取任务队列长度;
在按照所述第二预设时间间隔获取的任务队列长度指示所述任务队列仍为空的情况下,利用递增的时间间隔更新所述第二预设时间间隔;以及
在按照所述更新的第二预设时间间隔获取的任务队列长度指示所述任务队列不再为空的情况下,按照所述第一预设时间间隔,获取任务队列长度。
7.根据权利要求6所述的方法,其中,利用递增的时间间隔更新所述第二预设时间间隔包括:
基于指数退避算法更新所述第二预设时间间隔,其中所述指数退避算法使得第二预设时间间隔随着重新获取任务队列长度的次数的增加而呈指数增长,
其中,所述第二预设时间间隔的初始值与第一预设时间间隔的值相等。
8. 根据权利要求1所述的方法,其中,按照所述用于批量处理的任务数量,对所述任务队列中的任务进行批量处理,包括:
从所述任务队列中拉取所述用于批量处理的任务数量的任务;以及
将所拉取的所述用于批量处理的任务数量的任务分配给多个任务执行器;
通过所述多个任务执行器对所述用于批量处理的任务数量的任务进行批量处理。
9.根据权利要求8所述的方法,其中,
所述任务为图形处理任务,
其中,通过所述多个任务执行器对所述用于批量处理的任务数量的任务进行批量处理包括:
通过所述多个任务执行器对所述用于批量处理的任务数量的任务进行并行处理。
10.一种任务处理装置,包括:
获取模块,被配置为按照第一预设时间间隔,获取任务队列长度,并确定所述任务队列长度的变化量;
第一确定模块,被配置为基于所获取的任务队列长度以及所述任务队列长度的变化量,确定用于批量处理的预测任务数量;
第二确定模块,被配置为基于所述任务队列长度以及所述用于批量处理的预测任务数量,动态地确定用于批量处理的任务数量;以及
任务处理模块,被配置为按照所述用于批量处理的任务数量,对所述任务队列中的任务进行批量处理,
其中,所述第二确定模块在动态地确定用于批量处理的任务数量时,被配置为:
在所确定的用于批量处理的预测任务数量不大于所述任务队列长度的情况下,将所述预测任务数量确定为用于批量处理的任务数量;以及
在所确定的用于批量处理的预测任务数量大于所述任务队列长度的情况下,基于预设等待时间内所述任务队列长度的动态变化,动态地确定用于批量处理的任务数量。
11.一种图形任务处理系统,包括:
处理器,
存储器,其上存储有指令,所述指令在被所述处理器执行时,使得所述处理器执行以下操作:
基于请求生成图形任务,并向任务队列提交所述图形任务;
在任务队列中缓存所述图形任务;
执行如权利要求1-9任一项所述的任务处理方法。
12.一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被执行以实现如权利要求1-9中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010750648.6A CN111737010B (zh) | 2020-07-30 | 2020-07-30 | 任务处理方法和装置、图形任务处理系统以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010750648.6A CN111737010B (zh) | 2020-07-30 | 2020-07-30 | 任务处理方法和装置、图形任务处理系统以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737010A CN111737010A (zh) | 2020-10-02 |
CN111737010B true CN111737010B (zh) | 2024-02-02 |
Family
ID=72656672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010750648.6A Active CN111737010B (zh) | 2020-07-30 | 2020-07-30 | 任务处理方法和装置、图形任务处理系统以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737010B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2495657A1 (en) * | 2011-03-03 | 2012-09-05 | Tieto Oyj | Efficient batch processing in a multi-tier application |
CN107395669A (zh) * | 2017-06-01 | 2017-11-24 | 华南理工大学 | 一种基于流式实时分布式大数据的数据采集方法及系统 |
CN108215202A (zh) * | 2018-01-15 | 2018-06-29 | 合肥工业大学 | 一种考虑打印质量的3d打印分批控制方法 |
CN110297711A (zh) * | 2019-05-16 | 2019-10-01 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
CN111324445A (zh) * | 2018-12-14 | 2020-06-23 | 中国科学院深圳先进技术研究院 | 一种任务调度模拟系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042787B2 (en) * | 2015-04-30 | 2018-08-07 | International Business Machines Corporation | Controlling data transfer for data processing |
US11010193B2 (en) * | 2017-04-17 | 2021-05-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
US10761886B2 (en) * | 2018-09-04 | 2020-09-01 | International Business Machines Corporation | Dynamically optimizing load in cloud computing platform using real-time analytics |
-
2020
- 2020-07-30 CN CN202010750648.6A patent/CN111737010B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2495657A1 (en) * | 2011-03-03 | 2012-09-05 | Tieto Oyj | Efficient batch processing in a multi-tier application |
CN107395669A (zh) * | 2017-06-01 | 2017-11-24 | 华南理工大学 | 一种基于流式实时分布式大数据的数据采集方法及系统 |
CN108215202A (zh) * | 2018-01-15 | 2018-06-29 | 合肥工业大学 | 一种考虑打印质量的3d打印分批控制方法 |
CN111324445A (zh) * | 2018-12-14 | 2020-06-23 | 中国科学院深圳先进技术研究院 | 一种任务调度模拟系统 |
CN110297711A (zh) * | 2019-05-16 | 2019-10-01 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111737010A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3734475A1 (en) | Method and device for training data, storage medium, and electronic device | |
CN110210610B (zh) | 卷积计算加速器、卷积计算方法及卷积计算设备 | |
CN107483351B (zh) | 一种限流方法及装置 | |
CN113055308B (zh) | 带宽调度方法、流量传输方法及相关产品 | |
CN112416554A (zh) | 一种任务迁移方法、装置、电子设备及存储介质 | |
EP1499962A2 (en) | System and method of optimizing graphics processing | |
CN106302780B (zh) | 集群设备批量传输数据的方法、装置及系统、服务器 | |
JP2014206979A (ja) | プロセス並列処理装置及び方法 | |
KR20190054052A (ko) | 매트릭스 처리 장치 | |
CN111198754B (zh) | 一种任务调度方法及装置 | |
JP2019523618A5 (zh) | ||
CN113592066A (zh) | 硬件加速方法、装置、设备、计算机程序产品及存储介质 | |
CN113141321A (zh) | 一种基于边缘计算的数据传输方法及电子设备 | |
CN116684420A (zh) | 集群资源调度方法、装置、集群系统和可读存储介质 | |
CN111737010B (zh) | 任务处理方法和装置、图形任务处理系统以及存储介质 | |
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
CN105049240A (zh) | 一种消息处理方法及服务器 | |
CN116306840A (zh) | 神经网络运算方法、装置、芯片、电子设备和存储介质 | |
CN113452546A (zh) | 深度学习训练通信的动态服务质量管理 | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
CN114760529B (zh) | 多通道视频数据的传输方法、装置、计算机设备 | |
CN115774605A (zh) | Kubernetes的预测式弹性伸缩方法及系统 | |
CN115618966A (zh) | 用于训练机器学习模型的方法、装置、设备和介质 | |
CN111343729B (zh) | 无线数据传输方法及装置、存储介质、站点 | |
CN110929854A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40031359 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |