一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务调度处理方法、装置、计算机设备和存储介质与流程

2022-07-02 05:27:54 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种任务调度处理方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.随着5g、6g、人工智能、机器学习、大数据等场景应用对算力需求的迅猛增长以及电力应用场景的多样化需求,相较于单核架构,异构多核架构所具有的性能功耗比优势已经受到广泛关注。场景应用对处理器算力要求的提高,以及计算需求的不断多样化,处理器得到了迅速发展。虽然处理器提供的计算能力越来越强,但是由于处理器中集成电路已达到纳米级,处理器的频率提升越来越困难,单核计算能力的提升空间已经十分有限,因此通过多个核心基于感知融合处理来提升处理器整体的计算能力成了新的研究热点。而多核结点间通信并行相较于单核架构,多核架构所具有的性能功耗比优势已经受到广泛关注,但是为利用多核架构所带来的性能优势需要依赖于高效的核间通信机制,因此,处理器研发与应用者开始将更多的精力集中到核间通信机制上来,对于由不同类型核构成的异构多核处理器,在改善核间通信效率方面尤其面临着诸多问题。例如在异构多核处理器在进行任务调度处理时,核间通信机制需要在异构多核处理器的应用中高效地利用处理器核并提升处理器核间的通信效率,降低核与核通信导致的延迟,提高系统实时性。
3.目前,已有研究通过启发式算法来进行异构多核处理器的任务调度处理,包括遗传算法、变邻域搜索算法以及模拟退火算法等,启发式算法虽然考虑了映射过程中任务的实时性,但是仅以限定利用率的方式来保证可调度性,没有考虑应用程序的响应时间,因此任务调度处理时无法保证异构处理器之间任务通信调度处理过程的性能。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够保证异构处理器之间通信调度处理过程性能的任务调度处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种任务调度处理方法。所述方法包括:
6.获取待处理的异构多核fork-join任务图;
7.识别所述异构多核fork-join任务图中的中间任务节点;
8.基于所述中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对所述异构多核fork-join任务图进行处理器之间的通信限制的调度,获取所述异构多核fork-join任务图对应的调度结果。
9.在其中一个实施例中,所述基于所述中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对所述异构多核fork-join任务图进行处理器之间的通信限制的调度,获取所述异构多核fork-join任务图对应的调度结果包括:
10.获取所述中间任务节点的执行开销以及通信开销;
11.基于所述执行开销以及所述通信开销,获取所述异构多核fork-join任务图对应的算法拐点以及各中间任务节点对应的最大完成时间,基于所述执行开销以及所述通信开销对所述中间任务节点进行排序,得到节点排序结果;
12.根据所述中间任务节点的执行开销以及通信开销、所述算法拐点以及所述最大完成时间,以及将所述节点排序结果中的各节点依次分配至各异构处理器,获取所述异构多核fork-join任务图对应的调度结果。
13.在其中一个实施例中,所述基于所述执行开销以及所述通信开销,获取所述异构多核fork-join任务图对应的算法拐点以及各中间任务节点对应的最大完成时间包括:
14.基于所述执行开销以及所述通信开销以及预设第一不等式,获取所述异构多核fork-join任务图对应的算法拐点;
15.基于所述执行开销以及所述通信开销以及所述算法拐点,确定各所述中间任务节点对应的最大完成时间。
16.在其中一个实施例中,所述根据所述中间任务节点的执行开销以及通信开销、所述算法拐点以及所述最大完成时间,以及将所述节点排序结果中的各节点依次分配至各异构处理器,获取所述异构多核fork-join任务图对应的调度结果包括:
17.将所述节点排序结果中的第一节点分配至初始异构处理器,并获取所述初始处理器对应的第一任务执行时间,所述第一节点包括所述节点排序结果中的算法拐点以及算法拐点前的中间任务节点;
18.将所述节点排序结果中的第二节点分配至第二异构处理器,并获取所述第二处理器对应的第二任务执行时间以及第二通信完成时间,所述第二节点为所述节点排序结果中算法拐点后的第一个节点;
19.根据所述第一任务执行时间、所述第二任务执行时间以及所述第二通信完成时间,将所述节点排序结果中第二节点后续的各节点依次分配至各异构处理器;
20.当所述中间任务节点分配完成时,依据所述中间任务节点对应的分配结果得到所述异构多核fork-join任务图对应的调度结果
21.在其中一个实施例中,所述根据所述第一任务执行时间、所述第二任务执行时间以及所述第二通信完成时间,依次将所述节点排序结果中第二节点后续的各节点依次分配至各异构处理器包括:
22.将所述第一任务执行时间、所述第二任务执行时间以及所述第二通信完成时间作为现有处理器对应的处理器数据;
23.依据所述现有处理器对应的处理器数据、所述中间任务节点的执行开销以及通信开销、所述最大完成时间以及预设第二不等式,判断所述节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件;
24.当所述第一个后续节点满足所述现有处理器对应的任务插入条件时,将所述第一个后续节点分配至对应的现有处理器,并更新所述现有处理器对应的处理器数据;
25.当所述第一个后续节点不满足现有处理器的任务插入条件时,获取所述现有处理器对应的第一个后续处理器,将所述后续节点分配至所述第一个后续处理器,并更新所述现有处理器对应的处理器数据;
26.当所述第二节点对应的第一个后续节点分配完成后,将分配完成的第一个后续节
点作为第二节点,返回依据所述现有处理器对应的处理器数据、所述中间任务节点的执行开销以及通信开销、所述最大完成时间以及预设第二不等式,判断所述节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件的步骤;
27.当所述中间任务节点分配完成时,依据所述中间任务节点对应的分配结果得到所述异构多核fork-join任务图对应的调度结果。
28.在其中一个实施例中,所述当所述中间任务节点分配完成时,依据所述中间任务节点对应的分配结果得到所述异构多核fork-join任务图对应的调度结果包括:
29.当所述中间任务节点分配完成时,获取所述中间任务节点对应的任务分配列表;
30.获取所述待处理的异构多核fork-join任务图对应的初始任务节点以及终止任务节点;
31.将所述初始任务节点插入至所述任务分配列表中各个现有处理器的任务列表首部,将所述终止任务节点插入至所述任务分配列表中初始异构处理器的任务列表尾部,得到所述异构多核fork-join任务图对应的调度结果。
32.第二方面,本技术还提供了一种任务调度处理装置。所述装置包括:
33.任务图获取模块,用于获取待处理的异构多核fork-join任务图;
34.节点识别模块,用于识别所述异构多核fork-join任务图中的中间任务节点;
35.任务调度模块,用于基于所述中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对所述异构多核fork-join任务图进行处理器之间的通信限制的调度,获取所述异构多核fork-join任务图对应的调度结果。
36.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
37.获取待处理的异构多核fork-join任务图;
38.识别所述异构多核fork-join任务图中的中间任务节点;
39.基于所述中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对所述异构多核fork-join任务图进行处理器之间的通信限制的调度,获取所述异构多核fork-join任务图对应的调度结果。
40.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
41.获取待处理的异构多核fork-join任务图;
42.识别所述异构多核fork-join任务图中的中间任务节点;
43.基于所述中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对所述异构多核fork-join任务图进行处理器之间的通信限制的调度,获取所述异构多核fork-join任务图对应的调度结果。
44.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
45.获取待处理的异构多核fork-join任务图;
46.识别所述异构多核fork-join任务图中的中间任务节点;
47.基于所述中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对所述异构多核fork-join任务图进行处理器之间的通信限制的调度,获取所述异构多核
fork-join任务图对应的调度结果。
48.上述任务调度处理方法、装置、计算机设备、存储介质和计算机程序产品,其中方法通过获取待处理的异构多核fork-join任务图;识别异构多核fork-join任务图中的中间任务节点;基于中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对异构多核fork-join任务图进行处理器之间的通信限制的调度,获取异构多核fork-join任务图对应的调度结果。本技术通过在得到待处理的异构多核fork-join任务图后,通过满足通信限制的基于任务复制的fork-join最优化调度算法,利用基于复制的fork-join最优化调度结果来对fork-join任务图进行调度,并且在调度过程中加入处理器之间的通信限制,也就是一条通信信道不能同时被多个通信事件占用,从而能够在异构多核的任务重保证异构处理器之间通信调度处理过程的性能。
附图说明
49.图1为一个实施例中任务调度处理方法的应用环境图;
50.图2为一个实施例中任务调度处理方法的流程示意图;
51.图3为一个实施例中图2中步骤205的子流程示意图;
52.图4为一个实施例中得到异构多核fork-join任务图对应的调度结果步骤的流程示意图;
53.图5为一个实施例中任务调度处理方法的调度实例的示意图;
54.图6为一个实施例中任务调度处理装置的结构框图;
55.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
56.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
57.本技术实施例提供的任务调度处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104在任务调度处理过程中所需要的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以向服务器104发送待处理的异构多核fork-join任务图,以通过服务器104来进行fork-join任务图的调度处理。服务器104获取待处理的异构多核fork-join任务图;识别异构多核fork-join任务图中的中间任务节点;基于中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对异构多核fork-join任务图进行处理器之间的通信限制的调度,获取异构多核fork-join任务图对应的调度结果。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
58.在一个实施例中,如图2所示,提供了一种任务调度处理方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
join最优化调度结果算法对异构多核fork-join任务图进行处理器之间的通信限制的调度,获取异构多核fork-join任务图对应的调度结果。本技术通过在得到待处理的异构多核fork-join任务图后,通过满足通信限制的基于任务复制的fork-join最优化调度算法,利用基于复制的fork-join最优化调度结果来对fork-join任务图进行调度,并且在调度过程中加入处理器之间的通信限制,也就是一条通信信道不能同时被多个通信事件占用,从而能够在异构多核的任务重保证异构处理器之间通信调度处理过程的性能。
67.在一个实施例中,如图3所示,步骤205包括:
68.步骤302,获取中间任务节点的执行开销以及通信开销。
69.步骤304,基于执行开销以及通信开销,获取异构多核fork-join任务图对应的算法拐点以及各中间任务节点对应的最大完成时间,基于执行开销以及通信开销对中间任务节点进行排序,得到节点排序结果。
70.步骤306,根据中间任务节点的执行开销以及通信开销、算法拐点以及最大完成时间,以及将节点排序结果中的各节点依次分配至各异构处理器,获取异构多核fork-join任务图对应的调度结果。
71.其中,在本技术的方案中,执行开销指的是中间任务节点执行代码所需要的时间。而通信开销指的则是从一个中间任务节点执行完成后到另一个中间任务节点开始执行所需要的事件。算法拐点则指的是基于任务复制的fork-join最优化调度结果算法用于分界点的中间任务节点,具体地,在本技术的方案中,算法拐点前的中间任务节点以及算法拐点对应的中间任务节点会被预先分配至初始的处理器,而算法拐点后的中间任务节点则分别分配至各异构处理器。最大完成时间则指的是完成任务可能需要的最大时间,任务ni(1<i<k)最大完成时间f
t
具体可以用以下公式计算:
[0072][0073]
其中j表示算法拐点,w(ni)表示的是任务ni所需要的执行开销,c(n
j 1
,nk)表示的是任务n
j 1
到任务nk所需要的通信开销。各异构处理器则指的是本技术的任务调度处理方法中,完成各个任务节点所用到的处理器。
[0074]
具体地,在通过本技术中基于任务复制的fork-join最优化调度结果算法来对异构多核fork-join任务图进行处理器之间的通信限制的调度时,首先需要先获取到任务各个节点所对应的执行开销以及通信开销,而后基于这些来找出算法拐点,从而将算法拐点对应的节点分配至初始的异构处理器,同时还要获取到各中间任务节点对应的最大完成时间,最终根据各个中间任务节点的执行开销以及通信开销以及最大完成时间,将算法拐点后的各个节点根据节点排序结果依次分配至各异构处理器,完成任务调度处理的完整流程。其中,基于执行开销以及通信开销对中间任务节点进行排序,得到节点排序结果具体可以参照以下公式来进行计算:
[0075]
[w(n2) c(n2,nk)]≥[w(n3) c(n3,nk)]≥

