本发明属于任务调度,具体涉及一种基于算力的任务调度方法、装置及计算机程序产品。
背景技术:
1、随着智能设备的迅速发展,人脸识别等各种智能应用服务已经在日常生活和工作中得到了广泛应用,这些应用都需要算力资源来完成,同时,在智能算法研究不断突破和提升的过程中,对于算力的需求也在同步增加;其中,如果采用集中式计算(如云计算),虽然云中心算力丰富,但是会耗费越来越多的网络带宽资源,并引入传输时延,如此,则会增加任务处理时长,降低用户体验,而如果采用端侧计算,则会带来智能设备制造成本的提升,且硬件设备更新周期远不及软件更新周期,因此,在使用过程中,会导致设备不能满足快速更新的智能应用服务的算力需求,从而降低智能应用服务的适配度。
2、目前,随着算力网络的发展,越来越多的企业将云、边、端的资源进行整合,从而利用云边协同,来满足智能应用服务的高算力需求;但是,现有的云边协同任务调度存在以下不足:(1)现有的算力协同仅是在本地设备不能满足应用任务的算力需求时,才将任务调度至云边执行,并不能有效的利用云边算力资源,来进行兼具任务处理时延、成本和设备负载的任务调度:(2)现有的算力协同在调度时,大多是依据先来先服务的调度方法进行任务调度,如此,则会导致拥有高优先级的任务需要等待较长时间才能分配到算力;基于此,如何提供一种能够有效的利用云边算力资源,并支持优先级调度的任务调度方法,已成为一个亟待解决的问题。
技术实现思路
1、本发明的目的是提供一种基于算力的任务调度方法、装置及计算机程序产品,用以解决现有技术不能有效的利用云边算力资源,来进行兼具任务处理时延、成本和设备负载的任务调度的问题,以及不支持基于任务的优先级进行调度的问题。
2、为了实现上述目的,本发明采用以下技术方案:
3、第一方面,提供了一种基于算力的任务调度方法,包括:
4、获取任务集合以及处理资源集合,其中,所述任务集合中包含有多个待处理任务以及每个待处理任务的任务信息和任务处理所需资源,所述处理资源集合中包含有多个处理设备以及每个处理设备的算力信息,且多个处理设备包括若干本地设备和若干边缘服务器;
5、基于所述任务集合和所述处理资源集合,生成任务分配方案集合,其中,所述任务分配方案集合中包含有多个初始任务分配方案,且任一初始任务分配方案中包含有为各个待处理任务分配的处理设备,以及各个待处理任务的执行顺序;
6、将所述任务分配方案集合中的每个任务分配方案,作为一个初始染色体,并利用得到的多个初始染色体组成染色体种群;
7、基于每个处理设备的算力信息,以及每个待处理任务的任务信息和任务处理所需资源,构建出基于任务处理时间、任务处理成本和设备负载的任务调度函数;
8、根据所述任务调度函数,确定出适应度函数,并基于遗传算法和所述适应度函数,对所述染色体种群进行寻优处理,以在寻优处理后,得到最优染色体;
9、依据所述最优染色体,确定出初始最优任务分配方案,并基于每个待处理任务的任务信息和所述初始最优任务分配方案,确定出各个待处理任务的实际处理优先级;
10、根据各个待处理任务的实际处理优先级,调整所述初始最优任务分配方案中的各个待处理任务的执行顺序,以在调整后,得到最优任务分配方案;
11、根据所述最优任务分配方案,对所述任务集合中的各个待处理任务进行调度处理。
12、基于上述公开的内容,本发明在进行任务调度时,先获取每个待处理任务的任务信息和任务处理所需资源,以及每个处理设备的算力信息;然后,基于前述信息,生成初始的任务分配方案集合,并将该集合中的每个初始任务分配方案作为一个初始染色体,从而来构建出染色体种群;而后,本发明再基于前述各个待处理任务的任务信息和任务处理所需资源,以及各个处理设备的算力信息,构建出基于任务处理时间、任务处理成本和设备负载的任务调度函数;接着,则可根据该任务调度函数,确定出适应度函数,并利用遗传算法和该适应度函数,来进行染色体种群的寻优处理,得到最优的染色体;如此,通过前述迭代寻优步骤,即可得到兼具任务处理时延、成本和设备负载的初始最优任务分配方案;而在得到初始最优任务分配方案后,本发明还根据各个待处理任务的任务信息和前述初始最优任务分配方案,确定出各个待处理任务在实际执行时的优先级,并基于该优先级,来调整前述初始最优任务分配方案中的各个待处理任务的执行顺序,从而在调整后,得到最优任务分配方案;最后,即可根据该最优任务分配方案,来进行各个待处理任务的调度。
13、通过上述设计,本发明在进行任务调度时,基于任务信息和任务处理所需资源,以及设备的算力信息,来构建出了基于任务处理时间、任务处理成本和设备负载的任务调度函数;而后,再生成多个初始任务分配方案,并利用遗传算法和前述任务调度函数,来进行方案寻优,从而得到一个兼具任务处理时延、成本和设备负载的初始最优任务分配方案;接着,再计算出各个待处理任务在实际执行时的优先级,并基于此,来进行执行顺序的调整,从而得到最优任务分配方案;最后,根据该最优任务分配方案,则可完成任务的调度;由此,本发明有效的利用了云边算力资源,实现了兼具任务处理时延、成本和设备负载的任务调度,且在实际执行时,依据任务的优先级来进行执行顺序的调整,如此,能够使高优先级的任务先分配算力资源;基于此,非常适用于在任务调度领域的大规模应用与推广。
14、在一个可能的设计中,任一处理设备的算力信息包括该任一处理设备的cpu频率、cpu核心数、显存数、内存数以及处理单位数据所需要的机器周期,任一待处理任务的任务信息包括该任一待处理任务的数据量和初始优先级,所述任一待处理任务的任务处理所需资源包括该任一待处理任务对应的内存需求量、显存需求量以及cpu核心数需求量;
15、其中,基于每个处理设备的算力信息,以及每个待处理任务的任务信息和任务处理所需资源,构建出基于任务处理时间、任务处理成本和设备负载的任务调度函数,包括:
16、对于所述任务集合中的第i个待处理任务,基于所述第i个待处理任务的数据量,计算出所述第i个待处理任务的传输时间;
17、根据所述第i个待处理任务的内存需求量,显存需求量,cpu核心数需求量,以及目标设备的cpu频率和处理单位数据所需要的机器周期,计算出所述第i个待处理任务的运行时间,其中,所述目标设备为所述第i个待处理任务对应分配的处理设备;
18、利用第i个待处理任务的传输时间和运行时间,确定出第i个待处理任务的任务处理时间;
19、获取所述目标设备的能效系数以及通信开销,并基于所述能效系数、所述通信开销、所述传输时间和所述运行时间,确定出所述第i个待处理任务的任务处理成本;
20、基于所述第i个待处理任务的初始优先级、任务处理时间以及任务处理成本,构建出所述第i个待处理任务的处理时延与成本函数;
21、将i自加1,并重新基于第i个待处理任务的数据量,计算出所述第i个待处理任务的传输时间,直至i等于n时,得到每个待处理任务的处理时延与成本函数,其中,i的初始值为1,且n为所述任务集合中的待处理任务的总数;
22、根据各个处理设备的cpu核心数、显存数和内存数,以及各个待处理任务对应的内存需求量、显存需求量以及cpu核心数需求量,构建出设备负载均衡函数;
23、利用所述设备负载均衡函数和每个待处理任务的处理时延与成本函数,构建出所述任务调度函数。
24、在一个可能的设计中,基于所述第i个待处理任务的数据量,计算出所述第i个待处理任务的传输时间,包括:
25、若所述目标设备为边缘服务器,则获取指定设备与目标设备之间的数据传输速率,并将所述数据量与所述数据传输速率之间的比值,作为所述第i个待处理任务的传输时间,其中,所述指定设备为上传第i个待处理任务的本地设备;
26、若所述目标设备为本地设备,则将所述第i个待处理任务的传输时间取值为0;
27、其中,根据所述第i个待处理任务的内存需求量,显存需求量,cpu核心数需求量,以及目标设备的cpu频率和处理单位数据所需要的机器周期,计算出所述第i个待处理任务的运行时间,则包括:
28、按照如下公式(1),计算出所述第i个待处理任务的运行时间;
29、(1)
30、上述公式(1)中,表示所述第i个待处理任务的运行时间,表示所述目标设备处理单位数据所需要的机器周期,表示所述第i个待处理任务的数据量,表示所述目标设备的cpu频率,其中,表示所述目标设备为所述第i个待处理任务分配的运行资源,且是根据所述第i个待处理任务的内存需求量、显存需求量和cpu核心数需求量所计算得到的;
31、相应的,利用第i个待处理任务的传输时间和运行时间,确定出第i个待处理任务的任务处理时间,则包括:
32、按照如下公式(2),确定出所述第i个待处理任务的任务处理时间;
33、(2)
34、上述公式(2)中,表示所述第i个待处理任务的任务处理时间,表示所述第i个待处理任务的传输时间,表示所述第i个待处理任务的执行等待时间,为决策变量,其中,当为1时,表示第i个待处理任务对应分配的处理设备为边缘服务器,当为0时,表示第i个待处理任务对应分配的处理设备为本地设备。
35、在一个可能的设计中,获取所述目标设备的能效系数以及通信开销,并基于所述能效系数、所述通信开销、所述传输时间和所述运行时间,确定出所述第i个待处理任务的任务处理成本,包括:
36、按照如下公式(3),确定出所述第i个待处理任务的任务处理成本;
37、(3)
38、上述公式(3)中,表示所述第i个待处理任务的任务处理成本,表示所述目标设备的通信开销,表示所述第i个待处理任务的传输时间,表示所述目标设备的能效系数,表示所述第i个待处理任务的运行时间,表示所述目标设备的cpu频率,表示所述目标设备为所述第i个待处理任务分配的运行资源,为决策变量,其中,当为1时,表示第i个待处理任务对应分配的处理设备为边缘服务器,当为0时,表示第i个待处理任务对应分配的处理设备为本地设备。
39、在一个可能的设计中,根据各个处理设备的cpu核心数、显存数和内存数,以及各个待处理任务对应的内存需求量、显存需求量以及cpu核心数需求量,构建出设备负载均衡函数,包括:
40、对于所述处理资源集合中的第j个处理设备,基于所述第j个处理设备的cpu核心数、显存数和内存数,以及所有处理设备的内存总数、cpu核心总数和显存总数,计算出第j个处理设备的cpu权重、显存权重和内存权重;
41、根据第j个处理设备上分配的待处理任务的内存需求量、显存需求量和cpu核心数需求量,以及第j个处理设备的cpu权重、显存权重和内存权重,构建出第j个处理设备的负载函数;
42、将j自加1,并重新基于所述第j个处理设备的cpu核心数、显存数和内存数,以及所有处理设备的内存总数、cpu核心总数和显存总数,计算出第j个处理设备的cpu权重、显存权重和内存权重,直至j等于l时,得到每个处理设备的负载函数,其中,j的初始值为1,且l为处理设备的总数;
43、根据每个处理设备的负载函数,构建出所述设备负载均衡函数。
44、在一个可能的设计中,根据第j个处理设备上分配的待处理任务的内存需求量、显存需求量和cpu核心数需求量,以及第j个处理设备的cpu权重、显存权重和内存权重,构建出第j个处理设备的负载函数,包括:
45、按照如下公式(4),构建出所述第j个处理设备的负载函数;
46、(4)
47、上述公式(4)中,表示第j个处理设备的负载函数,依次表示所述第j个处理设备的内存权重、显存权重和cpu权重,表示所述第j个处理设备的内存数,表示所述第j个处理设备的显存数,表示所述第j个处理设备的cpu核心数,表示第j个处理设备上分配的待处理任务中的第个待处理任务的内存需求量,表示第j个处理设备上分配的第个待处理任务的显存需求量,表示第j个处理设备上分配的第个待处理任务的cpu核心数需求量,表示所述第j个处理设备上分配的待处理任务的总数;
48、相应的,根据每个处理设备的负载函数,构建出所述设备负载均衡函数,则包括:
49、按照如下公式(5),构建出所述设备负载均衡函数;
50、(5)
51、上述公式(5)中,表示所述设备负载均衡函数,表示所有处理设备的负载均值。
52、在一个可能的设计中,基于所述第i个待处理任务的初始优先级、任务处理时间以及任务处理成本,构建出所述第i个待处理任务的处理时延与成本函数,包括:
53、按照如下公式(6),构建出所述第i个待处理任务的处理时延与成本函数;
54、(6)
55、上述公式(6)中,表示第i个待处理任务的处理时延与成本函数,表示第i个待处理任务的初始优先级,表示所述第i个待处理任务的执行等待时间,表示所述第i个待处理任务的任务处理时间,表示所述第i个待处理任务的任务处理成本,均表示任务调度权重系数;
56、相应的,利用所述设备负载均衡函数和每个待处理任务的处理时延与成本函数,构建出所述任务调度函数,则包括:
57、基于所述设备负载均衡函数和每个待处理任务的处理时延与成本函数,并按照如下公式(7),构建出所述任务调度函数;
58、(7)
59、上述公式(7)中,表示所述任务调度函数,表示任务集合中的待处理任务的总数,表示所述设备负载均衡函数。
60、第二方面,提供了一种基于算力的任务调度装置,包括:
61、获取单元,用于获取任务集合以及处理资源集合,其中,所述任务集合中包含有多个待处理任务以及每个待处理任务的任务信息和任务处理所需资源,处理资源集合中包含有多个处理设备以及每个处理设备的算力信息,且多个处理设备包括若干本地设备和若干边缘服务器;
62、初始方案生成单元,用于基于所述任务集合和所述处理资源集合,生成任务分配方案集合,其中,所述任务分配方案集合中包含有多个初始任务分配方案,且任一初始任务分配方案中包含有为各个待处理任务分配的处理设备,以及各个待处理任务的执行顺序;
63、方案寻优单元,用于将所述任务分配方案集合中的每个任务分配方案,作为一个初始染色体,并利用得到的多个初始染色体组成染色体种群;
64、方案寻优单元,用于基于每个处理设备的算力信息,以及每个待处理任务的任务信息和任务处理所需资源,构建出基于任务处理时间、任务处理成本和设备负载的任务调度函数;
65、方案寻优单元,用于根据所述任务调度函数,确定出适应度函数,并基于遗传算法和所述适应度函数,对所述染色体种群进行寻优处理,以在寻优处理后,得到最优染色体;
66、方案寻优单元,用于依据所述最优染色体,确定出初始最优任务分配方案,并基于每个待处理任务的任务信息和初始最优任务分配方案,确定出各个待处理任务的实际处理优先级;
67、方案寻优单元,还用于根据各个待处理任务的实际处理优先级,调整所述初始最优任务分配方案中的各个待处理任务的执行顺序,以在调整后,得到最优任务分配方案;
68、任务调度单元,用于根据所述最优任务分配方案,对所述任务集合中的各个待处理任务进行调度处理。
69、第三方面,提供了另一种基于算力的任务调度装置,以装置为电子设备为例,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意一种可能设计的所述基于算力的任务调度方法。
70、第四方面,提供了一种存储介质,存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意一种可能设计的所述基于算力的任务调度方法。
71、第五方面,提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使计算机执行如第一方面或第一方面中任意一种可能设计的所述基于算力的任务调度方法。
72、有益效果:
73、(1)本发明在进行任务调度时,基于任务信息和任务处理所需资源,以及设备的算力信息,来构建出了基于任务处理时间、任务处理成本和设备负载的任务调度函数;而后,再生成多个初始任务分配方案,并利用遗传算法和前述任务调度函数,来进行方案寻优,从而得到一个兼具任务处理时延、成本和设备负载的初始最优任务分配方案;接着,再计算出各个待处理任务在实际执行时的优先级,并基于此,来进行执行顺序的调整,从而得到最优任务分配方案;最后,根据该最优任务分配方案,则可完成任务的调度;由此,本发明有效的利用了云边算力资源,实现了兼具任务处理时延、成本和设备负载的任务调度,且在实际执行时,依据任务的优先级来进行执行顺序的调整,如此,能够使高优先级的任务先分配算力资源;基于此,非常适用于在任务调度领域的大规模应用与推广。
1.一种基于算力的任务调度方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,任一处理设备的算力信息包括该任一处理设备的cpu频率、cpu核心数、显存数、内存数以及处理单位数据所需要的机器周期,任一待处理任务的任务信息包括该任一待处理任务的数据量和初始优先级,所述任一待处理任务的任务处理所需资源包括该任一待处理任务对应的内存需求量、显存需求量以及cpu核心数需求量;
3.根据权利要求2所述的方法,其特征在于,基于所述第i个待处理任务的数据量,计算出所述第i个待处理任务的传输时间,包括:
4.根据权利要求2所述的方法,其特征在于,获取所述目标设备的能效系数以及通信开销,并基于所述能效系数、所述通信开销、所述传输时间和所述运行时间,确定出所述第i个待处理任务的任务处理成本,包括:
5.根据权利要求2所述的方法,其特征在于,根据各个处理设备的cpu核心数、显存数和内存数,以及各个待处理任务对应的内存需求量、显存需求量以及cpu核心数需求量,构建出设备负载均衡函数,包括:
6.根据权利要求5所述的方法,其特征在于,根据第j个处理设备上分配的待处理任务的内存需求量、显存需求量和cpu核心数需求量,以及第j个处理设备的cpu权重、显存权重和内存权重,构建出第j个处理设备的负载函数,包括:
7.根据权利要求2所述的方法,其特征在于,基于所述第i个待处理任务的初始优先级、任务处理时间以及任务处理成本,构建出所述第i个待处理任务的处理时延与成本函数,包括:
8.一种基于算力的任务调度装置,其特征在于,包括:
9.一种基于算力的任务调度装置,其特征在于,包括:依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取计算机程序,执行如权利要求1~7任意一项所述的基于算力的任务调度方法。
10.一种包含指令的计算机程序产品,其特征在于,当指令在计算机上运行时,使计算机执行如权利要求1~7任意一项所述的基于算力的任务调度方法。