CN110688229B - 任务处理方法和装置 - Google Patents
任务处理方法和装置 Download PDFInfo
- Publication number
- CN110688229B CN110688229B CN201910966643.4A CN201910966643A CN110688229B CN 110688229 B CN110688229 B CN 110688229B CN 201910966643 A CN201910966643 A CN 201910966643A CN 110688229 B CN110688229 B CN 110688229B
- Authority
- CN
- China
- Prior art keywords
- computing
- cpu
- task
- tasks
- category
- 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
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了任务处理方法和装置,涉及一种自动驾驶技术。具体实现方案为:获取调度文件,该调度文件用于指示各类计算任务各自对应的中央处理器CPU;各类计算任务组成至少一条计算链路,属于同一条计算链路的全部或部分类别的计算任务对应同一个CPU;根据该调度文件,将各类计算任务分配至对应的CPU执行。本申请通过同一条计算链路上的全部或部分类别的计算任务对应同一个CPU,可以使得任务处理过程中的端到端处理时延较短且时延抖动较小,保证了该电子设备的稳定运行。
Description
技术领域
本申请实施例涉及计算机技术,尤其涉及一种自动驾驶技术。
背景技术
随着科技发展,生活中越来越多的工具都趋向于智能化,尤其是无人驾驶汽车,将为以后人们的生活提供极大方便。
在无人车***中存在着大量复杂的计算任务,针对这些大量的计算任务,传统方式是所有的CPU共用一个任务队列,对于每个CPU,在CPU执行完一个任务后,根据先进先出的准则,从任务队列中确定需要执行的下一个任务。上述执行方法可能会而造成端到端的任务处理时延(处理一个计算链路的任务所经历的时长)比较大,进而影响了无人车的稳定运行。
发明内容
本申请实施例提供一种任务处理方法和装置,可以使得任务处理过程中的端到端处理时延较短且时延抖动较小。
第一方面,本申请提供一种任务处理方法,包括:获取调度文件,所述调度文件用于指示各类计算任务各自对应的中央处理器CPU;其中,所述各类计算任务组成至少一条计算链路,属于同一条计算链路的全部或部分类别的计算任务对应同一个CPU,所述计算链路上任意相邻的两类计算任务中上游计算任务的输出是下游计算任务的输入;根据所述调度文件,将各类计算任务分配至对应的CPU执行。
本方案中,由于调度文件指示了各类计算任务各自对应的CPU,执行同一类别的计算任务的CPU被固定,在一定程度上可降低端到端处理时延;同时由于同一计算链路的全部或部分类别的计算任务对应同一个CPU,可以尽可能的保证同一计算链路上具有数据依赖关系的任务由一个CPU执行,这样下游任务所需要的上游任务的处理结果在同一CPU对应的缓存中,无需从其它CPU对应的缓存中获取数据,端到端时延较短且时延抖动较小,在执行任务处理方法的设备为无人车时,可保证无人车的正常运行。
在一种可能的设计中,所述获取调度文件包括:获取配置文件,所述配置文件包括各类计算任务的输入通道和输出通道;根据所述配置文件,获取各类计算任务所组成的至少一条计算链路;根据所述至少一条计算链路和预设条件,生成所述调度文件。
本方案提供了生成调度文件的一种具体实现方式。
在一种可能的设计中,所述预设条件包括第一预设条件,所述根据所述至少一条计算链路和预设条件,生成所述调度文件,包括:根据所述至少一条计算链路和所述第一预设条件,将各类计算任务进行分组,得到至少一个分组;根据所述至少一个分组,生成所述调度文件。其中,所述第一预设条件包括:第一计算链路上的N-n类计算任务被分配至同一分组中;其中,所述第一计算链路为所述至少一条计算链路中的任意一条计算链路,N为所述第一计算链路包括的计算任务的总类别数目,n为所述第一计算链路与其它计算链路共同包括的各计算任务类别被分配至其它分组的类别数目,N为正整数,n为整数;
本方案中的第一预设条件可以使得同一计算链路上的计算任务尽可能的分配至同一CPU上。
在一种可选的方式中,所述根据所述至少一个分组,生成所述调度文件,包括:对于每个所述分组,确定所述分组所包括的各类计算任务对应的CPU;根据各分组所包括的各类计算任务对应的CPU,生成所述调度文件。
本方案中可以使得同一计算链路上的计算任务尽可能的分配至同一CPU上且生成调度文件的效率较高。
在另一种可选的方式中,所述预设条件还包括第二预设条件,所述根据所述至少一个分组,生成所述调度文件,包括:根据所述至少一个分组和所述第二预设条件,生成所述调度文件。其中,所述第二预设条件包括:对于每个分组:若所述分组所包括的各类计算任务被分配至同一CPU上执行使得CPU的负载小于预设负载,则所述分组所包括的各类计算任务均对应该CPU;若所述分组所包括的各类计算任务被分配至同一CPU上执行使得该CPU的负载大于或等于预设负载,则所述分组所包括的所有类别的计算任务对应至少两个CPU,且所述分组所包括的所有类别的计算任务被分配至所述至少两个CPU上执行使得所述至少两个CPU的负载均小于预设负载。
本方案中的可以使得同一计算链路上的计算任务尽可能的分配至同一CPU上。
在一种可能的设计中,所述第二预设条件还包括:若一个CPU对应至少两个分组各自包括的全部或部分类别的计算任务,则该CPU对应的各类别的计算任务的属性相同。
本方案可以使得同一CPU对应的计算任务的属性相同,这样处理时长长的计算任务就不会影响处理时长短的计算任务被执行的效率,进而减小端到端的处理时延。
在一种可能的设计中,所述第二预设条件还包括:所述至少两个CPU中的任一个CPU所对应的各类别的计算任务的属性相同。
本方案可以使得同一CPU对应的计算任务的属性相同,这样处理时长长的计算任务就不会影响处理时长短的计算任务被执行的效率,进而减小端到端的处理时延。
在一种可能的设计中,根据所述调度文件,将各类计算任务分配至对应的CPU执行,包括:对于第一CPU对应的各类计算任务,所述第一CPU为电子设备包括的任意一个CPU:获取所述第一CPU对应的各类计算任务的优先级信息;其中,同一计算链路中下游计算任务的优先级高于上游计算任务的优先级;按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行。
本方案中,同一计算链路上的下游计算任务的优先级高于上游计算任务的优先级,且CPU每执行完一个计算任务时均是再次从最高优先级的计算任务开始执行,可保证同一计算链路上的应该先被先处理的任务可以先被处理,端到端时延较短,在在执行任务处理方法的电子设备为无人车时,可保证无人车的正常运行。
在一种可能的设计中,所述按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行,包括:在需分配第一类别的计算任务至所述第一CPU执行时,判断所述第一类别的计算任务的状态是否为第一状态,第一类别的计算任务为所述第一CPU对应的各类计算任务中的任意一个类别的计算任务;若是,则将第二类别的计算任务分配至所述第一CPU执行,所述第二类别的计算任务为所述第一CPU对应的各类计算任务中状态为第二状态且优先级最高的类别的计算任务;其中,任意一种类别的计算任务的第一状态为如下中的任意一种状态:当前不存在该类别的计算任务、该类别的计算任务被执行完毕、该类别的计算任务处于非执行态;任意一种类别的计算任务的非执行状态指示相应的CPU暂停执行该类别的计算任务;任意一种类别的计算任务的第二状态为存在该类别的计算任务且未处于非执行态。
本方案中,在第一类别的计算任务为非执行态时,可以及时跳过对第一类别的计算任务的执行,去执行其它类别的计算任务,可以减小端到端的处理时延。此外,还可以保证同一计算链路上的应该先被先处理的任务可以先被处理,端到端时延较短,在在执行任务处理方法的电子设备为无人车时,可保证无人车的正常运行。
第二方面,本申请实施例提供一种任务处理装置,包括:获取模块,用于获取调度文件,所述调度文件用于指示各类计算任务各自对应的中央处理器CPU;其中,所述各类计算任务组成至少一条计算链路,属于同一条计算链路的全部或部分类别的计算任务对应同一个CPU,所述计算链路上任意相邻的两类计算任务中上游计算任务的输出是下游计算任务的输入;分配模块,用于根据所述调度文件,将各类计算任务分配至对应的CPU执行。
在一种可能的设计中,所述获取模块,具体用于:获取配置文件,所述配置文件包括各类计算任务的输入通道和输出通道;根据所述配置文件,获取各类计算任务所组成的至少一条计算链路;根据所述至少一条计算链路和预设条件,生成所述调度文件。
在一种可能的设计中,所述预设条件包括第一预设条件,所述获取模块,具体用于:根据所述至少一条计算链路和所述第一预设条件,将各类计算任务进行分组,得到至少一个分组;根据所述至少一个分组,生成所述调度文件。
在一种可能的设计中,所述第一预设条件包括:第一计算链路上的N-n类计算任务被分配至同一分组中;其中,所述第一计算链路为所述至少一条计算链路中的任意一条计算链路,N为所述第一计算链路包括的计算任务的总类别数目,n为所述第一计算链路与其它计算链路共同包括的各计算任务类别被分配至其它分组的类别数目,N为正整数,n为整数。
在一种可能的设计中,所述获取模块,具体用于:对于每个所述分组,确定所述分组所包括的各类计算任务对应的CPU;根据各分组所包括的各类计算任务对应的CPU,生成所述调度文件。
在一种可能的设计中,所述预设条件还包括第二预设条件,所述获取模块,具体用于:根据所述至少一个分组和所述第二预设条件,生成所述调度文件。
在一种可能的设计中,所述第二预设条件包括:对于每个分组:若所述分组所包括的各类计算任务被分配至同一CPU上执行使得CPU的负载小于预设负载,则所述分组所包括的各类计算任务均对应该CPU;若所述分组所包括的各类计算任务被分配至同一CPU上执行使得该CPU的负载大于或等于预设负载,则所述分组所包括的所有类别的计算任务对应至少两个CPU,且所述分组所包括的所有类别的计算任务被分配至所述至少两个CPU上执行使得所述至少两个CPU的负载均小于预设负载。
在一种可能的设计中,所述第二预设条件还包括:若一个CPU对应至少两个分组各自包括的全部或部分类别的计算任务,则该CPU对应的各类别的计算任务的属性相同。
在一种可能的设计中,所述第二预设条件还包括:所述至少两个CPU中的任一个CPU所对应的各类别的计算任务的属性相同。
在一种可能的设计中,所述分配模块,具体用于:对于第一CPU对应的各类计算任务,所述第一CPU为电子设备包括的任意一个CPU:获取所述第一CPU对应的各类计算任务的优先级信息;其中,同一计算链路中下游计算任务的优先级高于上游计算任务的优先级;按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行。
在一种可能的设计中,所述按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行,包括:在需分配第一类别的计算任务至所述第一CPU执行时,判断所述第一类别的计算任务的状态是否为第一状态,第一类别的计算任务为所述第一CPU对应的各类计算任务中的任意一个类别的计算任务;若是,则将第二类别的计算任务分配至所述第一CPU执行,所述第二类别的计算任务为所述第一CPU对应的各类计算任务中状态为第二状态且优先级最高的类别的计算任务;其中,任意一种类别的计算任务的第一状态为如下中的任意一种状态:当前不存在该类别的计算任务、该类别的计算任务被执行完毕、该类别的计算任务处于非执行态;任意一种类别的计算任务的非执行状态指示相应的CPU暂停执行该类别的计算任务;任意一种类别的计算任务的第二状态为存在该类别的计算任务且未处于非执行态。
第三方面,本申请提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面以及第一方面任一可能设计中所述的方法。
第四方面,本申请提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面以及第一方面任一可能设计中所述的方法。
上述申请中的一个实施例具有如下优点或有益效果:可以使得任务处理过程中的端到端处理时延较短且时延抖动较小,保证了电子设备(比如无人车)稳定运行。因为通过获取调度文件,调度文件用于指示各类计算任务各自对应的中央处理器CPU,根据调度文件,将各类计算任务分配至对应的CPU执行务,且同一条计算链路上的全部或部分类别的计算任务对应同一个CPU的技术手段,所以克服了现有技术中的任务处理过程中端到端处理时延长且抖动较大的问题,进而达到任务处理过程中的端到端处理时延较短且时延抖动较小,保证电子设备(比如无人车)稳定运行的技术效果。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例的计算链路的拓扑结构示意图一;
图2是本申请实施例提供的传统的电子设备任务处理示意图;
图3是本申请实施例提供的任务处理方法的流程图;
图4为本申请实施例提供的计算链路的拓扑结构示意图二;
图5为本申请实施例提供的任务处理方法的流程图二;
图6为本申请实施例提供的任务处理装置的结构示意图;
图7是用来实现本申请实施例的任务处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。本申请中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
首先对本申请涉及到的一些要素进行说明。
1、电子设备运行过程中,电子设备内部存在多条计算链路,每条计算链路包括多种类别的计算任务。其中,在同一计算链路中,处理的数据的来源相同且处理过程相同的任务称为同一类别的任务。
一种计算链路的拓扑结构示意图如图1所示,计算链路1包括类别a的计算任务、类别b的计算任务和类别c的计算任务,计算链路2包括类别e的计算任务、类别f的计算任务和类别c的计算任务。同一计算链路上的计算任务之间具有数据依赖关系,比如在一次端到端的处理过程中,类别c的计算任务的执行需要依赖于类别b的计算任务的执行结果,类别b的计算任务的执行需要依赖于类别a的计算任务的执行结果。可以理解的是,类别b的计算任务为类别a的计算任务的下游计算任务,为类别c的计算任务的上游计算任务。
2、端到端的处理过程:一次端到端的处理过程是指一条计算链路上从上游计算任务到下游计算任务依次执行,直至最后一个下游任务被执行完毕的过程。比如,对于计算链路1,一次端到端的处理过程包括:类别a的计算任务1开始被执行,执行完毕得到处理结果1,产生依赖于处理结果1的类别b的计算任务2,类别b的计算任务2被执行(即对处理结果1进行处理),执行完毕得到处理结果2;在计算链路2上的类别f的计算任务4也被执行完毕得到处理结果3后,产生依赖于处理结果2和处理结果3的类别c的计算任务3,类别c的计算任务3被执行(即对处理结果2和处理结果3进行处理),类别c的计算任务3被执行完毕后,计算链路1对应的一次端到端的处理过程完毕。
3、端到端处理时延:一个计算链路上从上游计算任务到下游计算任务依次执行,直至最后一个下游计算任务被执行完毕所经历的时长。
为了更好的理解本申请,下面对传统的任务处理方法进行说明。
在传统的任务处理方法中,电子设备所包括的各CPU共用同一任务队列,根据先进先出的规则处理任务。
参见图1和图2,电子设备包括3个CPU:CPU1、CPU2和CPU3,任务队列中包括准确就绪的计算任务1、计算任务2、计算任务3、计算任务4,计算任务1、计算任务2均为类别a的计算任务,计算任务3为类别b的计算任务,计算任务4为类别e的计算任务。CPU1正在执行计算任务1,CPU2正在执行计算任务3,CPU3正在执行计算任务4。CPU2执行完计算任务3后,会产生类别c的计算任务:计算任务5,接着计算任务5进入任务队列中。若CPU2执行完计算任务3后,CPU1还在执行计算任务1,CPU3还在执行计算任务4,即当前空闲的CPU为CPU2。由于计算任务2在计算任务5进入任务队列之前就已经为任务队列中准备就绪的任务队列,因此,CPU2会先执行计算任务2,而不去执行计算任务5。
上述举例中,在计算任务3被执行完毕后,应该接着执行新产生的计算任务5,以完成一次端到端的处理过程。但是按照先进先出的规则先执行的是计算任务2,在计算任务2处理完毕后,计算任务5才会被执行,那么计算链路1所对应的端到端的时延就会变长。同时,上述举例中,执行某一计算任务的CPU是随机的,计算任务3需要依赖计算任务6(类别a的计算任务)的处理结果(图中未示出),若计算任务6且是CPU1执行的,那么CPU2需从CPU1的缓存中获取计算任务6的处理结果以执行计算任务3,也延长了计算链路1所对应的端到端的时延。另外,上述举例中,执行一类计算任务的CPU也是不固定的,任务处理复杂度高,也在一定程度上延长了端到端处理时延。
为了解决上述技术问题,本申请提出一种任务处理方法。下面采用具体的实施例对本申请的任务处理方法进行说明。
图3是本申请实施例提供的任务处理方法的流程图,本实施例的执行主体可为电子设备。参见图3,本实施例的方法包括:
步骤S301、获取调度文件,该调度文件用于指示各类计算任务各自对应的CPU;其中,各类计算任务组成至少一条计算链路,属于同一条计算链路的全部或部分类别的计算任务对应同一个CPU,至少一条计算链路上任意相邻的两类计算任务中上游计算任务的输出是下游计算任务的输入。
其中,调度文件可包括各类计算任务的标识以及各类计算任务各自对应的CPU的标识。
在一种方式中,获取调度文件,可通过a1~a3实现:
a1、获取配置文件,配置文件包括各类计算任务的输入通道和输出通道。
其中,配置文件可为电子设备开机时加载的DAG文件,配置文件指示了每类计算任务的输入通道和输出通道。
a2、根据配置文件,获取各类计算任务所组成的至少一条计算链路。
由于配置文件指示了每类计算任务的输入通道和输出通道,因此,可根据配置文件,得到各类计算任务所组成的至少一条计算链路。
示例性地,aa类计算任务的输入通道为1、输出通道为2,bb类计算任务的输入通道为2、输出通道为3,则aa类计算任务和bb类计算任务属于同一计算链路,且aa类计算任务为bb类计算任务的上游计算任务。
a3、根据各类计算任务所组成的至少一条计算链路和预设条件,生成调度文件。
在一种具体的实现中,根据各类计算任务所组成的至少一条计算链路和预设条件,生成调度文件,可包括:
a31、根据各类计算任务所组成的至少一条计算链路和第一预设条件,将各类计算任务进行分组,得到至少一个分组。
其中,第一预设条件可包括:第一计算链路上的N-n类计算任务被分配至同一分组中;其中,第一计算链路为各类计算任务所组成的至少一条计算链路中的任意一条计算链路,N为第一计算链路包括的计算任务的总类别数目,n为第一计算链路与其它计算链路共同包括的各计算任务类别被分配至其它分组的类别数目,N为正整数,n为整数。
在一种方式中,第一计算链路上的N-n类计算任务可为第一计算链路上连续的N-n类计算任务。
a32、根据至少一个分组,生成调度文件。
在一种方式中,根据至少一个分组,生成调度文件包括:对于每个分组,确定该分组所包括的各类计算任务对应的CPU;根据该分组所包括的各类计算任务对应的CPU,生成调度文件。即每个分组所包括的各类别的计算任务对应一个CPU。
在另一种方式中,根据至少一个分组,生成调度文件包括:根据第二预设条件和至少一个分组,生成调度文件。
其中,第二预设条件可包括:对于每个分组:若该分组所包括的各类计算任务被分配至同一CPU上执行使得CPU的负载小于预设负载,则该分组所包括的各类计算任务均对应该CPU;若该分组所包括的各类计算任务被分配至同一CPU上执行使得该CPU的负载大于或等于预设负载,则该分组所包括的所有类别的计算任务对应至少两个CPU,且该分组所包括的所有类别的计算任务被分配至该至少两个CPU上执行使得该至少两个CPU的负载均小于预设负载。第二预设条件还可包括:在存在未对应任何类别的计算任务的空闲CPU的情况下,分组所包括的所有类别或部分类别的计算任务对应该空闲CPU。
上述的预设条件可以使得同一计算链路上的各类计算任务可以尽可能的分配至同一CPU上,以降低端到端处理时延。
可选地,第二预设条件还包括:若一个CPU对应至少两个分组各自包括的全部或部分类别的计算任务,则该CPU对应的各类别的计算任务的属性相同。该方案可以使得在同一CPU上执行的计算任务的属性相同,这样处理时长长的计算任务就不会影响处理时长短的计算任务被执行的效率,进而减小端到端的处理时延。
可选地,第二预设条件还包括:若一个分组所包括的各类别的计算任务对应至少两个CPU,则该至少两个CPU中的任一个CPU所对应的各类别的计算任务的属性相同。该方案可以使得在同一CPU上执行的计算任务的属性相同,这样处理时长长的计算任务就不会影响处理时长短的计算任务被执行的效率,进而减小端到端的处理时延。
其中,同一类别的计算任务会周期性的产生。两个类别的计算任务的属性相同可包括:类别A的计算任务执行时间和类别B的计算任务的执行时间之间的差值小于或等于预设时间差,且第一频率和第二频率的差值小于或等于预设频率,第一频率为类别A的计算任务产生的频率,第二频率为类别B的计算任务产生的频率。比如属性均是高频短耗时的类别的任务属性相同,属性均是低频长耗时的类别的任务属性相同。
综上,预设条件可以理解为:相同计算链路上的各类别的计算任务尽量分配至同一CPU上执行,如果负载过高,相同计算链路的所有类别的计算任务可分配至少两个CPU上执行;属性相同的多种类别的计算任务尽量分配至同一CPU上执行;不同计算链路上的计算任务尽量不分配至同一CPU上执行。
图4为本申请实施例提供的计算链路的拓扑结构示意图二,下面结合图4对生成调度文件的一种过程进行示例性说明。
参见图4,计算链路a包括类别A的计算任务、类别B的计算任务、类别C的计算任务和类别H的计算任务,计算链路a所包括的计算任务的总类别数目为4;计算链路b包括类别D的计算任务、类别E的计算任务、类别G的计算任务和类别H的计算任务,计算链路b所包括的计算任务的总类别数目为4;计算链路c包括计算任务类别D的计算任务、类别F的计算任务、类别G的计算任务和类别H的计算任务,所包括的计算任务的总类别数目为4。
对类别A的计算任务、类别B的计算任务、类别C的计算任务、类别H的计算任务、类别D的计算任务、类别E的计算任务、类别F的计算任务和类别G的计算任务进行分组,类别A的计算任务、类别B的计算任务、类别C的计算任务组成一个分组a(计算链路a中的4-1=3种类别的计算任务被分配至同一分组中,与计算链路b共同包括的类别H的计算任务被分配至分组b中),类别D的计算任务、类别E的计算任务、类别G的计算任务和类别H的计算任务组成一个分组b(计算链路b中的4-0=4种类别的计算任务被分配至同一分组中),类别F的计算任务组成一个分组c(计算链路c中的4-3=1种计算任务被分配至同一分组中,与计算链路b共同包括的类别D、G、H的计算任务被分配至分组b中)。
对于分组a,分组a所包括的类别A的计算任务、类别B的计算任务、类别C的计算任务被分配至同一CPU(a)上执行使得CPU(a)的负载小于预设负载,则分组a所包括的类别A的计算任务、类别B的计算任务、类别C的计算任务均对应CPU(a)。其中CPU(a)并不是固定好的,可以是从电子设备所包括的各CPU中确定的一个能够满足执行分组a所包括的类别A的计算任务、类别B的计算任务、类别C的计算任务时负载小于预设负载的CPU。
对于分组b,分组b所包括的计算任务:类别D的计算任务、类别E的计算任务、类别G的计算任务和类别H的计算任务被分配至同一CPU(b)上执行使得CPU(b)的负载大于或等于预设负载,属性相同的类别D的计算任务、类别E的计算任务被分配至CPU(b)使得CPU(b)的负载小于预设负载,属性相同的类别G的计算任务和类别H的计算任务被分配至CPU(c)使得CPU(c)的负载小于预设负载,因此,类别D的计算任务、类别E的计算任务可对应CPU(b),类别G的计算任务和类别H的计算任务可对应CPU(c)。
对于分组c,在电子设备除了包括CPU(a)、CPU(b)、CPU(c)的情况下,还包括CPU(d)的情况下,分组c所包括的类别F的计算任务可对应CPU(d)。在电子设备除了包括CPU(a)、CPU(b)、CPU(c)的情况下,不包括其它CPU的情况下,分组c所包括的类别F的计算任务可对应CPU(a)~CPU(c)中一个。其中,若类别D的计算任务、类别E的计算任务、类别F的计算任务属性相同,且类别D的计算任务、类别E的计算任务、类别F的计算任务被分配至同一CPU(b)上执行使得CPU(b)的负载小于预设负载,类别F的计算任务也可对应CPU(b)。
综上,得到了类别A的计算任务、类别B的计算任务、类别C的计算任务、类别H的计算任务、类别D的计算任务、类别E的计算任务、类别G的计算任务、类别F的计算任务各自所对应的CPU,根据上述各类别计算任务所对应的CPU,即可生成调度文件。
可以理解的是,生成的调度文件可预先存储在电子设备的存储器中,在任务处理过程中从电子设备的存储器中读取调度文件。
步骤S302、根据调度文件,将各类计算任务分配至对应的CPU执行。
根据调度文件的指示,将各类计算任务分配至对应的CPU执行。比如,调度文件指示类别A的计算任务、类别B的计算任务、类别C的计算任务对应同一CPU(a),则将类别A的计算任务、类别B的计算任务、类别C的计算任务分配至CPU(a)执行;调度文件指示类别D的计算任务、类别E的计算任务对应同一CPU(b),则将类别D的计算任务、类别E的计算任务分配至CPU(b)执行;调度文件指示类别G的计算任务和类别H的计算任务对应CPU(c),则将类别G的计算任务和类别H的计算任务分配至CPU(c)执行。调度文件指示类别F的计算任务对应CPU(b),则将类别F的计算任务分配至CPU(b)执行。
本实施例中,由于调度文件指示了各类计算任务各自对应的CPU,执行同一类别的计算任务的CPU被固定,在一定程度上可降低端到端处理时延;同时由于同一计算链路的全部或部分类别的计算任务对应同一个CPU,可以尽可能的保证同一计算链路上具有数据依赖关系的任务由一个CPU执行,这样下游计算任务所需要的上游计算任务的处理结果在同一CPU对应的缓存中,无需从其它CPU对应的缓存中获取数据,端到端时延较短且时延抖动较小,在执行任务处理方法的电子设备为无人车时,可保证无人车的正常运行。
下面采用具体的实施例对图3所示的实施例中的“将各类计算任务分配至相应的CPU执行”进行说明。
图5为本申请实施例提供的任务处理方法的流程图二,本实施例中以将第一CPU对应的各类计算任务分配至第一CPU执行的方法为例进行说明,其中,第一CPU为各CPU中的任意一个CPU。参见图5,本实施例的方法包括:
步骤S501、获取第一CPU对应的各类计算任务的优先级信息;其中,同一计算链路中下游计算任务的优先级高于上游计算任务的优先级。
其中,第一CPU对应的各类计算任务是根据调度文件得到的。
在第一CPU所对应的各类计算任务属于同一计算链路的情况下,则第一CPU对应的各类计算任务的优先级满足同一计算链路中下游计算任务的优先级高于上游计算任务的优先级。
示例性地,继续参见图4,对于计算链路a,类别A的计算任务、类别B的计算任务、类别C的计算任务和类别H的计算任务优先级从高到低为:类别H的计算任务、类别C的计算任务、类别B的计算任务和类别A的计算任务。对于计算链路b,类别D的计算任务、类别E的计算任务、类别G的计算任务和类别H的计算任务的优先级从高到低为:类别H的计算任务、类别G的计算任务、类别E的计算任务和类别D的计算任务。对于计算链路c,类别D的计算任务、类别F的计算任务、类别G的计算任务和类别H的计算任务的优先级从高到低为类别H的计算任务、类别G的计算任务、类别F的计算任务和类别D的计算任务。
在第一CPU所对应的各类计算任务属于多条计算链路的情况下,则第一CPU对应的各类计算任务中同一计算链路中下游计算任务的优先级高于上游计算任务的优先级,不同计算链路上的各类计算任务之间的优先级可以是预设好的。
步骤S502、按照优先级信息将第一CPU对应的各类计算任务分配至第一CPU执行。
在一种方式中:按照优先级信息将第一CPU对应的各类计算任务分配至第一CPU执行,包括:
b1、在需分配第一类别的计算任务至第一CPU执行时,判断第一类别的计算任务的状态是否为第一状态,第一类别的计算任务为第一CPU对应的各类计算任务中的任意一个类别的计算任务。
即在需分配第一类别的计算任务至第一CPU执行时,首先判断第一类别的计算任务的状态是否为第一状态。其中,任意一种类别的计算任务的第一状态为如下中的任意一种状态:当前不存在该类别的计算任务(即该类别的计算任务当前还未准确就绪)、该类别的计算任务被执行完毕、该类别的计算任务处于非执行态;任意一种类别的计算任务的非执行状态指示相应的CPU暂停执行该类别的计算任务。
b2、若第一类别的计算任务的状态为第一状态,则将第二类别的计算任务分配至所述第一CPU执行,第二类别的计算任务为第一CPU对应的各类别的计算任务中状态为第二状态且优先级最高的类别的计算任务。
其中,任意一种类别的计算任务的第二状态为存在该类别的计算任务(即该类别的计算任务当前准确就绪)且未处于非执行态。也就是说,CPU每执行完一个计算任务时均是再次从最高优先级类别的计算任务开始执行。
示例性地,继续参见图4,类别A的计算任务、类别B的计算任务、类别C的计算任务对应CPU(a),类别A的计算任务、类别B的计算任务、类别C的计算任务的优先级从高到低依次为:类别C的计算任务、类别B的计算任务、类别A的计算任务,即此时CPU(a)为第一CPU,第一CPU对应的各类计算任务为类别A的计算任务、类别B的计算任务、类别C的计算任务。若当前需要分配类别B的计算任务至执行CPU(a)执行,此时类别B的计算任务为第一类别的计算任务。
接着,若类别B的计算任务的状态为第一状态,判断类别C的计算任务的状态是否为第一状态,若类别C的计算任务不为第一状态,则判断类别C的计算任务的状态是否为第二状态,若类别C的计算任务的状态是第二状态,在将类别C的计算任务分配至CPU(a)执行,此时,类别C的计算任务为第二类别的计算任务。若类别C的计算任务的状态为第一状态,则判断类别B的计算任务的状态是否为第一状态,若类别B的计算任务的状态不为第一状态,则判断类别B的计算任务的状态是否为第二状态,若类别B的计算任务的状态是第二状态,在将类别B的计算任务分配至CPU(a)执行,此时,类别B的计算任务为第二类别的计算任务。
本实施例中,同一计算链路上的下游计算任务的优先级高于上游计算任务的优先级,且CPU每执行完一个计算任务时均是再次从最高优先级类别的计算任务开始执行,可保证同一计算链路上的应该先被先处理的任务可以先被处理,即可解决优先级反转问题,因此端到端时延较短,在在执行任务处理方法的电子设备为无人车时,可保证无人车的正常运行。
以上对本申请提供的任务处理方法进行了说明,下面对本申请提供的任务处理的装置进行说明。
图6为本申请实施例提供的任务处理装置的结构示意图,如图6所示,本实施例的装置可以包括:获取模块601、分配模块602。
获取模块601,用于获取调度文件,所述调度文件用于指示各类计算任务各自对应的中央处理器CPU;其中,所述各类计算任务组成至少一条计算链路,属于同一条计算链路的全部或部分类别的计算任务对应同一个CPU,所述计算链路上任意相邻的两类计算任务中上游计算任务的输出是下游计算任务的输入;分配模块602,用于根据所述调度文件,将各类计算任务分配至对应的CPU执行。
可选地,所述获取模块601,具体用于:获取配置文件,所述配置文件包括各类计算任务的输入通道和输出通道;根据所述配置文件,获取各类计算任务所组成的至少一条计算链路;根据所述至少一条计算链路和预设条件,生成所述调度文件。
可选地,所述预设条件包括第一预设条件,所述获取模块601,具体用于:根据所述至少一条计算链路和所述第一预设条件,将各类计算任务进行分组,得到至少一个分组;根据所述至少一个分组,生成所述调度文件。
可选地,所述第一预设条件包括:第一计算链路上的N-n类计算任务被分配至同一分组中;其中,所述第一计算链路为所述至少一条计算链路中的任意一条计算链路,N为所述第一计算链路包括的计算任务的总类别数目,n为所述第一计算链路与其它计算链路共同包括的各计算任务类别被分配至其它分组的类别数目,N为正整数,n为整数。
可选地,所述获取模块601,具体用于:对于每个所述分组,确定所述分组所包括的各类计算任务对应的CPU;根据各分组所包括的各类计算任务对应的CPU,生成所述调度文件。
可选地,所述预设条件还包括第二预设条件,所述获取模块601,具体用于:根据所述至少一个分组和所述第二预设条件,生成所述调度文件。
可选地,所述第二预设条件包括:对于每个分组:若所述分组所包括的各类计算任务被分配至同一CPU上执行使得CPU的负载小于预设负载,则所述分组所包括的各类计算任务均对应该CPU;若所述分组所包括的各类计算任务被分配至同一CPU上执行使得该CPU的负载大于或等于预设负载,则所述分组所包括的所有类别的计算任务对应至少两个CPU,且所述分组所包括的所有类别的计算任务被分配至所述至少两个CPU上执行使得所述至少两个CPU的负载均小于预设负载。
可选地,所述第二预设条件还包括:若一个CPU对应至少两个分组各自包括的全部或部分类别的计算任务,则该CPU对应的各类别的计算任务的属性相同。
可选地,所述第二预设条件还包括:所述至少两个CPU中的任一个CPU所对应的各类别的计算任务的属性相同。
可选地,所述分配模块602,具体用于:对于第一CPU对应的各类计算任务,所述第一CPU为电子设备包括的任意一个CPU:获取所述第一CPU对应的各类计算任务的优先级信息;其中,同一计算链路中下游计算任务的优先级高于上游计算任务的优先级;按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行。
可选地,所述按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行,包括:在需分配第一类别的计算任务至所述第一CPU执行时,判断所述第一类别的计算任务的状态是否为第一状态,第一类别的计算任务为所述第一CPU对应的各类计算任务中的任意一个类别的计算任务;若是,则将第二类别的计算任务分配至所述第一CPU执行,所述第二类别的计算任务为所述第一CPU对应的各类计算任务中状态为第二状态且优先级最高的类别的计算任务;其中,任意一种类别的计算任务的第一状态为如下中的任意一种状态:当前不存在该类别的计算任务、该类别的计算任务被执行完毕、该类别的计算任务处于非执行态;任意一种类别的计算任务的非执行状态指示相应的CPU暂停执行该类别的计算任务;任意一种类别的计算任务的第二状态为存在该类别的计算任务且未处于非执行态。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图7所示,是根据本申请实施例的任务处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图7中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的任务处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的任务处理方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的任务处理方法对应的程序指令/模块(例如,附图6所示的获取模块601和分配模块602)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的任务处理方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据任务处理方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至实现任务处理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现任务处理方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与XXX的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请通过获取调度文件,所述调度文件用于指示各类计算任务各自对应的中央处理器CPU,根据所述调度文件,将各类计算任务分配至对应的CPU执行,且同一条计算链路上的全部或部分类别的计算任务对应同一个CPU,同一计算链路中上游计算任务的优先级高于下游计算任务的优先级。克服了现有技术中的任务处理过程中端到端处理时延长且抖动较大的问题,进而达到任务处理过程中的端到端处理时延较短且时延抖动较小,保证电子设备(比如无人车)稳定运行的技术效果。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (16)
1.一种任务处理方法,其特征在于,包括:
获取配置文件,所述配置文件包括各类计算任务的输入通道和输出通道;
根据所述配置文件,获取各类计算任务所组成的至少一条计算链路;
根据所述至少一条计算链路和第一预设条件,将各类计算任务进行分组,得到至少一个分组;
根据所述至少一个分组和第二预设条件,生成调度文件;所述调度文件用于指示各类计算任务各自对应的中央处理器CPU;其中,所述各类计算任务组成至少一条计算链路,属于同一条计算链路的全部或部分类别的计算任务对应同一个CPU,所述计算链路上任意相邻的两类计算任务中上游计算任务的输出是下游计算任务的输入;
根据所述调度文件,将各类计算任务分配至对应的CPU执行;
所述第二预设条件包括:
对于每个分组:
若所述分组所包括的各类计算任务被分配至同一CPU上执行使得CPU的负载小于预设负载,则所述分组所包括的各类计算任务均对应该CPU;
若所述分组所包括的各类计算任务被分配至同一CPU上执行使得该CPU的负载大于或等于预设负载,则所述分组所包括的所有类别的计算任务对应至少两个CPU,且所述分组所包括的所有类别的计算任务被分配至所述至少两个CPU上执行使得所述至少两个CPU的负载均小于预设负载。
2.根据权利要求1所述的方法,其特征在于,所述第一预设条件包括:第一计算链路上的N-n类计算任务被分配至同一分组中;
其中,所述第一计算链路为所述至少一条计算链路中的任意一条计算链路,N为所述第一计算链路包括的计算任务的总类别数目,n为所述第一计算链路与其它计算链路共同包括的各计算任务类别被分配至其它分组的类别数目,N为正整数,n为整数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个分组,生成所述调度文件,包括:
对于每个所述分组,确定所述分组所包括的各类计算任务对应的CPU;
根据各分组所包括的各类计算任务对应的CPU,生成所述调度文件。
4.根据权利要求1所述的方法,其特征在于,所述第二预设条件还包括:
若一个CPU对应至少两个分组各自包括的全部或部分类别的计算任务,则该CPU对应的各类别的计算任务的属性相同。
5.根据权利要求1所述的方法,其特征在于,所述第二预设条件还包括:
所述至少两个CPU中的任一个CPU所对应的各类别的计算任务的属性相同。
6.根据权利要求1~5任一项所述的方法,其特征在于,根据所述调度文件,将各类计算任务分配至对应的CPU执行,包括:
对于第一CPU对应的各类计算任务,所述第一CPU为电子设备包括的任意一个CPU:
获取所述第一CPU对应的各类计算任务的优先级信息;其中,同一计算链路中下游计算任务的优先级高于上游计算任务的优先级;
按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行。
7.根据权利要求6所述的方法,其特征在于,所述按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行,包括:
在需分配第一类别的计算任务至所述第一CPU执行时,判断所述第一类别的计算任务的状态是否为第一状态,第一类别的计算任务为所述第一CPU对应的各类计算任务中的任意一个类别的计算任务;
若是,则将第二类别的计算任务分配至所述第一CPU执行,所述第二类别的计算任务为所述第一CPU对应的各类计算任务中状态为第二状态且优先级最高的类别的计算任务;
其中,任意一种类别的计算任务的第一状态为如下中的任意一种状态:当前不存在该类别的计算任务、该类别的计算任务被执行完毕、该类别的计算任务处于非执行态;任意一种类别的计算任务的非执行状态指示相应的CPU暂停执行该类别的计算任务;任意一种类别的计算任务的第二状态为存在该类别的计算任务且未处于非执行态。
8.一种任务处理装置,其特征在于,包括:
获取模块,用于获取配置文件,所述配置文件包括各类计算任务的输入通道和输出通道;根据所述配置文件,获取各类计算任务所组成的至少一条计算链路;根据所述至少一条计算链路和第一预设条件,将各类计算任务进行分组,得到至少一个分组;根据所述至少一个分组和第二预设条件,生成调度文件;所述调度文件用于指示各类计算任务各自对应的中央处理器CPU;其中,所述各类计算任务组成至少一条计算链路,属于同一条计算链路的全部或部分类别的计算任务对应同一个CPU,所述计算链路上任意相邻的两类计算任务中上游计算任务的输出是下游计算任务的输入;
分配模块,用于根据所述调度文件,将各类计算任务分配至对应的CPU执行;
所述第二预设条件包括:
对于每个分组:
若所述分组所包括的各类计算任务被分配至同一CPU上执行使得CPU的负载小于预设负载,则所述分组所包括的各类计算任务均对应该CPU;
若所述分组所包括的各类计算任务被分配至同一CPU上执行使得该CPU的负载大于或等于预设负载,则所述分组所包括的所有类别的计算任务对应至少两个CPU,且所述分组所包括的所有类别的计算任务被分配至所述至少两个CPU上执行使得所述至少两个CPU的负载均小于预设负载。
9.根据权利要求8所述的装置,其特征在于,所述第一预设条件包括:第一计算链路上的N-n类计算任务被分配至同一分组中;
其中,所述第一计算链路为所述至少一条计算链路中的任意一条计算链路,N为所述第一计算链路包括的计算任务的总类别数目,n为所述第一计算链路与其它计算链路共同包括的各计算任务类别被分配至其它分组的类别数目,N为正整数,n为整数。
10.根据权利要求8所述的装置,其特征在于,所述获取模块,具体用于:
对于每个所述分组,确定所述分组所包括的各类计算任务对应的CPU;
根据各分组所包括的各类计算任务对应的CPU,生成所述调度文件。
11.根据权利要求8所述的装置,其特征在于,所述第二预设条件还包括:
若一个CPU对应至少两个分组各自包括的全部或部分类别的计算任务,则该CPU对应的各类别的计算任务的属性相同。
12.根据权利要求8所述的装置,其特征在于,所述第二预设条件还包括:
所述至少两个CPU中的任一个CPU所对应的各类别的计算任务的属性相同。
13.根据权利要求8~12任一项所述的装置,其特征在于,所述分配模块,具体用于:
对于第一CPU对应的各类计算任务,所述第一CPU为电子设备包括的任意一个CPU:
获取所述第一CPU对应的各类计算任务的优先级信息;其中,同一计算链路中下游计算任务的优先级高于上游计算任务的优先级;
按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行。
14.根据权利要求13所述的装置,其特征在于,所述按照所述优先级信息将所述第一CPU对应的各类计算任务分配至所述第一CPU执行,包括:
在需分配第一类别的计算任务至所述第一CPU执行时,判断所述第一类别的计算任务的状态是否为第一状态,第一类别的计算任务为所述第一CPU对应的各类计算任务中的任意一个类别的计算任务;
若是,则将第二类别的计算任务分配至所述第一CPU执行,所述第二类别的计算任务为所述第一CPU对应的各类计算任务中状态为第二状态且优先级最高的类别的计算任务;
其中,任意一种类别的计算任务的第一状态为如下中的任意一种状态:当前不存在该类别的计算任务、该类别的计算任务被执行完毕、该类别的计算任务处于非执行态;任意一种类别的计算任务的非执行状态指示相应的CPU暂停执行该类别的计算任务;任意一种类别的计算任务的第二状态为存在该类别的计算任务且未处于非执行态。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910966643.4A CN110688229B (zh) | 2019-10-12 | 2019-10-12 | 任务处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910966643.4A CN110688229B (zh) | 2019-10-12 | 2019-10-12 | 任务处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688229A CN110688229A (zh) | 2020-01-14 |
CN110688229B true CN110688229B (zh) | 2022-08-02 |
Family
ID=69112637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910966643.4A Active CN110688229B (zh) | 2019-10-12 | 2019-10-12 | 任务处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688229B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113269480B (zh) * | 2020-02-17 | 2022-06-14 | 百度在线网络技术(北京)有限公司 | 一种任务分配路径确定方法、装置和电子设备 |
CN111694647A (zh) * | 2020-06-08 | 2020-09-22 | 北京百度网讯科技有限公司 | 用于自动驾驶车辆的任务调度方法、设备及存储介质 |
CN111506413B (zh) * | 2020-07-02 | 2020-09-18 | 上海有孚智数云创数字科技有限公司 | 一种基于业务效率优化的智能任务调度方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001100884A (ja) * | 1999-09-30 | 2001-04-13 | Fujitsu Ltd | タスク管理装置およびタスク管理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
CN102467415A (zh) * | 2010-11-03 | 2012-05-23 | 大唐移动通信设备有限公司 | 一种业务面任务处理方法及设备 |
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
CN107943577A (zh) * | 2016-10-12 | 2018-04-20 | 百度在线网络技术(北京)有限公司 | 用于调度任务的方法和装置 |
CN108694087A (zh) * | 2017-03-31 | 2018-10-23 | 英特尔公司 | 用于最优***级性能的网络接口卡中的动态负载均衡 |
CN109379727A (zh) * | 2018-10-16 | 2019-02-22 | 重庆邮电大学 | 车联网中基于mec的任务分布式卸载与协作执行方案 |
-
2019
- 2019-10-12 CN CN201910966643.4A patent/CN110688229B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001100884A (ja) * | 1999-09-30 | 2001-04-13 | Fujitsu Ltd | タスク管理装置およびタスク管理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
CN102467415A (zh) * | 2010-11-03 | 2012-05-23 | 大唐移动通信设备有限公司 | 一种业务面任务处理方法及设备 |
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
CN107943577A (zh) * | 2016-10-12 | 2018-04-20 | 百度在线网络技术(北京)有限公司 | 用于调度任务的方法和装置 |
CN108694087A (zh) * | 2017-03-31 | 2018-10-23 | 英特尔公司 | 用于最优***级性能的网络接口卡中的动态负载均衡 |
CN109379727A (zh) * | 2018-10-16 | 2019-02-22 | 重庆邮电大学 | 车联网中基于mec的任务分布式卸载与协作执行方案 |
Non-Patent Citations (2)
Title |
---|
Assessing the Impact of the CPU Power-Saving Modes on the Task-Parallel Solution of Sparse Linear Systems;José I. Aliaga 等;《Cluster Computing》;Springer;20140905;第1335–1348页 * |
并行分布计算中的任务调度及其分类;陈华平 等;《计算机科学》;20010115;第28卷(第1期);第45-48页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110688229A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806923B (zh) | 一种区块链任务的并行处理方法、装置、电子设备和介质 | |
CN110688229B (zh) | 任务处理方法和装置 | |
JP7214786B2 (ja) | 深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体 | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
US8516487B2 (en) | Dynamic job relocation in a high performance computing system | |
CN111694646A (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
JP7282823B2 (ja) | メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム | |
CN111506401B (zh) | 自动驾驶仿真任务调度方法、装置、电子设备及存储介质 | |
CN111459645B (zh) | 一种任务调度方法、装置和电子设备 | |
US20150309817A1 (en) | Administering virtual machines in a distributed computing environment | |
CN111782365A (zh) | 定时任务处理方法、装置、设备及存储介质 | |
US20150312108A1 (en) | Administering virtual machines in a distributed computing environment | |
CN111259205A (zh) | 一种图数据库遍历方法、装置、设备及存储介质 | |
US9703587B2 (en) | Administering virtual machines in a distributed computing environment | |
US9471387B2 (en) | Scheduling in job execution | |
CN111782147A (zh) | 用于集群扩缩容的方法和装置 | |
CN114356547A (zh) | 基于处理器虚拟化环境的低优阻塞方法及装置 | |
US10203988B2 (en) | Adaptive parallelism of task execution on machines with accelerators | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
CN111767059B (zh) | 深度学习模型的部署方法、装置、电子设备和存储介质 | |
CN111176838B (zh) | 为二分图中的节点分配嵌入向量的方法以及装置 | |
CN113760638A (zh) | 一种基于kubernetes集群的日志服务方法和装置 | |
CN111782341A (zh) | 用于管理集群的方法和装置 | |
GB2505412A (en) | Collaborative modified consensus workload distribution between computing nodes | |
CN111416860B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211112 Address after: 105 / F, building 1, No. 10, Shangdi 10th Street, Haidian District, Beijing 100085 Applicant after: Apollo Intelligent Technology (Beijing) Co.,Ltd. Address before: 2 / F, *** building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100085 Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |