CN109697122B - 任务处理方法、设备及计算机存储介质 - Google Patents
任务处理方法、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN109697122B CN109697122B CN201710990199.0A CN201710990199A CN109697122B CN 109697122 B CN109697122 B CN 109697122B CN 201710990199 A CN201710990199 A CN 201710990199A CN 109697122 B CN109697122 B CN 109697122B
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- tasks
- processed
- resources
- 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
- 238000003672 processing method Methods 0.000 title abstract description 8
- 238000012545 processing Methods 0.000 claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000005540 biological transmission Effects 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims abstract description 13
- 230000003993 interaction Effects 0.000 claims abstract description 3
- 238000004891 communication Methods 0.000 claims description 21
- 238000002360 preparation method Methods 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 24
- 238000007726 management method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000013523 data management Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction 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
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例公开了任务处理方法、设备及计算机存储介质,其中所述方法包括:接收待处理的任务,并确定所述任务是否存在任务依赖关系,其中,所述任务依赖关系是指任务之间存在相互影响的关系,所述任务包括有所述任务的属性信息;在所述任务不存在任务依赖关系时,根据所述任务的属性信息为所述任务分配空闲的内核资源,以利用所述内核资源处理所述任务。采用本发明实施例,能够有效解决具备任务依赖关系的任务的相关调度处理问题,降低了任务的传输时延,从而提升了任务处理效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及任务处理方法、设备及计算机存储介质。
背景技术
在5G软基带样机开发中,现有软基带的信号处理平台的框架示意图具体如图1所示。具体的,该平台可包括多个节点设备blade(图示为6个blade),每个blade有两个处理器(图示为P1和P2)。其中,P1和P2之间通过公共系统接口(Common System Interface,CSI,也可简称为QPI)连接。Blade之间通过交换机(图示为IB Swtich)连接。交换机将各个节点(blade)发送来的数据流进行处理,然后将处理结果发送给射频拉远单元(Remote radiohead,RRH),以完成信号的变频。
5G云无线网络(cloud RAN)中为提供高性能、低时延的通信服务,需使用到大量的数据中心网络(data central network,DCN)。但在实际应用中,组成DCN的各节点(blade)间进行通信时,由于节点间的距离等原因将造成不同的传输时延,从而影响信号处理速率。
为解决上述问题,现有技术提出一种分布式自适应算法,用于调度处理节点中的任务(即任务相关的数据包)。具体的,如图2,将输入的任务数据打包放入到数据池,接着主节点将任务的数据包分配至各个队列中,每个队列连接到各自相应地的目标节点上,以在目标节点中处理对应队列中的任务。但在实践中发现,现有技术只有在任务的数据到来时才会被执行,且这些任务的数据之间是没有任何依赖/关联关系的,这样才能被独立打包放入至数据池中,并分配给各个目标节点blade。然而,在实际的5G协议栈中,任务之间并不是独立的,会存在任务依赖关系。因此,上述现有技术所提供的方案并不适用于具备任务依赖关系的任务处理系统。
发明内容
本发明实施例公开了任务处理方法、设备及计算机存储介质,提出了解决具备任务依赖关系的任务的调度处理方案,降低了任务的传输时延,从而提升了任务处理效率。
第一方面,本发明实施例公开提供了一种设备,包括请求控制器和仲裁控制器,
所述请求控制器用于接收待处理的任务,并确定所述任务是否存在任务依赖关系,其中,所述任务依赖关系是指任务之间存在相互影响的关系,所述任务包括有所述任务的属性信息;
所述仲裁控制器用于在所述任务不存在任务依赖关系时,根据所述任务的属性信息为所述任务分配空闲的内核资源,以利用所述内核资源处理所述任务。
在一些可能的实施例中,所述仲裁控制器用于根据所述任务的属性信息为所述任务分配空闲的内核资源包括:
所述仲裁控制器用于在所述设备中存在空闲的用于处理所述任务的内核资源时,将所述任务分配给所述设备中空闲的内核资源;或者,
所述仲裁控制器用于在所述设备中不存在空闲的用于处理所述任务的内核资源时,将所述任务分配给除所述设备外的其他设备中空闲的内核资源。
在一些可能的实施例中,所述任务是基于队列机制处理的,所述队列包括以下中的至少一项:等待队列、准备队列、运行队列以及结束队列;其中,所述等待队列用于排列待处理的任务,所述准备队列用于排列不存在任务依赖关系的任务,所述运行队列用于排列能够利用空闲的内核资源处理的任务,所述结束队列用于排列任务处理完毕后的任务。
在一些可能的实施例中,还包括调节控制器,
所述调节控制器用于调节所述队列中的任务的长度,其中,所述队列中的任务的长度取决于以下信息中的至少一项:所述设备的计算能力、所述任务的传输时延。
在一些可能的实施例中,所述调节控制器包括PID控制器和长度识别器,
所述PID控制器用于调节所述队列中的任务的长度;
所述长度识别器用于统计所述队列中的任务的长度,并反馈给所述PID控制器,以便所述PID控制器调节所述队列的长度。
在一些可能的实施例中,所述队列中的任务是根据所述任务的优先级处理的,其中,若同一个队列中包括第一任务和第二任务,且所述第一任务的优先级高于所述第二任务的优先级,则所述第一任务优先于所述第二任务被处理。
在一些可能的实施例中,所述队列中的任务的优先级取决于以下信息中的至少一项:所述任务的负载量、所述任务是否存在任务依赖关系。
在一些可能的实施例中,所述属性信息包括以下中的至少一项:所述任务的缓存地址、所述任务的缓存大小、所述任务的预留资源;其中,所述任务的预留资源是指为所述任务关联产生的中间数据所预留的缓存资源。
第二方面,本发明实施例公开提供了一种任务处理方法,包括:
接收待处理的任务,并确定所述任务是否存在任务依赖关系,其中,所述任务依赖关系是指任务之间存在相互影响的关系,所述任务包括有所述任务的属性信息;
在所述任务不存在任务依赖关系时,根据所述任务的属性信息为所述任务分配空闲的内核资源,以利用所述内核资源处理所述任务。
关于本发明实施例未描述或未示出的部分,可具体参见上述第一方面所描述的设备中的相关描述,这里不再赘述。
第三方面,本发明实施例公开提供了一种设备,包括用于执行上述第二方面的方法的功能单元。
第四方面,本发明实施例提供了一种设备,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行上述第二方面描述的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储了用于邮件传输的程序代码。所述程序代码包括用于执行上述第二方面描述的方法的指令。
第六方面,提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面描述的方法。
通过实施本发明实施例,有效解决了具备任务依赖关系的任务的相关调度处理问题,降低了任务的传输时延,从而提升了任务处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是现有技术提供的一种软基带的信号处理平台的框架示意图;
图2是现有技术提供的一种基于分布式自适应算法的任务调度的框架示意图;
图3是本发明实施提供的一种有向循环图的框架示意图;
图4是本发明实施例提供的一种软基带的信号处理平台的框架示意图;
图5是本发明实施例提供的一种FPGA的硬件框架示意图;
图6是本发明实施例提供的一种任务处理方法的流程示意图;
图7是本发明实施例提供的一种队列管理框架示意图;
图8是本发明实施例提供的又一种队列管理框架示意图;
图9是本发明实施例提供的一种队列长度闭环控制的框架示意图;
图10是本发明实施例提供的一种设备的结构示意图;
图11A是本发明实施例提供的又一种终端设备的结构示意图;
图11B是本发明实施例提供的又一种终端设备的结构示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例中的技术方案进行详细描述。
本申请的发明人在提出本申请的过程中发现:现有技术提出基于分布式自适应算法的任务调度处理方案,仅适用于不存在任务依赖关系的、独立任务的分配和调度处理。此外,如图2示出的队列中任务的长度(也可简称为队列的长度)取决于主节点到队列所在的目标节点的距离(即传输时延)。其中,距离/传输时延越大,队列的长度越短;即队列中任务的处理效率越低。
为解决上述问题,基于图1所示的框架示意图下,本申请提出新的队列管理机制。可选地,还是基于优先级队列管理机制,具体将下文中进行详细阐述。需要说明的是,本申请适用于并行异构的DCN网络,即适用于网络中存在一定物理距离的分布式的节点设备(如服务器)使用。下面对本申请所涉及的实施例进行详细阐述。
首先,本申请对任务依赖关系进行阐述。所述任务依赖关系是指任务之间存在相互影响的关系。具体的,如图3示出一种5G协议栈中典型的有向循环图(directed acyclicgraph,DAG)的示意图。如图3,DAG是由多个任务构成的,这些任务之间是数据依赖的,例如针对图3中的任务C和任务D人眼,只有在任务C执行完毕后,任务D才会开始执行,具体是任务D执行时会利用任务C执行完毕后产生的结果数据。此时,可以称任务C是任务D的父任务,任务D是任务C的子任务。又如,针对任务E而言,只有在任务D执行完毕后,且同时接收到任务D相关的触发数据i,才能开始执行任务E。
接着,基于图1所示的框架示意图,下面介绍本申请适用的节点设备(本申请也可称为设备)的框架示意图。如图4示出一种可能的主节点(设备blade1)的框架示意图。设备采用处理器CPU加现场可编程门阵列(Field-Programmable Gate Array,FPGA)的硬件加架构,既可以在CPU上运行通用的应用程序,也可对计算密集型的任务进行硬件加速。具体的,如图4设备包括两个处理器CPU(具体为P1和P2)以及内存memory。其中,两个CPU中有一个CPU是设备的FPGA,两个CPU之间通过QPI总线互联。如果CPU采用intel的Xeon处理器,其传输带宽可以达到25.6GB/s。其中,为实现高速缓存Cache的一致性,在FPGA上也实现了Cache(即图示中的L3Cache),以便CPU、L3Cache、FPGA构成Cache一致性系统。如图4中,各个节点可以位于并行异构网络中,这些节点可作为远端的设备(如服务器)一起构成并行云软基带计算系统。
由图4可以看出,任务分配引擎(task cost engine)位于节点的FPGA中,用于任务的分配、检测空闲的内核资源(即处理器核core),以将任务发送到空闲的内核资源中处理。具体的,对于多核(多个内核资源)之间的任务的分配来说,workloads将分别计算并行的多个任务到达各自所能分配的空闲的目标CPU核所对应的代价;然后利用改进的空间bitonic挑选器,将各任务的代价从最小到最大进行排列;最后,通过decisions将具有最大代价的任务分配给执行时间最短的CPU核,以利用该CPU核来处理该任务。
基于图4所述实施例,请一并参见图5是本发明实施例提供的一种FPGA的框架示意图。如图5,该框架示意图可包括请求控制器以及冲裁控制器。可选地,还可包括:网络接口适配器、本地调度器、资源分配器以及数据管理单元等部件。下面对FPGA涉及到的一些部件实施例进行详细阐述。
具体的,CPU开始执行某个任务时,在FPGA侧的请求控制器中可生成该任务的属性信息(task profile)。这里的任务可理解为具备固定大小的代码集合,在CPU中其可被关联存储到内存memory的地址空间中。在该任务对应的内存地址被存取时,可通过QPI总线在FPGA侧的请求控制器中生成该任务的属性信息,例如图4中,CPU中申请执行某个APP相关的任务时,在FPGA可生成该任务的属性信息。其中,该属性信息包括但不限于以下信息中的任一项或多项的组合:该任务对应的缓存地址(即地址空间)、缓存该任务所占用的长度/空间大小(即该任务的缓存大小)、所述任务的预留资源等等。该预留资源是指为所述任务关联的数据(如输入数据、执行所述任务所产生的结果数据/中间数据等)所预留的缓存空间。
在可选实施例中,所述请求控制器还可检测所述任务是否存在任务依赖关系,或者检测所述任务是否解除任务依赖关系。其中,所述任务的数量可以一个或多个,本申请中不做限定。可选地,在所述任务的数量为多个的情况下,所述请求控制器可检测所述多个任务中每个任务各自是否存在/解除任务依赖关系,以得到相应地检测结果。进一步地,所述请求控制器还可将每个任务各自的检测结果以列表或数组等形式进行维护。关于所述任务依赖关系可参见前述实施例中的相关描述,这里不再赘述。
所述仲裁控制器与所述请求控制器可以相互通信。具体的,所述请求控制器在确定到所述任务不存在任务依赖关系后,可通知所述仲裁控制器,以便所述仲裁控制器进行后续工作流程。或者,所述仲裁控制器可实时或周期性地检测所述请求控制器中每个任务各自的检测结果,以在所述任务不存在任务依赖关系后,进行后续工作流程。该后续工作流程为:所述仲裁控制器对所述任务的属性信息进行分解,当本节点设备中存在足够多的空闲的内核资源用于处理该任务,则可通过本地调度器(local scheduler)将任务分配被本节点CPU中空闲的内核资源(core)。相应地,如果受限于本节点的计算能力,即本节点中CPU不足以处理该任务,则本地调度器(local scheduler)可将该任务分解为多个子任务,并将它们分配/发送给其他节点或远端节点中空闲的内核资源,以利用该内核资源来处理该任务。
在可选实施例中,所有节点设备(blade)之间的数据传输(如任务)均需通过网络接口适配器(Network Interface Card,NIC)。所述数据管理单元用于负责本节点CPU中各处理核之间、多节点或节点集群之间的数据管理,例如管理任务处理后的结果数据、或任务处理中所产生的中间数据或操作数据等等,本发明不做限定。所述资源分配器用于为所述任务分配相应地的预留资源,例如处理所述任务所需的输入数据分配存储资源、处理所述任务时所产生的输出数据(如结果数据和中间数据)分配存储资源。可选地,在所述仲裁控制器将所述任务发送给其他节点中空闲的内核资源时,所述资源分配器还可将所述任务相关的资源信息一并通知给所述其他节点(或远端集群中的节点)。
基于图4和图5所述设备的相关框架示意图,请参见图6是本发明实施例提供的一种任务处理方法的流程示意图。如图6所述的方法可包括如下实施步骤:
步骤S102、设备获取待处理的任务,并确定所述任务是否存在任务依赖关系,其中,所述任务依赖关系是指任务之间存在相互影响的关系,所述任务包括有所述任务的属性信息;
步骤S104、在所述任务不存在任务依赖关系时,所述设备根据所述任务的属性信息为所述任务分配空闲的内核资源,以利用所述内核资源处理所述任务。
本申请中,参见前述图1至图5所述实施例中的相关描述,所述设备在接收到待处理的任务时,可检测所述任务是否存在或解除任务依赖关系,如果解除/不存在任务依赖关系,则根据该任务的属性信息为所述任务分配适合的空闲的内核资源(处理核)来处理该任务。具体可参见前述图5实施例中的相关阐述,这里不再赘述。
本申请中考虑到任务之间存在相互依赖关系(即任务依赖关系),本申请提出基于队列管理机制来处理该任务。其中,本申请提出的队列包括但不限于以下中的任一项或多项的组合:等待队列、准备队列、运行队列以及结束队列;所述等待队列用于排列待处理的任务,所述准备队列用于排列不存在任务依赖关系的任务,所述运行队列用于排列能够利用空闲的内核资源处理的任务,所述结束队列用于排列任务处理完毕后的任务。
具体的,如图7示出一种可能的队列管理框架示意图。设备在最开始接收到待处理的任务时,可将这些任务保存到等待队列中;然后在检测到该任务解除或不存在任务依赖关系(即是该任务运行时所需数据均具备),则可将该任务放入准备队列中。与此同时,设备可利用相关调度器(如仲裁调度器)检测本设备或其他设备中是否存在空闲的内核资源以用于处理该任务,如果检测到存在空闲的内核资源,则将原本被存放在准备队列中的任务放入运行队列中。最后,在运行队列中的任务被处理完毕,或者等待队列中存在不被执行的任务时,可将相应地任务放置在结束队列中。可选地,所述不被执行的任务可以是指在预设等待时长内仍不被处理的任务,本发明不做限定。
可选实施例中,所述队列管理机制还可是指基于优先级的队列管理机制,即是所述队列中的任务可以是基于任务的优先级来处理的。所述任务的优先级可以是根据该任务的负载量和/或该任务的自身特征确定的,其中,该任务的自身特征可以是指该任务是否解除或存在任务依赖关系,也即是该任务是否产生用于其他任务执行时所需的数据或者处理该任务时是否需要使用到其他任务所产生的输出数据等。所述任务的优先级包括但不限于高、中、低等多个优先级。例如,任务的负载量越大,则其优先级越低;反之,任务的负载量越小,则其优先级越高。
如图8示出本发明又一种可能的队列管理框架示意图。具体的,在设备接收到待处理的任务时,可识别该任务所归属的优先级,例如该任务是以下优先级中的任一项:高优先级、中优先级、低优先级;进一步地将该任务放入对应优先级的等待队列中。其中,较高优先级队列中的任务优先被处理,即如果同一个队列中可包括第一任务和第二任务,且所述第一任务的优先级高于所述第二任务的优先级,则所述第一任务优先于所述第二任务被处理。
下面示例性给出不同优先级队列中任务的相关处理实施例。
例如,对于高优先级的等待队列而言,在判断该队列中的某个任务不存在/解除任务依赖关系后,可将该任务对应发送至准备队列中,同时相关调度器检测是否存在空闲的内核资源以用于处理该任务,如果有,则将该任务从准备队列中发送到该内核资源中。
相应地,对于中等优先级的等待队列而言,在判断该队列中的某个任务不存在/解除任务依赖关系后,可将该任务对应发送至准备队列中。然后,设备判断高优先级的等待队列是否已执行完毕(即高优先级的等待队列为空),如果执行完毕,则继续处理该中等优先级的等待队列中的任务。即将中等优先级的准备队列中的任务分配到空闲的内核资源中执行。如果没执行完毕,则可将中等优先级的准备队列排列在高优先级的准备队列后面,以便在高优先级的准备队列中的任务执行完毕后,继续执行该中等优先级的等待队列中的任务。
相应地,对于低等优先级的等待队列而言,类似于前述中等优先级的等待队列的处理。具体的,在高等优先级的等待队列以及中等优先级的等待队列中的所有任务均被执行完毕后,再执行低等优先级的等待队列中,将低等优先级的等待队列中的任务分配给空闲的内核资源,以利用该内核资源处理该任务。
在可选实施例中,为提升任务处理效率,本申请还可对所述队列的长度进行闭环控制管理。具体的,设备可利用调节控制器实现队列长度的闭环控制,如图9示出一种队列长度闭环控制的框架示意图。可选地,该调节控制器可包括PID(Proportion IntegrationDifferentiation,比例积分微分)控制器以及长度识别器。该长度识别器可追踪获知队列的长度,并将其反馈给PID控制器。该PID控制器用于调节队列的长度,这样PID控制器和长度识别器可构成闭环的回路对队列长度实现闭环控制。
可选实施例中,所述队列的长度可以取决于以下信息中的任一项或多项的组合:所述队列中任务的到来速度、所述设备的计算能力、所述任务的传输时延、设备到处理该任务的其他节点之间的物理距离等等。具体的,所述PID控制器可根据上述信息中的任一项或多项的组合来对队列的长度进行调节,以加快任务处理进度。例如,任务的到来速度较快则支持队列的长度也可越长;设备的计算能力越强相应地缓冲区中队列的长度也可增长,本发明不做限定。
关于本发明未描述或未示出的部分,可参见前述图1至图5所述实施例中的相关阐述,这里不再赘述。
通过实施本发明实施例,逻辑上实现了设备(blade)之间、或设备中CPU和FPGA之间的数据交换(即任务传输),降低了设备间任务传输的时延以及设备内部的任务加载时延,大大提升了任务处理效率。
基于上述同一发明构思,参见图10是本发明实施例提供的一种设备的结构示意图。如图10所示的设备可包括请求控制器202和仲裁控制器204,其中,
所述请求控制器用于接收待处理的任务,并确定所述任务是否存在任务依赖关系,其中,所述任务依赖关系是指任务之间存在相互影响的关系,所述任务包括有所述任务的属性信息;
所述仲裁控制器用于在所述任务不存在任务依赖关系时,根据所述任务的属性信息为所述任务分配空闲的内核资源,以利用所述内核资源处理所述任务。
在可选实施例中,所述设备还可包括本地调度器以及资源分配器;
所述资源分配器用于根据所述任务的属性信息为所述任务分配合适的空闲内核资源,该内核资源可以是所述设备自身中空闲的内核资源,或者是有别于所述设备的其他设备中的内核资源;
所述仲裁控制器用于在所述设备中存在空闲的用于处理所述任务的内核资源时,调用所述本地调度器将所述任务分配给所述设备中空闲的内核资源;或者,
所述仲裁控制器用于在所述设备中不存在空闲的用于处理所述任务的内核资源时,调用所述本地调度器通过NIC接口将所述任务分配给除所述设备外的其他设备中空闲的内核资源。
在可选实施例中,所述设备还可包括数据管理单元,该数据管理单元用于管理与所述任务关联的数据,例如执行所述任务时所产生的中间数据或结果数据等等。
在可选实施例中,所述任务是基于队列机制处理的,所述队列包括以下中的至少一项:等待队列、准备队列、运行队列以及结束队列;其中,所述等待队列用于排列待处理的任务,所述准备队列用于排列不存在任务依赖关系的任务,所述运行队列用于排列能够利用空闲的内核资源处理的任务,所述结束队列用于排列任务处理完毕后的任务。
在可选实施例中,所述设备还包括调节控制器,
所述调节控制器用于调节所述队列中的任务的长度,其中,所述队列中的任务的长度取决于以下信息中的至少一项:所述设备的计算能力、所述任务的传输时延。
在可选实施例中,所述调节控制器包括PID控制器和长度识别器,
所述PID控制器用于调节所述队列中的任务的长度;
所述长度识别器用于统计所述队列中的任务的长度,并反馈给所述PID控制器,以便所述PID控制器调节所述队列的长度。
在可选实施例中,所述队列中的任务是根据所述任务的优先级处理的,其中,若同一个队列中包括第一任务和第二任务,且所述第一任务的优先级高于所述第二任务的优先级,则所述第一任务优先于所述第二任务被处理。
在可选实施例中,所述队列中的任务的优先级取决于以下信息中的至少一项:所述任务的负载量、所述任务是否存在任务依赖关系。
在可选实施例中,所述属性信息包括以下中的至少一项:所述任务的缓存地址、所述任务的缓存大小、所述任务的预留资源;其中,所述任务的预留资源是指为所述任务关联产生的中间数据所预留的缓存资源。
本申请所提供的设备为对应于如上图6所述方法实施例的设备,其中关于本发明未示出或为描述的部分可具体参见前述图1至图9所述实施例中的相关部分,这里不再赘述。
上述主要从节点设备的角度出发对本发明实施例提供的方案进行了介绍。可以理解的是,终端设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本发明中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的技术方案的范围。
本发明实施例可以根据上述方法示例对消息处理设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图11A示出了上述实施例中所涉及的设备的一种可能的结构示意图。设备1100包括:处理单元1102和通信单元1103。处理单元1102用于对设备1100的动作进行控制管理,例如,处理单元1102用于支持设备1100执行图6中步骤S604,和/或用于执行本文所描述的技术的其它步骤。通信单元1103用于支持设备1100与其它终端设备的通信,例如,通信单元1103用于支持设备1100内部部件、或与其他设备进行数据通信,和/或用于执行本文所描述的技术的其它步骤。设备1100还可以包括存储单元1101,用于存储设备1100的程序代码和数据。
其中,处理单元1102可以是处理器或控制器,例如可以是中央处理器(英文:Central Processing Unit,CPU),通用处理器,数字信号处理器(英文:Digital SignalProcessor,DSP),专用集成电路(英文:Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(英文:Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元1103可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如设备与其他设备之间的接口。存储单元1101可以是存储器。
当处理单元1102为处理器,通信单元1103为通信接口,存储单元1101为存储器时,本发明实施例所涉及的设备可以为图11B所示的设备。
参阅图11B所示,该设备1110包括:处理器1112、通信接口1113、存储器1111。可选地,设备1110还可以包括总线1114。其中,通信接口1113、处理器1112以及存储器1111可以通过总线1114相互连接;总线1114可以是外设部件互连标准(英文:Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(英文:Extended Industry StandardArchitecture,简称EISA)总线等。所述总线1114可以分为地址总线、数据总线、控制总线等。为便于表示,图11B中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述图11A或图11B所示的设备的具体实现还可以对应参照图1至图10所示实施例的相应描述,此处不再赘述。
结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(英文:Random Access Memory,RAM)、闪存、只读存储器(英文:Read Only Memory,ROM)、可擦除可编程只读存储器(英文:ErasableProgrammable ROM,EPROM)、电可擦可编程只读存储器(英文:Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备中。当然,处理器和存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (17)
1.一种设备,其特征在于,包括第一处理器和第二处理器,所述第一处理器包括请求控制器和仲裁控制器,
所述请求控制器用于接收待处理的任务,并确定所述任务是否存在任务依赖关系,其中,所述任务依赖关系是指任务之间存在相互影响的关系,所述任务包括有所述任务的属性信息;
所述仲裁控制器用于在所述任务不存在任务依赖关系时,根据所述任务的属性信息为所述任务分配空闲的内核资源,以利用所述内核资源处理所述任务;所述空闲内核资源位于所述第二处理器;
所述任务是基于队列机制处理的,所述队列包括等待队列、准备队列、运行队列和结束队列;其中,所述等待队列用于排列待处理的任务,所述准备队列用于排列不存在任务依赖关系的任务,所述运行队列用于排列能够利用空闲的内核资源处理的任务;所述结束队列用于排列任务处理完毕后的任务;
所述仲裁控制器还用于在所述等待队列中的第一任务不存在或解除任务依赖关系后,将所述第一任务发送至所述准备队列中。
2.根据权利要求1所述的设备,其特征在于,所述仲裁控制器用于根据所述任务的属性信息为所述任务分配空闲的内核资源包括:
所述仲裁控制器用于在所述设备中存在空闲的用于处理所述任务的内核资源时,将所述任务分配给所述设备中空闲的内核资源;或者,
所述仲裁控制器用于在所述设备中不存在空闲的用于处理所述任务的内核资源时,将所述任务分配给除所述设备外的其他设备中空闲的内核资源。
3.根据权利要求1或2所述的设备,其特征在于,还包括调节控制器,
所述调节控制器用于调节所述队列中的任务的长度,其中,所述队列中的任务的长度取决于以下信息中的至少一项:所述设备的计算能力、所述任务的传输时延。
4.根据权利要求3所述的设备,其特征在于,所述调节控制器包括PID控制器和长度识别器,
所述PID控制器用于调节所述队列中的任务的长度;
所述长度识别器用于统计所述队列中的任务的长度,并反馈给所述PID控制器,以便所述PID控制器调节所述队列的长度。
5.根据权利要求1-4中任一项所述的设备,其特征在于,所述队列中的任务是根据所述任务的优先级处理的,其中,若同一个队列中包括第一任务和第二任务,且所述第一任务的优先级高于所述第二任务的优先级,则所述第一任务优先于所述第二任务被处理。
6.根据权利要求1-5中任一项所述的设备,其特征在于,所述队列中的任务的优先级取决于以下信息中的至少一项:所述任务的负载量、所述任务是否存在任务依赖关系。
7.根据权利要求1-6中任一项所述的设备,其特征在于,所述属性信息包括以下中的至少一项:所述任务的缓存地址、所述任务的缓存大小、所述任务的预留资源;其中,所述任务的预留资源是指为所述任务关联产生的中间数据所预留的缓存资源。
8.一种任务处理方法,其特征在于,所述方法应用于设备中的第一处理器,所述设备还包括第二处理器,所述方法包括:
接收待处理的任务,并确定所述任务是否存在任务依赖关系,其中,所述任务依赖关系是指任务之间存在相互影响的关系,所述任务包括有所述任务的属性信息;
在所述任务不存在任务依赖关系时,根据所述任务的属性信息为所述任务分配空闲的内核资源,以利用所述内核资源处理所述任务;所述空闲内核资源位于所述第二处理器
所述任务是基于队列机制处理的,所述队列包括等待队列、准备队列、运行队列和结束队列;其中,所述等待队列用于排列待处理的任务,所述准备队列用于排列不存在任务依赖关系的任务,所述运行队列用于排列能够利用空闲的内核资源处理的任务;所述结束队列用于排列任务处理完毕后的任务;
所述方法还包括:在所述等待队列中的第一任务不存在或解除任务依赖关系后,将所述第一任务发送至所述准备队列中。
9.根据权利要求8所述的方法,其特征在于,所述根据所述任务的属性信息为所述任务分配空闲的内核资源包括:
在所述设备中存在空闲的用于处理所述任务的内核资源时,将所述任务分配给所述设备中空闲的内核资源;或者,
在所述设备中不存在空闲的用于处理所述任务的内核资源时,将所述任务分配给除所述设备外的其他设备中空闲的内核资源。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
调节所述队列中的任务的长度,其中,所述队列中的任务的长度取决于以下信息中的至少一项:所述设备的计算能力、所述任务的传输时延。
11.根据权利要求10所述的方法,其特征在于,所述队列中的任务的长度采用闭环控制调节的。
12.根据权利要求8-11中任一项所述的方法,其特征在于,所述队列中的任务是根据所述任务的优先级处理的,其中,若同一个队列中包括第一任务和第二任务,且所述第一任务的优先级高于所述第二任务的优先级,则所述第一任务优先于所述第二任务被处理。
13.根据权利要求8-12中任一项所述的方法,其特征在于,所述队列中的任务的优先级取决于以下信息中的至少一项:所述任务的负载量、所述任务是否存在任务依赖关系。
14.根据权利要求8-13中任一项所述的设备,其特征在于,所述属性信息包括以下中的至少一项:所述任务的缓存地址、所述任务的缓存大小、所述任务的预留资源;其中,所述任务的预留资源是指为所述任务关联产生的中间数据所预留的缓存资源。
15.一种设备,其特征在于,包括用于执行如上权利要求8-14中任一项所述方法的功能单元。
16.一种设备,其特征在于,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行如上权利要求8-14中任一项所述的方法。
17.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求8-14任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710990199.0A CN109697122B (zh) | 2017-10-20 | 2017-10-20 | 任务处理方法、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710990199.0A CN109697122B (zh) | 2017-10-20 | 2017-10-20 | 任务处理方法、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109697122A CN109697122A (zh) | 2019-04-30 |
CN109697122B true CN109697122B (zh) | 2024-03-15 |
Family
ID=66225778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710990199.0A Active CN109697122B (zh) | 2017-10-20 | 2017-10-20 | 任务处理方法、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109697122B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291293B (zh) * | 2019-07-27 | 2023-01-06 | 华为技术有限公司 | 任务处理方法、相关设备及计算机存储介质 |
CN110716805A (zh) * | 2019-09-27 | 2020-01-21 | 上海依图网络科技有限公司 | 图形处理器的任务分配方法、装置、电子设备及存储介质 |
CN111061485A (zh) * | 2019-12-03 | 2020-04-24 | 华控清交信息科技(北京)有限公司 | 任务处理方法、编译器、调度服务器和介质 |
CN112068960B (zh) * | 2020-09-10 | 2024-02-06 | 华云数据控股集团有限公司 | 一种cpu资源分配方法、装置、存储介质及设备 |
CN112199180A (zh) * | 2020-10-21 | 2021-01-08 | 北京三快在线科技有限公司 | 多任务调度的方法及装置、电子设备及可读存储介质 |
CN112416534A (zh) * | 2020-11-23 | 2021-02-26 | 北京中电普华信息技术有限公司 | 一种基于Agent的任务管理方法及装置 |
CN112506991B (zh) * | 2020-12-03 | 2023-04-07 | 杭州小电科技股份有限公司 | 并行处理的方法、系统、电子装置和存储介质 |
WO2022174442A1 (zh) * | 2021-02-22 | 2022-08-25 | 华为技术有限公司 | 多核处理器、多核处理器的处理方法及相关设备 |
CN113590278A (zh) * | 2021-07-05 | 2021-11-02 | 杭州智家通科技有限公司 | 去除重复执行任务的方法、装置、设备及存储介质 |
CN114816715B (zh) * | 2022-05-20 | 2022-11-22 | 中国地质大学(北京) | 一种面向跨地域的流计算延迟优化方法及装置 |
CN115915457B (zh) * | 2023-01-30 | 2023-05-23 | 阿里巴巴(中国)有限公司 | 资源调度方法、车辆控制方法、设备及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5825359A (en) * | 1995-10-05 | 1998-10-20 | Apple Computer, Inc. | Method and system for improved arbitration of a display screen in a computer system |
CN1526126A (zh) * | 2001-07-11 | 2004-09-01 | ����ƶ��ɷݹ�˾ | 确定队列识别数和确定队列长度的方法 |
JP2017073000A (ja) * | 2015-10-07 | 2017-04-13 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
WO2017070900A1 (zh) * | 2015-10-29 | 2017-05-04 | 华为技术有限公司 | 多核数字信号处理系统中处理任务的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108864B2 (en) * | 2007-06-01 | 2012-01-31 | International Business Machines Corporation | Method and system for dynamically tracking arbitrary task dependencies on computers in a grid environment |
-
2017
- 2017-10-20 CN CN201710990199.0A patent/CN109697122B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5825359A (en) * | 1995-10-05 | 1998-10-20 | Apple Computer, Inc. | Method and system for improved arbitration of a display screen in a computer system |
CN1526126A (zh) * | 2001-07-11 | 2004-09-01 | ����ƶ��ɷݹ�˾ | 确定队列识别数和确定队列长度的方法 |
JP2017073000A (ja) * | 2015-10-07 | 2017-04-13 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
WO2017070900A1 (zh) * | 2015-10-29 | 2017-05-04 | 华为技术有限公司 | 多核数字信号处理系统中处理任务的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109697122A (zh) | 2019-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109697122B (zh) | 任务处理方法、设备及计算机存储介质 | |
CN105511954B (zh) | 一种报文处理方法及装置 | |
CN107025205B (zh) | 一种分布式系统中的训练模型的方法及设备 | |
EP2701074B1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
US9792051B2 (en) | System and method of application aware efficient IO scheduler | |
US9019826B2 (en) | Hierarchical allocation of network bandwidth for quality of service | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
WO2022068697A1 (zh) | 任务调度方法及装置 | |
CN109726005B (zh) | 用于管理资源的方法、服务器系统和计算机可读介质 | |
WO2020019743A1 (zh) | 流量控制方法及装置 | |
US20120297216A1 (en) | Dynamically selecting active polling or timed waits | |
CN112783659B (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN104102548A (zh) | 任务资源调度处理方法和系统 | |
US10614542B2 (en) | High granularity level GPU resource allocation method and system | |
CN114579285B (zh) | 一种任务运行系统、方法及计算设备 | |
CN109729113B (zh) | 管理专用处理资源的方法、服务器系统和计算机程序产品 | |
CN115167996A (zh) | 调度方法及装置、芯片、电子设备及存储介质 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN111857992A (zh) | 一种Radosgw模块中线程资源分配方法和装置 | |
Lin et al. | {RingLeader}: Efficiently Offloading {Intra-Server} Orchestration to {NICs} | |
Dhakal et al. | ECML: Improving efficiency of machine learning in edge clouds | |
WO2020166423A1 (ja) | リソース管理装置およびリソース管理方法 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
US8869171B2 (en) | Low-latency communications | |
CN116048756A (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 |