基于切边数优化的分区划分方法、装置和程序产品

文档序号:32440721发布日期:2022-12-06 21:35阅读:43来源:国知局
基于切边数优化的分区划分方法、装置和程序产品

1.本技术涉及数据处理技术领域,特别是涉及一种基于切边数优化的分区划分方法、装置、计算机设备、计算机存储介质和计算机程序产品。


背景技术:

2.随着大数据与人工智能的发展与流行,在处理大型任务时,常用的方法是将大型任务划分成多个小型任务进行调度,具体地,可以将大型任务抽象成有向无环图,通过对有向无环图中的任务节点进行多级划分,通过对多级划分后得到的多个小型任务进行调度,以得到任务调度结果。
3.然而,对大型任务进行多级划分关注的是划分后的不同分区之间的切边数,切边数越多,该大型任务整体执行的时间越长,任务调度效率也就不高。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高任务调度效率的基于切边数优化的分区划分方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供一种基于切边数优化的分区划分方法,所述方法包括:
6.获取处理目标任务的目标有向无环图;所述目标有向无环图包括多个分区;
7.按照所述目标有向无环图中的边界任务节点的节点顺序,计算得到对应的所述边界任务节点的各切边增益值;所述边界任务节点为与第一分区不同的分区中的任务节点之间具有依赖关系的任务节点,所述第一分区为所述边界任务节点在所述目标有向无环图中的分区,多个所述分区包括所述第一分区;
8.根据对应的所述边界任务节点的各切边增益值,更新对应的所述边界任务节点在所述目标有向无环图中的分区位置。
9.在其中一个实施例中,多个所述分区还包括多个第二分区,所述按照所述目标有向无环图中的边界任务节点的节点顺序,计算得到对应的所述边界任务节点的各切边增益值,包括:
10.按照所述目标有向无环图中的边界任务节点的节点顺序,根据对应的所述边界任务节点与多个所述第二分区中的任务节点的依赖关系,确定对应的所述边界任务节点的正向增益值;
11.在将对应的所述边界任务节点分别移动到各所述第二分区后,根据对应的所述边界任务节点与第三分区中的任务节点的依赖关系,确定对应的所述边界任务节点的各负向增益值;所述第三分区包括所述第一分区,以及与对应的所述边界任务节点移动的分区不同的分区;
12.将所述正向增益值分别与各所述负向增益值相减,得到对应的所述边界任务节点的各所述切边增益值。
13.在其中一个实施例中,所述根据对应的所述边界任务节点与多个所述第二分区中
的任务节点的依赖关系,确定对应的所述边界任务节点的正向增益值,包括:
14.将多个所述第二分区中与对应的所述边界任务节点具有依赖关系的任务节点的数目,确定为对应的所述边界任务节点的正向增益值。
15.在其中一个实施例中,所述在将对应的所述边界任务节点分别移动到各所述第二分区后,根据对应的所述边界任务节点与第三分区中的任务节点的依赖关系,确定对应的所述边界任务节点的各负向增益值,包括:
16.将所述第三分区中与对应的所述边界任务节点具有依赖关系的任务节点的数目,确定为对应的所述边界任务节点移动到各所述第二分区后对应的移动增益值;对应的所述边界任务节点移动到各所述第二分区后对应的移动增益值组成对应的所述边界任务节点的各负向增益值。
17.在其中一个实施例中,所述根据对应的所述边界任务节点的各切边增益值,更新对应的所述边界任务节点在所述目标有向无环图中的分区位置,包括:
18.根据对应的所述边界任务节点的各切边增益值,以及边界任务节点的切边增益值与所述切边增益值对应的分区的均衡增益值的对应关系,得到对应的所述边界任务节点的多个目标增益值;
19.在多个所述目标增益值中的最大目标增益值小于0时,保持对应的所述边界任务节点在所述初始分区中;
20.或者,在多个所述目标增益值中的最小目标增益值大于或等于0时,基于边界任务节点的目标增益值对应的负向增益值与所述负向增益值对应的分区的对应关系,确定多个所述目标增益值中的最大目标增益值对应的分区,并将对应的所述边界任务节点添加在最大目标增益值对应的分区,以及删除所述初始分区中的对应的所述边界任务节点;所述目标增益值中的最大目标增益值对应的分区为所述目标增益值中的最大目标增益值对应的负向增益值对应的分区。
21.在其中一个实施例中,所述获取处理目标任务的目标有向无环图,包括:
22.按照预设分区条件处理所述目标任务的有向无环图,得到所述分区有向无环图;所述预设分区条件包括:分区的数量为预设数量、所述分区中的任务节点的权重在第一预设范围内、以及所述分区中的任务节点的数量在第二预设范围内;
23.基于预设划分方法处理所述分区有向无环图,得到所述目标有向无环图。
24.第二方面,本技术提供一种基于切边数优化的分区划分装置,所述装置包括:
25.获取模块,用于获取处理目标任务的目标有向无环图;所述目标有向无环图包括多个分区;
26.计算模块,用于按照所述目标有向无环图中的边界任务节点的节点顺序,计算得到对应的所述边界任务节点的各切边增益值;所述边界任务节点为与第一分区不同的分区中的任务节点之间具有依赖关系的任务节点,所述第一分区为所述边界任务节点在所述目标有向无环图中的分区,多个所述分区包括所述第一分区;
27.更新模块,用于根据对应的所述边界任务节点的各切边增益值,更新对应的所述边界任务节点在所述目标有向无环图中的分区位置。
28.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
29.获取处理目标任务的目标有向无环图;所述目标有向无环图包括多个分区;
30.按照所述目标有向无环图中的边界任务节点的节点顺序,计算得到对应的所述边界任务节点的各切边增益值;所述边界任务节点为与第一分区不同的分区中的任务节点之间具有依赖关系的任务节点,所述第一分区为所述边界任务节点在所述目标有向无环图中的分区,多个所述分区包括所述第一分区;
31.根据对应的所述边界任务节点的各切边增益值,更新对应的所述边界任务节点在所述目标有向无环图中的分区位置。
32.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
33.获取处理目标任务的目标有向无环图;所述目标有向无环图包括多个分区;
34.按照所述目标有向无环图中的边界任务节点的节点顺序,计算得到对应的所述边界任务节点的各切边增益值;所述边界任务节点为与第一分区不同的分区中的任务节点之间具有依赖关系的任务节点,所述第一分区为所述边界任务节点在所述目标有向无环图中的分区,多个所述分区包括所述第一分区;
35.根据对应的所述边界任务节点的各切边增益值,更新对应的所述边界任务节点在所述目标有向无环图中的分区位置。
36.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
37.获取处理目标任务的目标有向无环图;所述目标有向无环图包括多个分区;
38.按照所述目标有向无环图中的边界任务节点的节点顺序,计算得到对应的所述边界任务节点的各切边增益值;所述边界任务节点为与第一分区不同的分区中的任务节点之间具有依赖关系的任务节点,所述第一分区为所述边界任务节点在所述目标有向无环图中的分区,多个所述分区包括所述第一分区;
39.根据对应的所述边界任务节点的各切边增益值,更新对应的所述边界任务节点在所述目标有向无环图中的分区位置。
40.上述基于切边数优化的分区划分方法、装置、计算机设备、存储介质和计算机程序产品,通过获取处理目标任务的目标有向无环图,并按照目标有向无环图中的边界任务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值,进而可以根据对应的边界任务节点的各切边增益值,更新对应的边界任务节点在目标有向无环图中的分区位置,这样,通过更新边界任务节点的分区位置,使得可以减少分区之间的切边数,从而降低整体任务执行时间,进而可以提高任务调度效率。
附图说明
41.图1为一个实施例中基于切边数优化的分区划分方法的应用环境图;
42.图2为一个实施例中基于切边数优化的分区划分方法的流程示意图;
43.图3为一个实施例中目标有向无环图的示意图;
44.图4为一个实施例中按照目标有向无环图中的任务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值的流程示意图;
45.图5为一个实施例中根据对应的边界任务节点的各切边增益值,更新对应的边界
任务节点在目标有向无环图中的分区位置的流程示意图;
46.图6为一个实施例中任务调度方法的示意图;
47.图7为另一个实施例中细化过程的示意图;
48.图8为一个实施例中目标有向无环图分区优化后的示意图;
49.图9为一个实施例中基于切边数优化的分区划分装置的结构框图;
50.图10为一个实施例中计算机设备的内部结构图。
具体实施方式
51.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
52.随着大数据与人工智能的发展与流行,目前的计算机性能难以满足算力的需求,因此,并行计算成为了目前的一大流行解决方案,而大型的计算任务调度问题也随之出现。
53.通常地,在处理大型任务时,常用的方法是将大型任务划分成多个小型任务进行调度,具体地,可以将大型任务抽象成有向无环图,通过对有向无环图中的任务节点进行多级划分,通过对多级划分后得到的多个小型任务进行调度,以得到任务调度结果。
54.其中,可以采用传统的多级划分方法处理大型任务,多级划分方法主要可以分为三个阶段:粗化阶段、初始划分阶段以及细化阶段;在粗化阶段,将有向无环图中多个依赖关系较强的任务节点聚合在一起,多次重复这一步骤之后,可以使得有向无环图的大小达到特定值,形成初始有向无环图;在初始划分阶段,对初始有向无环图进行划分;在细化阶段,逐层进行细化,把划分后的初始有向无环图映射为下一个较细图的划分,并且应用细化方法进一步对划分结果进行一步优化,然而,多级划分方法大多是基于一些简单的贪心思想,不能从全局的角度进行划分,不能很好地反应计算有向无环图的聚类特点以及依赖关系。因此,直接采用传统的多级划分方法,没有考虑到有向无环图的边被切分后所带来的额外的通信时延,因此不能够满足实时应用的要求。
55.而且,在对大型任务进行多级划分时,划分目标有优化关键路径,保持负载均衡等,关键路径是指在有向图中从入口节点到出口节点的最长路径,关键路径越长,有向图中的任务节点之间的通信所需时间可能也越长,导致任务整体执行时间也就越长,会使得任务调度效率不高;而且,在对大型任务进行划分得到分区后,不同分区之间的切边数越多,也即不同分区中的任务节点的切边数越多,任务节点之间的通信所需时间可能也越长,也会导致任务调度效率不高。
56.有鉴于此,本技术提供一种基于切边数优化的分区划分方法,本技术实施例提供的基于切边数优化的分区划分方法,可以应用于如图1所示的应用环境中,其中,终端102通过网络与服务器104进行通信,数据存储系统可以存储服务器104需要处理的数据,数据存储系统可以集成在服务器104上;其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑;服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
57.具体地,在终端102获取目标任务后,终端102可以将目标任务发送给服务器104,服务器104通过获取处理目标任务的目标有向无环图,并按照目标有向无环图中的边界任
务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值,从而根据对应的边界任务节点的各切边增益值,更新对应的边界任务节点在目标有向无环图中的分区位置;其中,边界任务节点为与初始分区不同的分区中的任务节点之间具有依赖关系的任务节点,初始分区为边界任务节点在目标有向无环图中的分区。
58.在一个实施例中,如图2所示,提供了一种基于切边数优化的分区划分方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
59.s202,获取处理目标任务的目标有向无环图。
60.在本实施例中,目标有向无环图包括多个分区,多个分区之间存在切边数,具体地,多个分区的节点之间具有依赖关系,任务节点之间的依赖关系即为该任务节点对应的切边数。
61.具体地,获取处理目标任务的目标有向无环图,包括:
62.s1,按照预设分区条件处理目标任务的有向无环图,得到分区有向无环图。
63.其中,预设分区条件包括:分区的数量为预设数量、分区中的任务节点的权重在第一预设范围内、以及分区中的任务节点的数量在第二预设范围内;任务节点的权重用于指示该任务节点对应的任务的执行时间。
64.可以理解的是,分区有向无环图中的各个分区中节点数量的总和等于目标任务的有向无环图中的节点数量的总和。
65.s2,基于预设划分方法处理分区有向无环图,得到目标有向无环图。
66.其中,由于从大型计算任务抽象而来的有向图不会在内部出现闭合环路,不需要保证分区间无环,因此,在对分区有向无环图进行处理时,可以采用可得到切边数更少的预设划分方法,该预设划分方法可以为kway算法或其他划分算法,本实施例不作具体限定。
67.s204,按照目标有向无环图中的边界任务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值。
68.在本实施例中,目标有向无环图中包括多个任务节点,若任务节点与其他分区的任务节点具有依赖关系,则该任务节点是所在分区的边界任务节点,若任务节点与其他分区的任务节点不具有依赖关系,则该任务节点不是所在分区的边界任务节点;其中,若任务节点是边界任务节点,该任务节点在目标有向无环图中的分区可以称为第一分区,多个分区包括该第一分区。
69.示例性的,如图3所示,提供了一种目标有向无环图的示意图,其中,相同分区中的任务节点之间的连线表示任务节点之间具有依赖关系,不同分区中的任务节点之间的连线也表示不同分区的任务节点之间具有依赖关系,具体地,目标有向无环图中包括3个分区,分别为分区1、分区2以及分区3;分区1中包括任务节点1、任务节点2、任务节点4以及任务节点7,分区2中包括任务节点5、任务节点8以及任务节点10,分区3中包括任务节点3、任务节点6以及任务节点9。
70.其中,在分区1中,任务节点1分别与任务节点2以及任务节点4具有依赖关系,但任务节点1与分区2和分区3中的任何一个任务节点都不具有依赖关系,因此,任务节点1不是分区1中的边界任务节点;任务节点2分别与分区3中的任务节点3以及任务节点8具有依赖关系,因此,任务节点2是分区1中的边界任务节点;任务节点4分别与任务节点7具有依赖关系,也与分区2中的任务节点8具有依赖关系,因此,任务节点4是分区1中的边界任务节点;
任务节点7与分区2中的任务节点8以及分区3中的任务节点6具有依赖关系,因此,任务节点7是分区1中的边界任务节点;总的来说,分区1中的边界任务节点为任务节点2、任务节点4以及任务节点7。
71.其中,在分区2中,任务节点5分别与任务节点8以及任务节点10具有依赖关系,还与分区3中的任务节点6具有依赖关系,因此,任务节点5是分区2中的边界任务节点;任务节点8与任务节点10具有依赖关系,任务节点8还与分区1中的任务节点2、任务节点4以及任务节点7具有依赖关系,因此,任务节点8是分区2中的边界任务节点;任务节点10与任务节点5以及任务节点8具有依赖关系,但任务节点10与分区1和分区3中的任何一个任务节点都不具有依赖关系,因此,任务节点10不是分区2中的边界任务节点;总的来说,分区2中的边界任务节点为任务节点5以及任务节点8。
72.其中,在分区3中,任务节点3与任务节点6具有依赖关系,还与分区1中的任务节点2以及任务节点4具有依赖关系,因此,任务节点3是分区3中的边界任务节点;任务节点6与任务节点3具有依赖关系,还与分区1中的任务节点7以及分区2中的任务节点5具有依赖关系,因此,任务节点6是分区3中的边界任务节点;总的来说,分区3中的边界任务节点为任务节点3以及任务节点6。
73.进一步地,通过按照各边界任务对应的节点顺序,可以依次计算得到各边界任务节点对应的各切边增益值,该切边增益值可以反映各边界任务节点在目标有向无环图中的分区与其他分区的切边数的关系,因此,基于切边增益值更新边界任务节点在分区的位置,可以有效降低不同分区之间的切边数,从而可以降低整体任务执行时间,以提高任务调度效率。
74.s206,根据对应的边界任务节点的各切边增益值,更新对应的边界任务节点在目标有向无环图中的分区位置。
75.在本实施例中,在获得目标有向无环图时,目标有向无环图中的节点所在的分区是确定的,由于边界任务节点对应的各切边增益值反映了该边界任务节点所在的分区与其他分区的切边数的关系,因此,基于切边增益值更新边界任务节点在分区的位置,可以有效降低不同分区之间的切边数,从而可以降低整体任务执行时间,以提高任务调度效率。
76.综上,在图2所示的实施例中,通过获取处理目标任务的目标有向无环图,并按照目标有向无环图中的边界任务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值,进而可以根据对应的边界任务节点的各切边增益值,更新对应的边界任务节点在目标有向无环图中的分区位置,这样,通过更新边界任务节点的分区位置,使得可以减少分区之间的切边数,从而降低整体任务执行时间,进而可以提高任务调度效率。
77.在图2所示的实施例的基础上,在其中一个实施例中,多个分区包括第一分区和多个第二分区,如图4所示,提供了一种按照目标有向无环图中的任务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值的流程示意图,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
78.s402,按照目标有向无环图中的边界任务节点的节点顺序,根据对应的边界任务节点与多个第二分区中的任务节点的依赖关系,确定对应的边界任务节点的正向增益值。
79.具体地,根据对应的边界任务节点与多个第二分区中的任务节点的依赖关系,确定对应的边界任务节点的正向增益值,包括:将多个第二分区中与对应的边界任务节点具
有依赖关系的任务节点的数目,确定为对应的边界任务节点的正向增益值。
80.例如,结合图3,以对应的边界任务节点为分区3中的任务节点3为例,任务节点3与分区1的任务节点2和任务节点4之间有连线,因此,任务节点3的正向增益值为2。
81.s404,在将对应的边界任务节点分别移动到各第二分区后,根据对应的边界任务节点与第三分区中的任务节点的依赖关系,确定对应的边界任务节点的各负向增益值。
82.在本实施例中,第三分区包括第一分区,以及与对应的边界任务节点移动的分区不同的分区,具体地,在将对应的边界任务节点分别移动到各第二分区后,根据对应的边界任务节点与第三分区中的任务节点的依赖关系,确定对应的边界任务节点的各负向增益值,包括:将第三分区中与对应的边界任务节点具有依赖关系的任务节点的数目,确定为对应的边界任务节点移动到各第二分区后对应的增益值;对应的边界任务节点移动到各第二分区后对应的增益值组成对应的边界任务节点的各负向增益值。
83.例如,结合图3,以对应的边界任务节点为分区3中的任务节点3为例,分区3即为第一分区,各第二分区为分区1以及分区2,若将任务节点3移动到分区1,则第三分区为分区2以及分区3,分区1中的任务节点3与分区2中的任一个任务节点之间无连线,分区1中的任务节点3与分区3中的任务节点6之间有连线,因此,任务节点3移动到分区1后对应的移动增益值为1;若将任务节点3移动到分区2,则第三分区为分区1以及分区3,分区2中的任务节点3与分区1中的任务节点2以及任务节点4之间有连线,分区2中的任务节点3与分区3中的任务节点6之间有连线,因此,任务节点3移动到分区2后对应的移动增益值为3,即任务节点3的各负向增益值为(1,3)。
84.s406,将正向增益值分别与各负向增益值相减,得到对应的边界任务节点的各切边增益值。
85.例如,结合图3,以对应的边界任务节点为任务节点3为例,任务节点3的正向增益值为2,任务节点3的各负向增益值分别为(1,3),则任务节点3的切边增益值为(1,-1)。
86.综上,在图4所示的实施例中,通过考虑对应的边界任务节点与不同分区的任务节点之间的依赖关系,以及考虑对应的边界任务节点移动到其他分区后,与边界任务节点所移动分区的不同分区中的任务节点之间的依赖关系,使得基于正向增益值和各负向增益值得到的各切边增益值,这样,基于对应的边界任务节点的各切边增益值,更新对应的边界任务节点的分区位置时,可以降低大规模有向图划分的过程中的不同分区之间的切边数,从而降低任务整体执行时间,从而可以提高任务调度效率。
87.在图2所示的实施例的基础上,在其中一个实施例中,如图5所示,提供了一种根据对应的边界任务节点的各切边增益值,更新对应的边界任务节点在目标有向无环图中的分区位置的流程示意图,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
88.s502,根据对应的边界任务节点的各切边增益值,以及边界任务节点的切边增益值与切边增益值对应的分区的均衡增益值的对应关系,得到对应的边界任务节点的多个目标增益值。
89.具体地,可以基于边界任务节点的切边增益值与切边增益值对应的分区的均衡增益值的对应关系,分别确定与对应的边界任务节点的各切边增益值相对应的均衡增益值,并将各切边增益值分别与相对应的均衡增益值进行求和运算,则可以得到对应的边界任务节点的多个目标增益值。
90.s504,在多个目标增益值中的最大目标增益值小于0时,保持对应的边界任务节点在初始分区中。
91.在本实施例中,边界任务节点在目标有向无环图中的分区为初始分区,在多个目标增益值中的最大目标增益值小于0时,保持对应的边界任务节点在初始分区中,也就是说,不改变边界任务节点在目标有向无环图中的分区位置,使边界任务节点依然划分在初始分区中。
92.s506,在多个目标增益值中的最小目标增益值大于或等于0时,基于边界任务节点的目标增益值对应的负向增益值与负向增益值对应的分区的对应关系,确定多个目标增益值中的最大目标增益值对应的分区,并将对应的边界任务节点添加在最大目标增益值对应的分区,以及删除初始分区中的对应的边界任务节点。
93.在本实施例中,目标增益值中的最大目标增益值对应的分区为目标增益值中的最大目标增益值对应的负向增益值对应的分区,具体地,边界任务节点的目标增益值对应的负向增益值与负向增益值对应的分区的对应关系,可以在得到边界任务节点的移动增益值时进行确定,例如,在移动边界任务节点到与初始分区不同的其他分区后,在基于移动分区后的边界任务节点与移动分区不同的分区中的任务节点的依赖关系,得到边界任务节点移动分区后对应的移动增益值时,可以将该边界任务节点移动分区后对应的移动增益值与该边界任务节点所移动的分区之间建立对应关系,并将该对应关系确定边界任务节点的目标增益值对应的负向增益值与负向增益值对应的分区的对应关系。
94.例如,结合图3,在任务节点3的各负向增益值分别为(1,3)时,负向增益值为1是将边界任务节点3移动到分区1后得到的,负向增益值为3是将边界任务节点3移动到分区2后得到的,则,边界任务节点3来说,可以建立负向增益值为1与分区1的对应关系,以及负向增益值为-1与分区2的对应关系;在分区1的均衡增益值为0.5,以及分区2的均衡增益值为1时,边界任务节点3的各目标增益值分别为(1.5,4),则可以将任务节点3移动到目标增益值为4对应的分区,目标增益值为4是根据负向增益值为3以及分区2的均衡增益值得到的,因此,目标增益值为4对应的分区即为负向增益值为3对应的分区,该分区即为分区2,因此,将任务节点3移动到分区2。
95.可以理解的是,目标有向无环图中的分区对应的均衡增益值的具体值,可以根据实际应用场景设定,本实施例不作限定。
96.在图5所示的实施例中,可以理解的是,在最大目标切边增益值小于0时,通过设置分区对应的均衡增益值来考虑移动该边界任务节点后对分区平衡度的影响,如果移动该边界任务节点后能极大程度改进分区平衡性,则可以牺牲部分切边数。
97.结合上述内容,示例性的,图6提供了一种任务调度方法的示意图,其中,将目标任务抽象为有向无环图后,基于预设分区条件对目标任务抽象后的有向无环图进行处理得到分区有向无环图的过程即为粗化过程,预设分区条件包括设置分区数量以及设置分区平衡约束,设置平衡约束中包括设置分区中的任务节点的权重在第一预设范围内以及设置分区中的任务节点的数量在第二预设范围内,基于预设划分方法处理分区有向无环图而得到目标有向无环图的过程为初始划分过程,基于切边数优化的分区划分方法对目标有向无环图的分区之间的切边数进行优化的过程为细化过程,进而,基于任务调度方法对优化后的分区中的任务节点执行任务调度过程,可以得到对应的任务调度结果;其中,粗化过程、初始
划分过程以及细化过程即为目标任务的有向无环图的多级划分过程。
98.其中,图6所示的细化过程可以描述为如图7所示的示意图,具体地,将初始划分过程后的划分结果作为细化过程的初始分区结果,从初始分区结果的分区中的任务节点中确定边界任务节点集合,判断边界任务节点集合是否为空,在边界任务节点集合不为空时,计算对应的边界任务节点的正向增益值和各负向增益值,并计算对应的边界任务节点的目标增益值,进而判断是否满足移动条件,例如,若多个目标增益值中的最大目标增益值小于0,则不移动边界任务节点,进而继续执行判断边界任务节点集合是否为空的过程;若多个目标增益值中的最小目标增益值大于或等于0,则移动边界任务节点,进而继续执行判断边界任务节点集合是否为空的过程。
99.其中,判断边界任务节点集合是否为空可以理解为,按照边界任务节点集合中的节点顺序判断是否执行对边界任务节点的分区优化过程;边界任务节点集合为空,可以理解为,按照边界任务节点集合中的节点顺序已对边界任务集合中的边界任务节点进行了分区优化处理,则可以结束细化过程;在移动边界任务节点后,可以重新更新边界任务节点集合。
100.可以理解的是,在按照边界任务节点集合中的节点顺序对分区中的任务节点进行优化时,对上一个边界任务节点进行分区优化的结果是作为下一个任务边界节点进行分区优化前的分区结果,以此类推,最后一个顺序的边界任务节点的分区优化结果即为该目标有向无环图中的最终分区结果。
101.例如,结合图3,图3为细化过程的初始分区结果,则通过基于切边数优化的分区划分方法对图3进行优化,可以得到如图8所示的分区结果,其中,在图3中,不同分区之间依赖关系较多,总体切边数达到7条,而在图8中,可以看出,基于切边数优化的分区划分方法优化了分区之间的切边数,使得总体切边数降至6条,因此,本技术提出的基于切边数优化的分区划分方法可以减少不同分区之间的切边数,从而可以降低任务调度执行的时间,进而可以提高任务调度效率。
102.结合上述内容,可以理解的是,本技术提出的基于切边数优化的分区划分方法,降低了大规模有向无环图划分过程中的切边数,为后续的任务调度提供了可行性的支持;而且,本技术提出的基于切边数优化的分区划分方法,在有限内存的条件,以及满足负载均衡约束的条件下,优化了多级划分过程中细化过程对整体结果切边数的影响,在保持分区平衡度的同时降低了分区之间的切边数,使得分区优化后的分区之间的总体切边数尽可能少,使得在任务调度时,能够有效地提高任务调度效果,降低任务整体执行时间,达到完成时间最小化的调度目标,同时也提高了资源利用率。
103.而且,本技术采用将多级划分方法与预设划分方法相融合,例如,预设划分方法为kway方法,并在细化过程增加对切边数的考虑,用预设划分方法划分后的分区结果作为优化的目标,实现了对整体切边数的优化,提高了资源的利用率以及合理分配多核处理器的资源和增强并行计算能力,克服了缺乏任务节点之间的通信控制,在应对大型计算任务的场景下,能有效加快任务的计算速度,提高整体的资源利用率;其中,细化过程中不需要考虑分区间是否有环路的问题,因此能较大程度的减少切边数,较大程度提高后续任务调度效果。
104.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头
的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
105.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的基于切边数优化的分区划分方法的基于切边数优化的分区划分装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于切边数优化的分区划分装置实施例中的具体限定可以参见上文中对于基于切边数优化的分区划分方法的限定,在此不再赘述。
106.在一个实施例中,如图9所示,提供了一种基于切边数优化的分区划分装置,包括:获取模块902、计算模块904和更新模块906,其中:
107.获取模块902,用于获取处理目标任务的目标有向无环图;目标有向无环图包括多个分区。
108.计算模块904,用于按照目标有向无环图中的边界任务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值;边界任务节点为与第一分区不同的分区中的任务节点之间具有依赖关系的任务节点,第一分区为边界任务节点在目标有向无环图中的分区,多个分区包括第一分区。
109.更新模块906,用于根据对应的边界任务节点的各切边增益值,更新对应的边界任务节点在目标有向无环图中的分区位置。
110.在其中一个实施例中,多个分区还包括多个第二分区,计算模块904,还用于按照目标有向无环图中的边界任务节点的节点顺序,根据对应的边界任务节点与多个第二分区中的任务节点的依赖关系,确定对应的边界任务节点的正向增益值;在将对应的边界任务节点分别移动到各第二分区后,根据对应的边界任务节点与第三分区中的任务节点的依赖关系,确定对应的边界任务节点的各负向增益值;第三分区包括第一分区,以及与对应的边界任务节点移动的分区不同的分区;将正向增益值分别与各负向增益值相减,得到对应的边界任务节点的各切边增益值。
111.在其中一个实施例中,计算模块904,还用于将多个第二分区中与对应的边界任务节点具有依赖关系的任务节点的数目,确定为对应的边界任务节点的正向增益值。
112.在其中一个实施例中,计算模块904,还用于将第三分区中与对应的边界任务节点具有依赖关系的任务节点的数目,确定为对应的边界任务节点移动到各第二分区后对应的移动增益值;对应的边界任务节点移动到各第二分区后对应的移动增益值组成对应的边界任务节点的各负向增益值。
113.更新模块906,还用于根据对应的边界任务节点的各切边增益值,以及边界任务节点的切边增益值与切边增益值对应的分区的均衡增益值的对应关系,得到对应的边界任务节点的多个目标增益值;在多个目标增益值中的最大目标增益值小于0时,保持对应的边界任务节点在初始分区中;或者,在多个目标增益值中的最小目标增益值大于或等于0时,基于边界任务节点的目标增益值对应的负向增益值与负向增益值对应的分区的对应关系,确
定多个目标增益值中的最大目标增益值对应的分区,并将对应的边界任务节点添加在最大目标增益值对应的分区,以及删除初始分区中的对应的边界任务节点;目标增益值中的最大目标增益值对应的分区为目标增益值中的最大目标增益值对应的负向增益值对应的分区。
114.获取模块902,还用于按照预设分区条件处理目标任务的有向无环图,得到分区有向无环图;预设分区条件包括:分区的数量为预设数量、分区中的任务节点的权重在第一预设范围内、以及分区中的任务节点的数量在第二预设范围内;基于预设划分方法处理分区有向无环图,得到目标有向无环图。
115.上述基于切边数优化的分区划分装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
116.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储目标任务。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于切边数优化的分区划分方法。
117.本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
118.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
119.获取处理目标任务的目标有向无环图;目标有向无环图包括多个分区;
120.按照目标有向无环图中的边界任务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值;边界任务节点为与第一分区不同的分区中的任务节点之间具有依赖关系的任务节点,第一分区为边界任务节点在目标有向无环图中的分区,多个分区包括第一分区;
121.根据对应的边界任务节点的各切边增益值,更新对应的边界任务节点在目标有向无环图中的分区位置。
122.在一个实施例中,多个分区还包括多个第二分区,处理器执行计算机程序时还实现以下步骤:按照目标有向无环图中的边界任务节点的节点顺序,根据对应的边界任务节点与多个第二分区中的任务节点的依赖关系,确定对应的边界任务节点的正向增益值;在将对应的边界任务节点分别移动到各第二分区后,根据对应的边界任务节点与第三分区中的任务节点的依赖关系,确定对应的边界任务节点的各负向增益值;第三分区包括第一分区,以及与对应的边界任务节点移动的分区不同的分区;将正向增益值分别与各负向增益值相减,得到对应的边界任务节点的各切边增益值。
123.在一个实施例中,处理器执行计算机程序时还实现以下步骤:将多个第二分区中
与对应的边界任务节点具有依赖关系的任务节点的数目,确定为对应的边界任务节点的正向增益值。
124.在一个实施例中,处理器执行计算机程序时还实现以下步骤:将第三分区中与对应的边界任务节点具有依赖关系的任务节点的数目,确定为对应的边界任务节点移动到各第二分区后对应的移动增益值;对应的边界任务节点移动到各第二分区后对应的移动增益值组成对应的边界任务节点的各负向增益值。
125.在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据对应的边界任务节点的各切边增益值,以及边界任务节点的切边增益值与切边增益值对应的分区的均衡增益值的对应关系,得到对应的边界任务节点的多个目标增益值;在多个目标增益值中的最大目标增益值小于0时,保持对应的边界任务节点在初始分区中;或者,在多个目标增益值中的最小目标增益值大于或等于0时,基于边界任务节点的目标增益值对应的负向增益值与负向增益值对应的分区的对应关系,确定多个目标增益值中的最大目标增益值对应的分区,并将对应的边界任务节点添加在最大目标增益值对应的分区,以及删除初始分区中的对应的边界任务节点;目标增益值中的最大目标增益值对应的分区为目标增益值中的最大目标增益值对应的负向增益值对应的分区。
126.在一个实施例中,处理器执行计算机程序时还实现以下步骤:按照预设分区条件处理目标任务的有向无环图,得到分区有向无环图;预设分区条件包括:分区的数量为预设数量、分区中的任务节点的权重在第一预设范围内、以及分区中的任务节点的数量在第二预设范围内;基于预设划分方法处理分区有向无环图,得到目标有向无环图。
127.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
128.获取处理目标任务的目标有向无环图;目标有向无环图包括多个分区;
129.按照目标有向无环图中的边界任务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值;边界任务节点为与第一分区不同的分区中的任务节点之间具有依赖关系的任务节点,第一分区为边界任务节点在目标有向无环图中的分区,多个分区包括第一分区;
130.根据对应的边界任务节点的各切边增益值,更新对应的边界任务节点在目标有向无环图中的分区位置。
131.在一个实施例中,多个分区还包括多个第二分区,计算机程序被处理器执行时还实现以下步骤:按照目标有向无环图中的边界任务节点的节点顺序,根据对应的边界任务节点与多个第二分区中的任务节点的依赖关系,确定对应的边界任务节点的正向增益值;在将对应的边界任务节点分别移动到各第二分区后,根据对应的边界任务节点与第三分区中的任务节点的依赖关系,确定对应的边界任务节点的各负向增益值;第三分区包括第一分区,以及与对应的边界任务节点移动的分区不同的分区;将正向增益值分别与各负向增益值相减,得到对应的边界任务节点的各切边增益值。
132.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将多个第二分区中与对应的边界任务节点具有依赖关系的任务节点的数目,确定为对应的边界任务节点的正向增益值。
133.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将第三分区中与
对应的边界任务节点具有依赖关系的任务节点的数目,确定为对应的边界任务节点移动到各第二分区后对应的移动增益值;对应的边界任务节点移动到各第二分区后对应的移动增益值组成对应的边界任务节点的各负向增益值。
134.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据对应的边界任务节点的各切边增益值,以及边界任务节点的切边增益值与切边增益值对应的分区的均衡增益值的对应关系,得到对应的边界任务节点的多个目标增益值;在多个目标增益值中的最大目标增益值小于0时,保持对应的边界任务节点在初始分区中;或者,在多个目标增益值中的最小目标增益值大于或等于0时,基于边界任务节点的目标增益值对应的负向增益值与负向增益值对应的分区的对应关系,确定多个目标增益值中的最大目标增益值对应的分区,并将对应的边界任务节点添加在最大目标增益值对应的分区,以及删除初始分区中的对应的边界任务节点;目标增益值中的最大目标增益值对应的分区为目标增益值中的最大目标增益值对应的负向增益值对应的分区。
135.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照预设分区条件处理目标任务的有向无环图,得到分区有向无环图;预设分区条件包括:分区的数量为预设数量、分区中的任务节点的权重在第一预设范围内、以及分区中的任务节点的数量在第二预设范围内;基于预设划分方法处理分区有向无环图,得到目标有向无环图。
136.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
137.获取处理目标任务的目标有向无环图;目标有向无环图包括多个分区;
138.按照目标有向无环图中的边界任务节点的节点顺序,计算得到对应的边界任务节点的各切边增益值;边界任务节点为与第一分区不同的分区中的任务节点之间具有依赖关系的任务节点,第一分区为边界任务节点在目标有向无环图中的分区,多个分区包括第一分区;
139.根据对应的边界任务节点的各切边增益值,更新对应的边界任务节点在目标有向无环图中的分区位置。
140.在一个实施例中,多个分区还包括多个第二分区,计算机程序被处理器执行时还实现以下步骤:按照目标有向无环图中的边界任务节点的节点顺序,根据对应的边界任务节点与多个第二分区中的任务节点的依赖关系,确定对应的边界任务节点的正向增益值;在将对应的边界任务节点分别移动到各第二分区后,根据对应的边界任务节点与第三分区中的任务节点的依赖关系,确定对应的边界任务节点的各负向增益值;第三分区包括第一分区,以及与对应的边界任务节点移动的分区不同的分区;将正向增益值分别与各负向增益值相减,得到对应的边界任务节点的各切边增益值。
141.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将多个第二分区中与对应的边界任务节点具有依赖关系的任务节点的数目,确定为对应的边界任务节点的正向增益值。
142.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将第三分区中与对应的边界任务节点具有依赖关系的任务节点的数目,确定为对应的边界任务节点移动到各第二分区后对应的移动增益值;对应的边界任务节点移动到各第二分区后对应的移动增益值组成对应的边界任务节点的各负向增益值。
143.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据对应的边界任务节点的各切边增益值,以及边界任务节点的切边增益值与切边增益值对应的分区的均衡增益值的对应关系,得到对应的边界任务节点的多个目标增益值;在多个目标增益值中的最大目标增益值小于0时,保持对应的边界任务节点在初始分区中;或者,在多个目标增益值中的最小目标增益值大于或等于0时,基于边界任务节点的目标增益值对应的负向增益值与负向增益值对应的分区的对应关系,确定多个目标增益值中的最大目标增益值对应的分区,并将对应的边界任务节点添加在最大目标增益值对应的分区,以及删除初始分区中的对应的边界任务节点;目标增益值中的最大目标增益值对应的分区为目标增益值中的最大目标增益值对应的负向增益值对应的分区。
144.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照预设分区条件处理目标任务的有向无环图,得到分区有向无环图;预设分区条件包括:分区的数量为预设数量、分区中的任务节点的权重在第一预设范围内、以及分区中的任务节点的数量在第二预设范围内;基于预设划分方法处理分区有向无环图,得到目标有向无环图。
145.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
146.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
147.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1