≥[w(n
k-1
) c(n
k-1
,nk)]
[0076]
其中,w(ni)表示节点ni的执行开销,c(ni,nk)表示节点ni到最终的exit节点nk的通信开销。本实施例中,依据中间任务节点的执行开销以及通信开销来获取算法节点以及最大完成时间,从而将各节点依次分配至各异构处理器,保证任务调度处理的效果。
[0077]
在其中一个实施例中,步骤304包括:基于执行开销以及通信开销以及预设第一不
等式,获取异构多核fork-join任务图对应的算法拐点;基于执行开销以及通信开销以及算法拐点,确定各中间任务节点对应的最大完成时间。
[0078]
其中,预设第一不等式具体为:
[0079][0080]

[0081][0082]
其中,c(nj,n
k-1
)表示从nj到exit节点前一个节点的时间开销,通过上述的公式,可以有效地从众多的中间任务节点中识别出算法拐点,从而通过公式:
[0083][0084]
来识别出中间任务节点对应的最大完成时间。本实施例中,通过执行开销以及通信开销以及预设第一不等式,获取异构多核fork-join任务图对应的算法拐点,从而可以高效的识别出中间任务节点对应的最大完成时间。
[0085]
在其中一个实施例中,根据中间任务节点的执行开销以及通信开销、算法拐点以及最大完成时间,以及将节点排序结果中的各节点依次分配至各异构处理器,获取异构多核fork-join任务图对应的调度结果包括:
[0086]
将节点排序结果中的第一节点分配至初始异构处理器,并获取初始处理器对应的第一任务执行时间,第一节点包括节点排序结果中的算法拐点以及算法拐点前的中间任务节点;
[0087]
将节点排序结果中的第二节点分配至第二异构处理器,并获取第二处理器对应的第二任务执行时间以及第二通信完成时间,第二节点为节点排序结果中算法拐点后的第一个节点;
[0088]
根据第一任务执行时间、第二任务执行时间以及第二通信完成时间,将节点排序结果中第二节点后续的各节点依次分配至各异构处理器;
[0089]
当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0090]
而根据第一任务执行时间、第二任务执行时间以及第二通信完成时间,依次将节点排序结果中第二节点后续的各节点依次分配至各异构处理器包括:将第一任务执行时间、第二任务执行时间以及第二通信完成时间作为现有处理器对应的处理器数据;依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件;当第一个后续节点满足现有处理器对应的任务插入条件时,将第一个后续节点分配至对应的现有处理器,并更新现有处理器对应的处理器数据;当第一个后续节点不满足现有处理器的任务插入条件时,获取现有处理器对应的第一个后续处理器,将后续节点分配至第一个后续处理器,并更新现有处理器对应的处理器数据;当第二节点对应的第一个后续节点分配完成后,将分配完成的第一个后续节点作为第二节点,返回
依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件的步骤;当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0091]
其中,第一节点包括节点排序结果中的算法拐点以及算法拐点前的中间任务节点。第二节点则是算法拐点后的第一个节点。
[0092]
具体地,在执行本技术的基于任务复制的fork-join最优化调度结果算法时,首先需要将算法拐点以及算法拐点前的中间任务节点分配至初始异构处理器,在算法拐点分配完成后,则需要按照节点排序结果一次分配后续的其他中间任务节点至各个异构处理器。每次在分配完成后,都可以将分配的结果作为现有处理器对应的处理器数据,从而进行后续的中间任务节点分配。在分配后续的中间任务节点时,依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断第二节点对应的后续节点是否满足现有处理器对应的任务插入条件,其中预设第二不等式具体为:
[0093][0094]
其中,x表示异构处理器,x=0为编号为0的处理器,初始异构处理器,x>0则表示初始异构处理器后的各个处理器,如x=1为1号处理器,即第二异构处理器。tct[x]表示的是编号为x的处理器处理上任务完成的最迟时间。cct[x]表示的是编号为x的处理器与0号处理器之间的通信信道。这是为了保证在x号处理器上的任务完成时间不会推迟join节点的开始时间,因为0号处理上的任务与join节点在同一个处理上所以就不用考虑通信时间,对于其它处理器上的任务就必须同时满足通信时间cct[x]的限制。因此,当后续节点满足现有处理器对应的任务插入条件时,将后续节点分配至对应的现有处理器,并更新现有处理器对应的处理器数据;而当后续节点不满足现有处理器的任务插入条件时,获取现有处理器对应的后续处理器,将后续节点分配至后续处理器,并更新现有处理器对应的处理器数据。如此重复,直到将节点排序结果中的所有中间任务节点分配完成,即可获取最终的异构多核fork-join任务图对应的调度结果。本实施例中,通过任务插入条件来对中间任务节点的分配情况进行分析,从而可以在满足通信限制的情况下,将各个中间任务节点分配到各个异构处理器中上,同时在调度时力求减少需要的异构处理器数目,尽量调度任务到已占用的异构处理器上,在保证性能的同时减少处理器的消耗量。
[0095]
在其中一个实施例中,如图4所示,当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果包括:
[0096]
步骤401,当中间任务节点分配完成时,获取中间任务节点对应的任务分配列表。
[0097]
步骤403,获取待处理的异构多核fork-join任务图对应的初始任务节点以及终止任务节点。
[0098]
步骤405,将初始任务节点插入至任务分配列表中各个现有处理器的任务列表首部,将终止任务节点插入至任务分配列表中初始异构处理器的任务列表尾部,得到异构多核fork-join任务图对应的调度结果。
[0099]
其中,初始任务节点以及终止任务节点指的是异构多核fork-join任务图中最开
始的任务节点以及最后的任务节点。
[0100]
具体地,当中间任务节点全部分配完成后,即可分配初始任务节点以及终止任务节点到任务分配列表中,其中初始任务节点会被分配至任务分配列表中所有被分配了任务的异构处理器的起点位置,而终止任务节点则可以直接插入到任务分配列表中初始异构处理器的任务列表尾部,通过分配初始任务节点以及终止任务节点,可以有效地将异构多核fork-join任务图中的所有任务节点都分配至任务分配列表中,从而得到异构多核fork-join任务图对应的调度结果。
[0101]
在其中一个实施例中,本技术的任务调度处理方法的调度实例具体可以参照图5所示,上图例子的调度结果,图中n1/n2/n3/n4/n5部分表示任务对处理器时间片的占用,斜线阴影表示任务间数据通信对通信信道的占用。在通过基于任务复制的fork-join最优化调度结果算法对中间任务节点按照执行时间与开始时间之和从大到小排序后序列是{n3,n4,n2,n5}。计算得到拐点j为2,最大完成时间ft=18。首先分配n3到p0,设定tct[0]为12。n4分配到p1tct[1]=11,cct[1]=18。接着分配n2:在p0处理器上w(n2) tct[0]=22》ft选取下一个处理器p1但w(n2) tct[1] c(n2,n6)=27》ft,所以分配一个新处理器p2,设定tct[2]=10,cct[2]=21。选取n5tct[0] w(n5)=17《ft满足限制条件,分配n5到p0,完成中间节点调度。插入n0到每个处理上任务列表首部,nk加入p0任务列表尾部,完成所有任务调度。最终任务调度长度为27。
[0102]
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0103]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的任务调度处理方法的任务调度处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个任务调度处理装置实施例中的具体限定可以参见上文中对于任务调度处理方法的限定,在此不再赘述。
[0104]
在一个实施例中,如图6所示,提供了一种任务调度处理装置,包括:
[0105]
任务图获取模块601,用于任务图获取模块,用于获取待处理的异构多核fork-join任务图。
[0106]
节点识别模块603,用于识别异构多核fork-join任务图中的中间任务节点。
[0107]
任务调度模块605,用于基于中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对异构多核fork-join任务图进行处理器之间的通信限制的调度,获取异构多核fork-join任务图对应的调度结果。
[0108]
在其中一个实施例中,任务调度模块605具体用于:获取中间任务节点的执行开销以及通信开销;基于执行开销以及通信开销,获取异构多核fork-join任务图对应的算法拐点以及各中间任务节点对应的最大完成时间,基于执行开销以及通信开销对中间任务节点进行排序,得到节点排序结果;根据中间任务节点的执行开销以及通信开销、算法拐点以及
最大完成时间,以及将节点排序结果中的各节点依次分配至各异构处理器,获取异构多核fork-join任务图对应的调度结果。
[0109]
在其中一个实施例中,任务调度模块605具体用于:基于执行开销以及通信开销以及预设第一不等式,获取异构多核fork-join任务图对应的算法拐点;基于执行开销以及通信开销以及算法拐点,确定各中间任务节点对应的最大完成时间。
[0110]
在其中一个实施例中,任务调度模块605具体用于:将节点排序结果中的第一节点分配至初始异构处理器,并获取初始处理器对应的第一任务执行时间,第一节点包括节点排序结果中的算法拐点以及算法拐点前的中间任务节点;将节点排序结果中的第二节点分配至第二异构处理器,并获取第二处理器对应的第二任务执行时间以及第二通信完成时间,第二节点为节点排序结果中算法拐点后的第一个节点;根据第一任务执行时间、第二任务执行时间以及第二通信完成时间,将节点排序结果中第二节点后续的各节点依次分配至各异构处理器;当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0111]
在其中一个实施例中,任务调度模块605具体用于:将第一任务执行时间、第二任务执行时间以及第二通信完成时间作为现有处理器对应的处理器数据;依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件;当第一个后续节点满足现有处理器对应的任务插入条件时,将第一个后续节点分配至对应的现有处理器,并更新现有处理器对应的处理器数据;当第一个后续节点不满足现有处理器的任务插入条件时,获取现有处理器对应的第一个后续处理器,将后续节点分配至第一个后续处理器,并更新现有处理器对应的处理器数据;当第二节点对应的第一个后续节点分配完成后,将分配完成的第一个后续节点作为第二节点,返回执行依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件的步骤;当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0112]
在其中一个实施例中,任务调度模块605具体用于:当中间任务节点分配完成时,获取中间任务节点对应的任务分配列表;获取待处理的异构多核fork-join任务图对应的初始任务节点以及终止任务节点;将初始任务节点插入至任务分配列表中各个现有处理器的任务列表首部,将终止任务节点插入至任务分配列表中初始异构处理器的任务列表尾部,得到异构多核fork-join任务图对应的调度结果。
[0113]
上述任务调度处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0114]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备
的数据库用于存储视频分析数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种任务调度处理方法。
[0115]
本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0116]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0117]
获取待处理的异构多核fork-join任务图;
[0118]
识别异构多核fork-join任务图中的中间任务节点;
[0119]
基于中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对异构多核fork-join任务图进行处理器之间的通信限制的调度,获取异构多核fork-join任务图对应的调度结果。
[0120]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取中间任务节点的执行开销以及通信开销;基于执行开销以及通信开销,获取异构多核fork-join任务图对应的算法拐点以及各中间任务节点对应的最大完成时间,基于执行开销以及通信开销对中间任务节点进行排序,得到节点排序结果;根据中间任务节点的执行开销以及通信开销、算法拐点以及最大完成时间,以及将节点排序结果中的各节点依次分配至各异构处理器,获取异构多核fork-join任务图对应的调度结果。
[0121]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于执行开销以及通信开销以及预设第一不等式,获取异构多核fork-join任务图对应的算法拐点;基于执行开销以及通信开销以及算法拐点,确定各中间任务节点对应的最大完成时间。
[0122]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将节点排序结果中的第一节点分配至初始异构处理器,并获取初始处理器对应的第一任务执行时间,第一节点包括节点排序结果中的算法拐点以及算法拐点前的中间任务节点;将节点排序结果中的第二节点分配至第二异构处理器,并获取第二处理器对应的第二任务执行时间以及第二通信完成时间,第二节点为节点排序结果中算法拐点后的第一个节点;根据第一任务执行时间、第二任务执行时间以及第二通信完成时间,将节点排序结果中第二节点后续的各节点依次分配至各异构处理器;当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0123]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将第一任务执行时间、第二任务执行时间以及第二通信完成时间作为现有处理器对应的处理器数据;依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件;当第一个后续节点满足现有处理器对应的任务插入条件时,将第一个后续节点分配至对应的现有处理器,并更新现有处理器对应的处理器数据;当第一个后续节点不满足现有处理器的任务插入条件时,获取现有处理器对应的第一个后续处理器,将后续节点分配至第一个后续处理器,并更新现有处理器对应的处理器数据;当第二节点对应的第一个后续节点分配完成后,将分配完成的第一个后续节点作为第二节点,返回依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时
间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件的步骤;当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0124]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当中间任务节点分配完成时,获取中间任务节点对应的任务分配列表;获取待处理的异构多核fork-join任务图对应的初始任务节点以及终止任务节点;将初始任务节点插入至任务分配列表中各个现有处理器的任务列表首部,将终止任务节点插入至任务分配列表中初始异构处理器的任务列表尾部,得到异构多核fork-join任务图对应的调度结果。
[0125]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0126]
获取待处理的异构多核fork-join任务图;
[0127]
识别异构多核fork-join任务图中的中间任务节点;
[0128]
基于中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对异构多核fork-join任务图进行处理器之间的通信限制的调度,获取异构多核fork-join任务图对应的调度结果。
[0129]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取中间任务节点的执行开销以及通信开销;基于执行开销以及通信开销,获取异构多核fork-join任务图对应的算法拐点以及各中间任务节点对应的最大完成时间,基于执行开销以及通信开销对中间任务节点进行排序,得到节点排序结果;根据中间任务节点的执行开销以及通信开销、算法拐点以及最大完成时间,以及将节点排序结果中的各节点依次分配至各异构处理器,获取异构多核fork-join任务图对应的调度结果。
[0130]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于执行开销以及通信开销以及预设第一不等式,获取异构多核fork-join任务图对应的算法拐点;基于执行开销以及通信开销以及算法拐点,确定各中间任务节点对应的最大完成时间。
[0131]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将节点排序结果中的第一节点分配至初始异构处理器,并获取初始处理器对应的第一任务执行时间,第一节点包括节点排序结果中的算法拐点以及算法拐点前的中间任务节点;将节点排序结果中的第二节点分配至第二异构处理器,并获取第二处理器对应的第二任务执行时间以及第二通信完成时间,第二节点为节点排序结果中算法拐点后的第一个节点;根据第一任务执行时间、第二任务执行时间以及第二通信完成时间,将节点排序结果中第二节点后续的各节点依次分配至各异构处理器;当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0132]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将第一任务执行时间、第二任务执行时间以及第二通信完成时间作为现有处理器对应的处理器数据;依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件;当第一个后续节点满足现有处理器对应的任务插入条件时,将第一个后续节点分配至对应的现有处理器,并更新现有处理器对应的处理器数据;当第一个后续节点不满足现有处理器的任务插入条件时,获取现有处理器对应的第一个后续处理
器,将后续节点分配至第一个后续处理器,并更新现有处理器对应的处理器数据;当第二节点对应的第一个后续节点分配完成后,将分配完成的第一个后续节点作为第二节点,返回依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件的步骤;当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0133]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当中间任务节点分配完成时,获取中间任务节点对应的任务分配列表;获取待处理的异构多核fork-join任务图对应的初始任务节点以及终止任务节点;将初始任务节点插入至任务分配列表中各个现有处理器的任务列表首部,将终止任务节点插入至任务分配列表中初始异构处理器的任务列表尾部,得到异构多核fork-join任务图对应的调度结果。
[0134]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0135]
获取待处理的异构多核fork-join任务图;
[0136]
识别异构多核fork-join任务图中的中间任务节点;
[0137]
基于中间任务节点,通过基于任务复制的fork-join最优化调度结果算法对异构多核fork-join任务图进行处理器之间的通信限制的调度,获取异构多核fork-join任务图对应的调度结果。
[0138]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取中间任务节点的执行开销以及通信开销;基于执行开销以及通信开销,获取异构多核fork-join任务图对应的算法拐点以及各中间任务节点对应的最大完成时间,基于执行开销以及通信开销对中间任务节点进行排序,得到节点排序结果;根据中间任务节点的执行开销以及通信开销、算法拐点以及最大完成时间,以及将节点排序结果中的各节点依次分配至各异构处理器,获取异构多核fork-join任务图对应的调度结果。
[0139]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于执行开销以及通信开销以及预设第一不等式,获取异构多核fork-join任务图对应的算法拐点;基于执行开销以及通信开销以及算法拐点,确定各中间任务节点对应的最大完成时间。
[0140]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将节点排序结果中的第一节点分配至初始异构处理器,并获取初始处理器对应的第一任务执行时间,第一节点包括节点排序结果中的算法拐点以及算法拐点前的中间任务节点;将节点排序结果中的第二节点分配至第二异构处理器,并获取第二处理器对应的第二任务执行时间以及第二通信完成时间,第二节点为节点排序结果中算法拐点后的第一个节点;根据第一任务执行时间、第二任务执行时间以及第二通信完成时间,将节点排序结果中第二节点后续的各节点依次分配至各异构处理器;当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0141]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将第一任务执行时间、第二任务执行时间以及第二通信完成时间作为现有处理器对应的处理器数据;依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处
理器对应的任务插入条件;当第一个后续节点满足现有处理器对应的任务插入条件时,将第一个后续节点分配至对应的现有处理器,并更新现有处理器对应的处理器数据;当第一个后续节点不满足现有处理器的任务插入条件时,获取现有处理器对应的第一个后续处理器,将后续节点分配至第一个后续处理器,并更新现有处理器对应的处理器数据;当第二节点对应的第一个后续节点分配完成后,将分配完成的第一个后续节点作为第二节点,返回依据现有处理器对应的处理器数据、中间任务节点的执行开销以及通信开销、最大完成时间以及预设第二不等式,判断节点排序结果中第二节点对应的第一个后续节点是否满足现有处理器对应的任务插入条件的步骤;当中间任务节点分配完成时,依据中间任务节点对应的分配结果得到异构多核fork-join任务图对应的调度结果。
[0142]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当中间任务节点分配完成时,获取中间任务节点对应的任务分配列表;获取待处理的异构多核fork-join任务图对应的初始任务节点以及终止任务节点;将初始任务节点插入至任务分配列表中各个现有处理器的任务列表首部,将终止任务节点插入至任务分配列表中初始异构处理器的任务列表尾部,得到异构多核fork-join任务图对应的调度结果。
[0143]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0144]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistiverandomaccessmemory,mram)、铁电存储器(ferroelectricrandomaccessmemory,fram)、相变存储器(phasechangememory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0145]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0146]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范
围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献