计算任务的分配方法、装置、计算机设备和存储介质

allin2023-03-18  134



1.本技术涉及计算机技术领域,特别是涉及一种计算任务的分配方法、装置、计算机设备和存储介质。


背景技术:

2.目前,神经网络在许多领域内表现出了非凡的性能,例如图像识别、自然语言处理、推荐系统等。与其相随的问题是dnn模型的结构越来越复杂以及训练的计算要求越来越高。为了解决复杂dnn模型的训练问题。通常将dnn模型中的多个计算任务划分至多个设备上,由多个设备分别计算自己分到的计算任务,从而降低了计算要求,其中dnn模型中的多个计算任务能够构成一有向图(按照每个计算任务的计算顺序构成有向图)。
3.现有技术中,对多个计算任务进行划分方式主要是多级划分算法,该多级划分算法主要是根据多个计算任务之间流转关系的关键程度进行划分,即尽可能将存在关键的流转关系多个计算任务划分给同一个设备,存在不关键的流转关系多个计算任务的划分给不同的设备。
4.然而,目前的多级划分算法方法,因同时要考虑多个设备的负载均衡,无可避免的会将存在关键的流转关系的多个计算任务的划分给不同的设备。目前的多级划分算法方法并未考虑将关键关系划分给不同设备,导致多个设备之间通信延时,从而导致不能满足实时应用的要求。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够满足实时应用要求的计算任务的分配方法、装置、计算机设备和存储介质。
6.第一方面,本技术提供了一种计算任务的分配方法。所述方法包括:
7.获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;
8.计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得;
9.根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;
10.若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。
11.在其中一个实施例中,所述计算每个边界计算子任务的关键关系增益,所述关键
关系增益包括第一增益和第二增益,包括:
12.统计所述边界计算子任务所属计算图中与所述边界计算子任务存在关键关系的计算子任务的数量,获得所述第一增益;并统计所述边界计算子任务分别与其他计算图之间存在关键关系的计算子任务的数量,获得所述边界计算子任务分别相对其他计算图的第二增益。
13.第二方面,本技术还提供了一种计算任务的分配装置。所述装置包括:
14.第一获取模块,用于获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;
15.第一计算模块,用于确定每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得;
16.调整模块,用于根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;
17.分配模块,用于若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。
18.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
19.获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;
20.计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得;
21.根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;
22.若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。
23.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
24.获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;
25.计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的
关键关系获得;
26.根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;
27.若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。
28.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
29.获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;
30.计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得;
31.根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;
32.若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。
33.上述计算任务的分配方法、装置、计算机设备和存储介质,通过获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得;根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。通过上述方式,本技术可以获得初步划分的多个计算图,然后根据各个计算图中的边界计算子任务确定每个边界计算子任务的关键关系增益,该关键关系增益包括第一增益和第二增益,第一增益是该边界计算子任务所属的计算图所获得,第二增益则是该边界计算子任务分别与其他计算图所获得,从第一增益和第二增益即可确定该边界计算子任务分别与所述计算图、其他计算图的关联程度,因此根据第一增益和第二增益即可确定将边界计算子任务调整至其他计算图,从而获得调整后的第一数量个计算图,若新的第一数量个计算图中没有新的边界计算子任务产生,确定新的第一数量个计算图中各计算图之间关键关系数量,以及原始计算图的第一数量个计算图中各计算图之间关键关系数量,选择关键关系数
量最小的第一数量个计算图分配给对应的第一数量计算设备,如此本技术能够在原计算图的基础上考虑边界计算子任务之间的关键关系,能减少各计算图之间的关键关系,也就是减少了各计算图之间的通信延时,因此能够加快计算任务的完成,可以满足实时应用的要求。
附图说明
34.图1为一个实施例中计算任务的分配方法的应用环境图;
35.图2为一个实施例中计算任务的分配方法的流程示意图;
36.图3为一个实施例中获得的原始计算图的划分结果示意图;
37.图4为一个实施例中计算图的划分结果示意图;
38.图5为另一个实施例中计算图的划分结果示意图;
39.图6为一实施例中计算任务的分配装置的结构框图;
40.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
41.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
42.本技术实施例提供的计算任务的分配方法,可以应用于如图1所示的应用环境中。其中,终端10通过网络分别与服务器20进行通信。终端10的数量在图1中仅仅为2个,具体实施中数量可以根据实际情况设置,此处不做限定,终端10相互可以通信,用于共同完成计算任务。
43.服务器20作为计算任务的分配终端,即服务器20可以将计算任务划分为多个计算图,每个计算图中包括至少一个计算子任务,然后分配给多个终端10,由多个终端10执行对应计算图中的计算子任务,当然将计算任务划分为多个计算图的服务器20也可以作为执行计算任务的设备之一,也就是说图1中服务器20可以执行将计算任务划分为2个计算图,然后将2个计算图分配给2个终端10,由2个终端执行对应计算图中计算子任务,共同实现完成计算任务;也可以是服务器20可以执行将计算任务划分为3个计算图,然后将3个计算图分配给服务器20和2个终端,由服务器20和2个终端10分别执行计算图中计算子任务,共同实现完成计算任务。可以理解的是,本技术还可以应用于多个服务器组成的应用环境,即每个服务器作为执行计算任务的设备,或者多个服务器中一个服务器作为分配任务的分配终端,其他服务器作为执行计算任务的终端。
44.其中,终端10可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器20可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。
45.在一个实施例中,如图2所示,提供了一种计算任务的分配方法,包括以下步骤:
46.步骤200,获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务。
47.为方便说明,本实施例中以应用于如图1所示的服务器为例进行说明,本实施例中服务器也作为执行计算子任务的设备之一,与其他终端共同完成计算任务。
48.服务器可以获得待分配的计算任务对应的第一数量个计算图以及该计算任务中各计算子任务之间的流转关系,其中第一数量为共同完成计算设备的数量,例如本实施例中以应用于如图1所示的服务器为例,第一数量则为3,即本实施例中共同完成计算设备为服务器和2个终端。
49.待分配的计算任务可以为通过现有技术划分的第一数量个计算图。本领域技术人员可以理解的是每个计算图中至少包括一个计算子任务,每个计算图所需的资源均需要满足对应的计算设备的负载均衡。
50.示例性的,服务器获得的第一数量个计算图以及该计算任务中各计算子任务之间的流转关系,可以如图3所示,服务器获得3个计算图,为方便说明每个计算图分别命名为a、b、c,该计算任务包括14个计算子任务,分别编号为1-14,每个计算子任务之间都会有对应的流转关系,图中任一两个计算子任务之间采用连线表示流转关系,连线包括实线和虚线,实线表示两计算子任务之间为关键关系,虚线表示两计算子任务之间为非关键关系,每根连线的箭头方向表示流转方向。计算图a中包括编号为2、3、4、7的计算子任务,计算图b中包括编号为6、8、9、11的计算子任务,计算图c中包括编号为1、5、10、12、13、14的计算子任务。计算子任务1和计算子任务3之间为关键关系,计算子任务3和计算子任务9之间为非关键关系。
51.步骤210,计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得。
52.其中,边界计算子任务是指每个计算图中与其他计算图存在流转关系的计算子任务,示例性的,如图3所示,计算图a中的边界计算子任务为编号为2、3、7的计算子任务,计算图b中边界计算子任务为编号为6、9的计算子任务,计算图c中边界计算子任务为编号为1、10的计算子任务。
53.本实施例中先计算每个边界计算子任务的关键关系增益,每个边界计算子任务的关键关系增益包括第一增益和第二增益,其中第一增益根据边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得,即计算每个边界计算子任务所属计算图的一个关键关系增益(第一增益),以及每个边界计算子任务分别相对其他计算图的一个或者多个关键关系增益(第二增益)。示例性的,如图3所示,对应边界计算子任务1而言,边界计算子任务1所属计算图为计算图c,因此边界计算子任务1的第一增益根据计算图c中与边界计算子任务1存在的关键关系获得(计算图c中与边界计算子任务1存在的关键关系为0个关键关系),边界计算子任务1相对计算图a的第二增益为边界计算子任务1与计算图a之间的关键关系获得(边界计算子任务1与计算图a之间的关键关系包括边界计算子任务1和计算子任务2、计算子任务3之间分别存在关键关系);边界计算子任务1相对计算图b的第二增益为边界计算子任务1与计算图b之间的关键关系获得(计算图b中与边界计算子任务1存在的关键关系为0个关键关系)。
54.作为一种实施例,所述计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,包括:
55.统计所述边界计算子任务所属计算图中与所述边界计算子任务存在关键关系的计算子任务的数量,获得所述第一增益;并统计所述边界计算子任务分别与其他计算图之间存在关键关系的计算子任务的数量,获得所述边界计算子任务分别相对其他计算图的第二增益。
56.具体地,作为一种实施例,服务器在计算边界计算子任务的第一增益和第二增益包括统计所述边界计算子任务所属计算图中与所述边界计算子任务存在关键关系的计算子任务的数量,获得所述第一增益;并统计所述边界计算子任务分别与其他计算图之间存在关键关系的计算子任务的数量,获得所述边界计算子任务分别相对其他计算图的第二增益。示例性的,如图3所示,服务器在计算边界计算子任务1的第一增益和第二增益时,边界计算子任务1的第一增益为0(边界计算子任务1所属的计算图c中与边界计算子任务1存在的关键关系为0个关键关系),边界计算子任务1与计算图a之间的第二增益为2(边界计算子任务1与计算图a之间的关键关系包括边界计算子任务1和计算子任务2、计算子任务3之间分别存在关键关系,因此统计结果为2);边界计算子任务1与计算图b之间的第二增益为0(计算图b中与边界计算子任务1存在的关键关系为0个关键关系)。依次类推,即可计算每个边界计算子任务的第一增益和第二增益。
57.作为另一种实施例,所述计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,包括:
58.将所述边界计算子任务的流转关系中关键关系赋值为第一值;
59.根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系,以及所述第一值进行计算,获得所述第一增益;并根据所述边界计算子任务分别与其他计算图之间的关键关系,以及所述第一值进行计算,获得所述第二增益。
60.作为另一种实施例,可以需要计算边界计算子任务时,仅对边界计算子任务的流转关系中关键关系赋值为第一值,当然为方便后续计算还可以对流转关系中所有关键关系分别赋值为第一值,如图3所示,示例性的,计算子任务2和4之间赋值为第一值,计算子任务1和2之间赋值为第一值,第一值可以为1或者其他任何自然数,只要方便后续计算即可。
61.然后计算每个边界计算子任务的第一增益和第二增益。
62.如图3所示,以第一值为1为例,服务器在计算边界计算子任务1的第一增益和第二增益时,边界计算子任务1的第一增益为0(边界计算子任务1所属的计算图c中与边界计算子任务1存在的关键关系为0个关键关系,因此计算结果为0),边界计算子任务1与计算图a之间的第二增益为2(边界计算子任务1与计算图a之间的关键关系包括边界计算子任务1和计算子任务2、计算子任务3之间分别存在关键关系,因此计算结果为2);边界计算子任务1与计算图b之间的第二增益为0(计算图b中与边界计算子任务1存在的关键关系为0个关键关系,因此计算结果为0)。依次类推计算其他边界计算子任务的第一增益和第二增益。
63.步骤220,根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图。
64.根据步骤210即可获得3个计算图中所有边界计算子任务的第一增益和第二增益,示例性的,如图3中3个计算图中所有边界计算子任务包括计算子任务1、2、3、6、7、9、10。每
个边界计算子任务分别相对3个计算图的关键关系增益。
65.具体地,所述根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图,包括:
66.计算每个所述边界计算子任务的所述第二增益和所述第一增益的差值;
67.将所述差值大于预设阈值的边界计算子任务分配至所述第二增益对应的计算图,获得重新划分后的第一数量个计算图。
68.作为一种实施例,本实施例根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图的过程可以包括:先计算每个边界计算子任务的第二增益和所述第一增益的差值,确定差值大于预设阈值的边界计算子任务,示例性的,如图3所示,以第二增益减去第一增益计算每个边界计算子任务的第一增益和所述第二增益的差值,计算图a中边界计算子任务3的第一增益和第二增益(相对计算图b)的差值为1,计算图a中边界计算子任务3的第一增益和第二增益(相对计算图c)的差值为-1;计算图a中边界计算子任务2的第一增益和第二增益(相对计算图b)的差值为0,因计算图a中边界计算子任务2与计算图c并无流转关系,因此无需计算边界计算子任务2相对计算图c的第一增益和第二增益的差值,具体实施中,因计算图a中边界计算子任务2与计算图c并无流转关系,因此计算边界计算子任务2相对计算图c的第一增益和第二增益的差值为-1。本行实施例中预设阈值为0,具体实施中预设阈值可以根据实际情况设置,例如设置为1。
69.计算图a相对计算图c,差值大于0的边界计算子任务包括边界计算子任务3;
70.计算图a相对计算图b,差值大于0的边界计算子任务包括边界计算子任务3;
71.计算图c相对计算图a,差值大于0的边界计算子任务包括边界计算子任务1;
72.计算图c相对计算图b,不存在差值大于0的边界计算子任务;
73.计算图b相对计算图a,不存在差值大于0的边界计算子任务;
74.计算图b相对计算图c,不存在差值大于0的边界计算子任务;
75.因此,可以移动的边界计算子任务为边界计算子任务1和3。进一步地,根据上述计算过程可以确定,边界计算子任务1可以从计算图c移动到计算图a,边界计算子任务3可以从计算图a移动到计算图b。即根据计算差值的过程也可以确定边界计算子任务的移动方向。具体实施过程中也可以随机移动边界计算子任务1和/或3。
76.作为一种实施例,所述将所述差值大于预设阈值的边界计算子任务分配至所述第二增益对应的计算图,获得重新划分后的第一预设数量个计算图,包括:
77.根据所述流转关系确定所述差值大于预设阈值的边界计算子任务中的目标边界计算子任务;
78.将所述目标边界计算子任务分配至所述第二增益对应的计算图,获得重新划分后的第一预设数量个计算图。
79.具体地,本实施例中在根据上述计算的差值重新划分计算图的过程中,可以根据流转关系确定目标边界计算子任务,即根据流转关系从可移动的边界计算子任务1、3中确定目标边界计算子任务,并不移动所有的可移动的边界计算子任务,示例性的,可以根据流转关系选择边界计算子任务1作为目标边界计算子任务进行移动(边界计算子任务1的流程关系在边界计算子任务3之前,因此选择边界计算子任务1作为目标边界计算子任务),移动
结果则如图4所示。
80.作为另一种实施例,也可以无需根据流转关系确定目标边界计算子任务,分别根据可移动的边界计算子任务1、3进行重新划分,划分结果则存在2中情况:分别如图4和图5所示。
81.需要说明的是,根据流转关系确定目标边界计算子任务的方式(简称第一种方式)相对根据可移动的所有边界计算子任务的方式(简称第二种方式),第一种方式相对第二种方式能够减少计算量,但第二种方式的划分结果的效果可能优于第一种方式的划分结果的效果。
82.步骤230,若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。
83.在获得的新划分的计算图后,判断新的计算图中是否存在新的边界计算子任务,如图4所示,新的计算图中边界计算子任务都在原计算图(图3)中出现过,也就是说新的图4未产生新的边界计算子任务。则在新划分的计算图和原计算图中选择计算图之间的关键关系数量最小的划分方式,示例性的,作为一种实施例,可以在图3和图4之间选择划分方式,因图4中各计算图之间的关键关系的数量(共3条关键关系,分别为7与9之间,3与6之间,9和10之间)小于图3(共5条关键关系,分别为7与9之间,3与6之间,9和10之间,1和2之间,1和3之间),因此选择图4的划分方式,将图4中计算计算图a、b、c分配给3个设备。
84.若采用移动边界计算子任务1和3分别获得图4和图5所示的计算图,则对比图3、4、5中各计算图之间的关键关系的数量,图3中各计算图之间的关键关系的数量为5,图4中各计算图之间的关键关系的数量为3,图5中各计算图之间的关键关系的数量为4,因此选择图4的方式作为分配方式,分配给各计算设备。
85.在获得的新划分的计算图后,若判定新的计算图中存在新的边界计算子任务,则返回步骤210,重新计算每个边界计算子任务的关键关系增益,再对比新的计算图中各计算图之间的关键关系的数量,依次执行上述步骤,从选择关键关系数量最小的方式进行分配。
86.作为另一种实施例,也可以不计算第一增益和第二增益的差值,直接比较第一增益和第二增益的大小关系,选择第一增益大于第二增益的边界计算子任务进行分配,其余过程与上一实施例相同,此处不在赘述。
87.根据上述描述可知,经过本技术的处理后,计算图之间的关键关系减少了,相应也就减少了各设备之间因关键关系的通信时间,从而减少了整体的通信延时。
88.上述计算任务的分配方法,通过获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得;根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图
不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。通过上述方式,本技术可以获得初步划分的多个计算图,然后根据各个计算图中的边界计算子任务确定每个边界计算子任务的关键关系增益,该关键关系增益包括第一增益和第二增益,第一增益是该边界计算子任务所属的计算图所获得,第二增益则是该边界计算子任务分别与其他计算图所获得,从第一增益和第二增益即可确定该边界计算子任务分别与所述计算图、其他计算图的关联程度,因此根据第一增益和第二增益即可确定将边界计算子任务调整至其他计算图,从而获得调整后的第一数量个计算图,若新的第一数量个计算图中没有新的边界计算子任务产生,确定新的第一数量个计算图中各计算图之间关键关系数量,以及原的第一数量个计算图中各计算图之间关键关系数量,选择关键关系数量最小的第一数量个计算图分配给对应的第一数量计算设备,如此本技术能够在原计算图的基础上考虑边界计算子任务之间的关键关系,能减少各计算图之间的关键关系,也就是减少了各计算图之间的通信延时,因此能够加快计算任务的完成,可以满足实时应用的要求。
89.在一个实施例中,所述获取所述计算任务对应的第一预设数量个计算图以及所述计算任务中各计算子任务之间的流转关系,包括:
90.获取所述计算任务对应的有向图,以及执行所述计算任务的计算设备的数量,所述有向图包括第二数量个计算子任务,以及各计算子任务之间的流转关系,所述流转关系包括关键关系和非关键关系,所述第二数量大于所述第一数量;
91.按照预设规则将所述有向图划分为第一数量个计算图。
92.具体地,本实施中服务器还可以直接获取到计算任务,该计算任务对应的有向图,以及执行所述计算任务的计算设备的数量。服务器自身采用现有方式获得该计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系。作为另一种实施例,服务器按照预设规则将所述有向图划分为第一数量个计算图,包括:
93.根据所述有向图中各计算子任务的流转关系进行聚类处理,获得多个集合;
94.将所述多个集合划分为第一数量个计算图。
95.根据获得的计算任务的有向图中各计算子任务的流转关系进行聚类处理,获得多个集合,例如将如图3中所示的计算子任务1、2、3聚类作为一个集合,10、5、12、13、14进行聚类作为一个集合,依次方式,从而获得多个集合,然后根据获得的多个集合划分为3个计算图。
96.作为另一种实施例,所述将所述多个集合划分为第一数量个计算图,还可以包括:
97.将所述多个集合随机划分为第一数量个分区;
98.随机从任一分区中选择任一集合划分到其他分区,并计算每次随机从任一分区中选择任一集合划分到其他分区后,获得所有新的分区之间的切边数;
99.将切边数最小对应的各分区作为所述计算图。
100.具体地,在将多个集合划分为多个计算图的过程中,还可以先对多个集合进行优化,即先将多个集合随机划分到第一预设数量个分区中,然后随机从任一分区中选择任一集合划分到其他分区,并计算每次随机从任一分区中选择任一集合划分到其他分区后,获得所有新的分区之间的切边数之和(因为计算子任务分配到不同的分区了,则认为分区之间的流转关系被切断了,其实实际并未切断,所以定义分区之间的流转关系被切断的流转
关系为切边,切边数则为切断的边的总数,例如图3中切边数为6,分别为7与9之间,3与6之间,9和10之间,1和2之间,1和3之间,9和3之间),选择在任一集合划分到其他分区过程中,切边数最小的划分方式作为计算图。
101.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
102.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的计算任务的分配方法的计算任务的分配装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个计算任务的分配装置实施例中的具体限定可以参见上文中对于计算任务的分配方法的限定,在此不再赘述。
103.在一个实施例中,如图6所示,提供了一种计算任务的分配装置,包括:
104.第一获取模块610,用于获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;
105.第一计算模块620,用于确定每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得;
106.调整模块630,用于根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;
107.分配模块640,用于若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。
108.其中,第一计算模块620还用于:
109.统计所述边界计算子任务所属计算图中与所述边界计算子任务存在关键关系的计算子任务的数量,获得所述第一增益;并统计所述边界计算子任务分别与其他计算图之间存在关键关系的计算子任务的数量,获得所述边界计算子任务分别相对其他计算图的第二增益。
110.其中,第一计算模块620还用于:
111.将所述边界计算子任务的流转关系中关键关系赋值为第一值;
112.根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系,以及所述第一值进行计算,获得所述第一增益;并根据所述边界计算子任务分别与其他计算图之间的关键关系,以及所述第一值进行计算,获得所述第二增益。
113.其中,第一计算模块620还用于:
114.计算每个所述边界计算子任务的所述第二增益和所述第一增益的差值;
115.将所述差值大于预设阈值的边界计算子任务分配至所述第二增益对应的计算图,获得重新划分后的第一数量个计算图。
116.其中,第一计算模块620还用于:
117.根据所述流转关系确定所述差值大于预设阈值的边界计算子任务中的目标边界计算子任务;
118.将所述目标边界计算子任务分配至所述第二增益对应的计算图,获得重新划分后的第一预设数量个计算图。
119.其中,第一获取模块610还用于:获取所述计算任务对应的有向图,以及执行所述计算任务的计算设备的数量,所述有向图包括第二数量个计算子任务,以及各计算子任务之间的流转关系,所述流转关系包括关键关系和非关键关系,所述第二数量大于所述第一数量;
120.按照预设规则将所述有向图划分为第一数量个计算图。
121.其中,第一获取模块610还用于:
122.根据所述有向图中各计算子任务的流转关系进行聚类处理,获得多个集合;
123.将所述多个集合划分为第一数量个计算图。
124.其中,第一获取模块610还用于:
125.将所述多个集合随机划分为第一数量个分区;
126.随机从任一分区中选择任一集合划分到其他分区,并计算每次随机从任一分区中选择任一集合划分到其他分区后,获得所有新的分区之间的切边数;
127.将切边数最小对应的各分区作为所述计算图。
128.上述计算任务的分配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
129.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储计算任务的相关数据,包括各计算子任务和流转关系等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种计算任务的分配方法。
130.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
131.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现如上述任一实施例所述的计算任务的分配方法的步骤。
132.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例所述的计算任务的分配方法的步骤。
133.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述任一实施例所述的计算任务的分配方法的步骤。
134.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
135.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
136.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种计算任务的分配方法,其特征在于,所述方法包括:获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得;根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。2.根据权利要求1所述的方法,其特征在于,所述计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,包括:统计所述边界计算子任务所属计算图中与所述边界计算子任务存在关键关系的计算子任务的数量,获得所述第一增益;并统计所述边界计算子任务分别与其他计算图之间存在关键关系的计算子任务的数量,获得所述边界计算子任务分别相对其他计算图的第二增益。3.根据权利要求1所述的方法,其特征在于,所述计算每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,包括:将所述边界计算子任务的流转关系中关键关系赋值为第一值;根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系,以及所述第一值进行计算,获得所述第一增益;并根据所述边界计算子任务分别与其他计算图之间的关键关系,以及所述第一值进行计算,获得所述第二增益。4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图,包括:计算每个所述边界计算子任务的所述第二增益和所述第一增益的差值;将所述差值大于预设阈值的边界计算子任务分配至所述第二增益对应的计算图,获得重新划分后的第一数量个计算图。5.根据权利要求4所述的方法,其特征在于,所述将所述差值大于预设阈值的边界计算子任务分配至所述第二增益对应的计算图,获得重新划分后的第一预设数量个计算图,包括:根据所述流转关系确定所述差值大于预设阈值的边界计算子任务中的目标边界计算子任务;将所述目标边界计算子任务分配至所述第二增益对应的计算图,获得重新划分后的第一预设数量个计算图。6.根据权利要求1所述的方法,其特征在于,所述获取所述计算任务对应的第一预设数
量个计算图以及所述计算任务中各计算子任务之间的流转关系,包括:获取所述计算任务对应的有向图,以及执行所述计算任务的计算设备的数量,所述有向图包括第二数量个计算子任务,以及各计算子任务之间的流转关系,所述流转关系包括关键关系和非关键关系,所述第二数量大于所述第一数量;按照预设规则将所述有向图划分为第一数量个计算图。7.根据权利要求6所述的方法,其特征在于,所述按照预设规则将所述有向图划分为第一数量个计算图,包括:根据所述有向图中各计算子任务的流转关系进行聚类处理,获得多个集合;将所述多个集合划分为第一数量个计算图。8.根据权利要求7所述的方法,其特征在于,所述将所述多个集合划分为第一数量个计算图,包括:将所述多个集合随机划分为第一数量个分区;随机从任一分区中选择任一集合划分到其他分区,并计算每次随机从任一分区中选择任一集合划分到其他分区后,获得所有新的分区之间的切边数;将切边数最小对应的各分区作为所述计算图。9.一种计算任务的分配装置,其特征在于,所述装置包括:第一获取模块,用于获取所述计算任务对应的第一数量个计算图以及所述计算任务中各计算子任务之间的流转关系,每个所述计算图包括至少一计算子任务;第一计算模块,用于确定每个边界计算子任务的关键关系增益,所述关键关系增益包括第一增益和第二增益,其中,所述第一增益根据所述边界计算子任务所属计算图中与所述边界计算子任务存在的关键关系获得,所述第二增益根据所述边界计算子任务分别与其他计算图之间的关键关系获得;调整模块,用于根据各边界计算子任务的所述第一增益和第二增益调整所述边界计算子任务至其他计算图,获得新的第一数量个计算图;分配模块,用于若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的第一数量个计算设备。10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。

技术总结
本申请涉及一种计算任务的分配方法、装置、计算机设备和存储介质。方法包括:获取计算任务对应的第一数量个计算图以及各计算子任务之间的流转关系;计算每个边界计算子任务的关键关系增益,关键关系增益包括第一增益和第二增益;根据各边界计算子任务的第一增益和第二增益调整边界计算子任务至其他计算图,获得新的第一数量个计算图;若新的第一数量个计算图存在新的边界计算子任务,返回确定每个边界计算子任务的关键关系增益的步骤,直至获得的新的第一数量个计算图不存在新的边界计算子任务,并将每次获得第一数量个计算图之间的关键关系数量最小的第一数量个计算图,分配至对应的计算设备。采用本方法能够满足实时应用要求,减少通信延时。减少通信延时。减少通信延时。


技术研发人员:李肯立 翁万东 肖正 唐卓 肖国庆 段明星 周旭 廖清
受保护的技术使用者:湖南大学
技术研发日:2022.04.22
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-6588.html

最新回复(0)