基于车边云协同架构的任务卸载方法、系统以及介质与流程
未命名
10-19
阅读:92
评论:0
1.本技术涉及互联网技术领域,具体而言,涉及一种基于车边云协同架构的任务卸载方法、系统以及介质。
背景技术:
2.智能交通系统是未来交通系统的发展方向,它将交通系统所涉及到的人、车、道路和环境有机地结合在一起,使其发挥智能作用,从而使交通系统智能化。车联网技术的发展为智能交通系统提供了技术支持,并通过基于视觉的目标检测、自动驾驶等智能车载应用为用户提供了安全、舒适的行驶环境。前述智能车载应用需要大量的计算资源以及严格的实时响应,而车辆本身计算能力有限,无法满足该类应用的计算需求,也就无法保障用户所需的服务质量。因而,为了应对车联网用户端激增的应用需求,采用基于车边协同的车载边缘计算,通过提供和管理与用户车辆邻近的计算资源,车载边缘计算为用户提供更低延迟的访问服务。然而边缘服务器的计算和存储能力有限,无法保证任务执行的负载均衡,在车辆密集的区域,仅仅依靠边缘层可能无法满足海量数据的存储和计算。以物体检测、人脸识别等深度学习类应用为例,通常网络模型只能在云平台上运行,当车辆终端生成检测或识别任务时,需要将采集到的输入数据通过网络传送到云平台进行识别。实际上,边缘计算和云计算各有其优势,边缘计算适合计算量小或时延敏感型任务,云服务器因其拥有大量的计算和存储资源,适合处理计算密集但对实时性要求相对较低的任务。因而进一步提出了车-边-云系统的多层次卸载计算方法,结合二者的优势,协同边缘计算和云计算为用户提供更优质的服务。
3.然而,相关技术中,在车载-边缘计算-云计算的复杂场景下,无法有效兼顾任务卸载处理时延和车辆能耗成本的降低,可拓展性低,执行效率低。
4.针对上述问题,目前亟待有效的技术解决方案。
技术实现要素:
5.本技术的目的在于提供一种基于车边云协同架构的任务卸载方法、系统以及介质,解决了无法有效兼顾任务卸载处理时延和车辆能耗成本的降低,可拓展性低,执行效率低的问题,实现了任务卸载处理时延和车辆能耗的联合优化,可扩展性强,执行效率高,适应于复杂的车联网环境。
6.第一方面,本技术提供了一种基于车边云协同架构的任务卸载方法,所述任务卸载方法包括:
7.根据工作流应用中的关联性的子任务建立有向无环图;
8.计算所述子任务的优先级,根据所述优先级将所述子任务进行符合工作流依赖约束的排序后得到参考调度序列;
9.根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列;
10.根据每个所述候选调度序列对应的特征信息计算对应的候选嵌入向量序列;
11.通过价值网络对所述候选嵌入向量序列进行计算得到对应的状态价值,并从所述候选嵌入向量序列中选取状态价值最大的作为目标嵌入向量序列;
12.通过策略网络对所述目标嵌入向量序列进行计算得到条件概率结果;
13.根据所述条件概率结果确定所述目标嵌入向量序列对应的目标调度序列的卸载决策结果。
14.可选的,所述有向无环图包括顶点信息、边信息以及最大延迟信息,其中所述顶点信息包括所述子任务的输入数据量,输出结果数据量以及执行所述子任务所需的总cpu周期数,所述边信息包括数据传递方向以及权重信息。
15.可选的,所述有向无环图包括第一节点和出口节点,所述计算所述子任务的优先级,包括:
16.通过计算所述出口节点对应的第一子任务的第一时延得到所述第一子任务的第一优先级,其中所述第一时延为从车辆终端上传所述第一子任务至从云服务器下载处理结果的时长;
17.通过计算所述第一节点对应的第二子任务的第二时延得到所述第二子任务的节点优先级,其中所述第二时延为从车辆终端上传所述第二子任务至从云服务器下载处理结果的时长;
18.获取所述第一节点对应的下级节点中优先级的最大值,将所述最大值与所述节点优先级相加得到所述第二子任务的第二优先级;
19.相应的,所述根据所述优先级将所述子任务排序后得到参考调度序列,包括:
20.根据所述第一优先级以及所述第二优先级将所述子任务排序后得到参考调度序列。
21.可选的,所述根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列,包括:
22.按照优先级从小到大的顺序对所述参考调度序列的子节点进行遍历,若第二子节点的第二子优先级大于等于第一子节点的第一子优先级与第一预设值的乘积,将第一子节点与第二子节点的节点位置互换得到的调度序列作为候补调度序列,并确认是否满足继续遍历条件,其中所述第二子节点为第一子节点的下一子节点;
23.响应于满足继续遍历条件的结果,继续对所述参考调度序列的其他子节点进行遍历;
24.响应于不满足继续遍历条件的结果,停止遍历。
25.可选的,所述确认是否满足继续遍历条件,包括:
26.计算所述参考调度序列的所有子节点的第一优先级总和;
27.将所述第一优先级总和与所述第一子节点的第一子优先级以及第二预设值的乘积求差得到第二优先级总和;
28.将所述第一子节点的第一子优先级与第一预设值相乘得到更新后的第一子优先级;
29.若所述第二优先级总和大于等于所述第一优先级总和与第三预设值的乘积,满足继续遍历条件;
30.若所述第二优先级总和小于所述第一优先级总和与第三预设值的乘积,不满足继
续遍历条件。
31.可选的,所述特征信息包括子任务编号、直接前驱节点向量、直接后继节点向量、估计时延以及估计能耗。
32.可选的,所述价值网络由序列到序列网络,以及第一全连接层组成;所述策略网络由所述序列到序列网络、第二全连接层以及softmax层组成。
33.可选的,还包括:
34.将所述价值网络以及所述策略网络对应的第一网络参数上传至边缘服务器,以使所述边缘服务器基于所述第一网络参数对所述价值网络以及所述策略网络进行训练得到第二网络参数,并将所述第二网络参数回传至车辆终端;
35.接收到所述第二网络参数后,将所述价值网络以及所述策略网络对应的网络参数更新为所述第二网络参数。
36.第二方面,本技术提供了一种基于车边云协同架构的任务卸载系统,该任务卸载系统包括:存储器及处理器,所述存储器中包括基于车边云协同架构的任务卸载方法的程序,所述基于车边云协同架构的任务卸载方法的程序被所述处理器执行时实现以下步骤:
37.根据工作流应用中的关联性的子任务建立有向无环图;
38.计算所述子任务的优先级,根据所述优先级将所述子任务排序后得到参考调度序列;
39.根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列;
40.根据每个所述候选调度序列对应的特征信息计算对应的候选嵌入向量序列;
41.通过价值网络对所述候选嵌入向量序列进行计算得到对应的状态价值,并从所述候选嵌入向量序列中选取状态价值最大的作为目标嵌入向量序列;
42.通过策略网络对所述目标嵌入向量序列进行计算得到条件概率结果;
43.根据所述条件概率结果确定所述目标嵌入向量序列对应的目标调度序列的卸载决策结果。
44.第三方面,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质中包括基于车边云协同架构的任务卸载方法程序,所述基于车边云协同架构的任务卸载方法程序被处理器执行时,实现如本技术中任一实施例所述的基于车边云协同架构的任务卸载方法的步骤。
45.由上述可知,通过根据工作流应用中的关联性的子任务建立有向无环图;计算所述子任务的优先级,根据所述优先级将所述子任务进行符合工作流依赖约束的排序后得到参考调度序列;根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列;根据每个所述候选调度序列对应的特征信息计算对应的候选嵌入向量序列;通过价值网络对所述候选嵌入向量序列进行计算得到对应的状态价值,并从所述候选嵌入向量序列中选取状态价值最大的作为目标嵌入向量序列;通过策略网络对所述目标嵌入向量序列进行计算得到条件概率结果;根据所述条件概率结果确定所述目标嵌入向量序列对应的目标调度序列的卸载决策结果,实现了任务卸载处理时延和车辆能耗的联合优化,可扩展性强,执行效率高,适应于复杂的车联网环境。
46.本技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术实施例了解。本技术的目的和其他优点可通过在所写的说
明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
47.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
48.图1为一种示例性的车边云协同架构的示意图;
49.图2为本技术实施例提供的一种基于车边云协同架构的任务卸载方法的流程图;
50.图3为本技术实施例提供的一种计算子任务优先级的方法的流程图;
51.图4为本技术实施例提供的一种获得候选调度序列的方法的流程图;
52.图5为本技术实施例提供的一种确认是否满足继续遍历条件的方法的流程图;
53.图6为本技术实施例提供的价值网络以及策略网络的结构示意图。
[0054][0055]
具体实施方式
[0056]
下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0057]
应注意到,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0058]
图1为一种示例性的车边云协同架构的示意图,展示了车辆终端、边缘服务器以及云服务器的三端协同作业的任务卸载过程。
[0059]
请参照图2,为本技术实施例提供的一种基于车边云协同架构的任务卸载方法的流程图,该基于车边云协同架构的任务卸载方法用于具有计算能力的车辆终端。该基于车边云协同架构的任务卸载方法,包括以下步骤:
[0060]
s101、根据工作流应用中的关联性的子任务建立有向无环图。
[0061]
可选的,有向无环图包括顶点信息、边信息以及最大延迟信息,其中顶点信息包括子任务的输入数据量,输出结果数据量以及执行子任务所需的总cpu周期数,边信息包括数据传递方向以及权重信息。
[0062]
在一个实施例中,有向无环图可表示为其中为有向无环图中的顶点集合,每一个顶点为有向无环图中的顶点集合,每一个顶点对应于应用程序中可逻辑划分的子任务,xi分别表示子任务的输入数据量、输出结果数据量和执行子任务所需的
总cpu周期数。ε表示有向无环图中的边集,每一个双向边为两个子任务ti和tj之间的数据和控制依赖,边的权重表示前驱任务的执行结果传递给后继任务的数据量。τ为此工作流应用的最大允许延迟,单位是毫秒。
[0063]
在一个实施例中,以工作流应用包括三个具有依赖关系的子任务a、b和c为例,对应的有向无环图的边集为ε={e(a,b,128),e(a,c,128)},其中子任务a的输入数据量为500kb,输出结果数据量为128b,执行子任务所需的时钟周期为5
×
109,那么a可表示为a(500k,128,5
×
109);同理,根据相关参数,子任务b可表示为b(20k,16,10
×
109),子任务c可表示为c(100k,16,50
×
109)。由该边集ε可知,此工作流应用的子任务执行顺序需满足a
→
b和a
→
c的路径约束。
[0064]
s102、计算所述子任务的优先级,根据所述优先级将所述子任务进行符合工作流依赖约束的排序后得到参考调度序列。
[0065]
需要说明的是,子任务的优先级可以通过子任务从车辆终端上传至云服务器处理完成返回结果的时延来定义,时延越大的,优先级越高。
[0066]
在一个实施例中,图3为本技术实施例提供的一种计算子任务优先级的方法的流程图,其中,有向无环图包括第一节点和出口节点,如图3所示,具体步骤包括:
[0067]
s1021、通过计算所述出口节点对应的第一子任务的第一时延得到所述第一子任务的第一优先级,其中所述第一时延为从车辆终端上传所述第一子任务至从云服务器下载处理结果的时长;
[0068]
s1022、通过计算所述第一节点对应的第二子任务的第二时延得到所述第二子任务的节点优先级,其中所述第二时延为从车辆终端上传所述第二子任务至从云服务器下载处理结果的时长;
[0069]
s1023、获取所述第一节点对应的下级节点中优先级的最大值,将所述最大值与所述节点优先级相加得到所述第二子任务的第二优先级;
[0070]
s1024、根据所述第一优先级以及所述第二优先级将所述子任务排序后得到参考调度序列。
[0071]
在一个实施例中,定义子任务的优先级为t
i,c
,其中下标i,c表示任务i在云服务器的处理时延,具体的,的处理时延,具体的,的处理时延,具体的,和表示将子任务从车辆端上传到路边单元和从路边单元上传到云端的上传时间,执行,表示云服务器处理时间,和表示将结果回传边缘端和从边缘端回传到车载终端的下传时间。对于有向无环图中的出口节点φj,对应的子任务优先级rank(φj)=t
j,c
,对于有向无环图中的第一节点φi,对应的子任务优先级如下:
[0072][0073]
其中succ(φi)表示第一节点φi对应的子任务的后继任务。计算完各节点的优先级后,进行从高到低排序,可得一个符合工作流依赖约束的调度序列
[0074]
在一个实施例中,以出口节点为b(20k,16,10
×
109)和c(100k,16,50
×
109),前驱节点为a为示例,子任务b通过无线网络传输上传到边缘服务器和从边缘服务器回传结果的速率为4mbps,边缘端和云端的通信速率是1mbps,云服务器、边缘服务器和车载计算单元的cpu频率分别为10ghz、5ghz、1ghz,则计算可得rank(b)=t
b,c
=0.04096+0.16384+1+0.000128+0.000032≈1.20。同理,可计算得rank(c)=t
c,c
=0.2048+0.8192+5+0.000128+0.000032≈6.02。接下来计算第一节点a的优先级为rank(a)=max(rank(b),rank(c))+(1.024+4.096+0.5+0.001024+0.000256)≈11.64。
[0075]
s103、根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列。
[0076]
在一个实施例中,图4为本技术实施例提供的一种获得候选调度序列的方法的流程图,如图4所示,具体步骤包括:
[0077]
s1031、按照优先级从小到大的顺序对所述参考调度序列的子节点进行遍历,若第二子节点的第二子优先级大于等于第一子节点的第一子优先级与第一预设值的乘积,将第一子节点与第二子节点的节点位置互换得到的调度序列作为候补调度序列,并确认是否满足继续遍历条件,其中所述第二子节点为第一子节点的下一子节点;
[0078]
s1032、响应于满足继续遍历条件的结果,继续对所述参考调度序列的其他子节点进行遍历;
[0079]
s1033、响应于不满足继续遍历条件的结果,停止遍历。
[0080]
需要说明的是,可以按优先级从小到大的顺序对参考调度序列进行倒序遍历,设子节点φk,第一预设值th
sw
,参考调度序列φ
1:n
,若存在rank(φ
k+1
)≥th
sw
×
rank(φk),则交换子节点φk和子节点φ
k+1
在参考调度序列φ
1:n
中的位置。其中,第一预设值th
sw
的参考取值范围可以设置为th
sw
≤1,用来表示参考调度序列进行调整的严格程度:若设置较大的第一预设值th
sw
,则参考调度序列中优先级较为相近的子节点可交换调度顺序,这有利于卸载算法探索局部最优的任务调度序列以外的其他调度序列,从而找出更优的子任务调度顺序。直至遍历完成可以得到多个候选调度序列。。
[0081]
可选的,图5为本技术实施例提供的一种确认是否满足继续遍历条件的方法的流程图,如图5所示,具体步骤包括:
[0082]
s10311、计算所述参考调度序列的所有子节点的第一优先级总和;
[0083]
s10312、将所述第一优先级总和与所述第一子节点的第一子优先级以及第二预设值的乘积求差得到第二优先级总和;
[0084]
s10313、将所述第一子节点的第一子优先级与第一预设值相乘得到更新后的第一子优先级;
[0085]
s10314、若所述第二优先级总和大于等于所述第一优先级总和与第三预设值的乘积,满足继续遍历条件;
[0086]
s10315、若所述第二优先级总和小于所述第一优先级总和与第三预设值的乘积,不满足继续遍历条件。
[0087]
需要说明的是,设第一优先级总和rank_sum,第二优先级总和rank_sum
′
,第二预设值1-th
sw
,第三预设值th
ed
,则计算中所有节点的优先级总和
每次得到候补调度序列后,第二优先级总和rank_sum
′
会以下降(1-th
sw
)
×
rank(φk)的幅度更新,子节点φk的优先级也会对应以th
sw
的增益缩小,若满足rank_sum
′
≥th
ed
×
rank_sum,则继续遍历,否则停止遍历。其中,th
ed
为影响任务调度序列进行调整次数的固定阈值,较大的阈值对应较少的序列调整次数。
[0088]
在一个实施例中,在一个具体实例中,任务调度序列为《a,c,b》,它们的优先级总和为rank_sum=rank_sum
′
=rank(a)+rank(c)+rank(b)≈11.64+6.02+1.20=18.86。
[0089]
在一个具体实例中,按照《a,c,b》的参考调度序列进行倒序遍历,设th
sw
=0.15,th
ed
=0.7,由于满足rank(b)=1.20≥th
sw
×
rank(c)=0.15
×
6.02,因此可交换《a,c,b》中b和c的顺序,生成新的调度序列为《a,b,c》。接着更新rank_sum
′
=18.86-(1-0.15)*rank(c)=13.743,rank(c)=0.15*6.02=0.903。由于新生成的调度序列的优先级和rank_sum
′
满足rank_sum
′
=13.743≥th
ed
×
rank_sum=0.7
×
18.86的限制条件,因此可继续进行参考调度序列调整过程。重复上述遍历过程,对于调度序列《a,b,c》,由于rank(b)=1.20《th
sw
×
rank(a)=0.15
×
11.64不满足a和b交换调度顺序的条件,而且此时已遍历到任务序列头部,因此退出遍历过程。
[0090]
s104、根据每个所述候选调度序列对应的特征信息计算对应的候选嵌入向量序列。
[0091]
需要说明的是,候选嵌入向量序列是利用各个子任务节点的数据大小、预估开销等特征信息进行编码得到各个子任务节点的嵌入向量,然后将各个子节点的嵌入向量拼接起来得到候选嵌入向量序列。其中,特征信息包括子任务编号、直接前驱节点向量、直接后继节点向量、估计时延以及估计能耗,具体包括:子任务本身的编号i;直接前驱节点向量直接后继节点向量任务在本地执行、卸载到边缘服务器和云服务器的预估时延、能耗,包括本地处理时间上传至边缘端的传输时间边缘服务器处理时间t
ie
,从边缘端上传至云端时间云端执行时间t
ic
,从云端下载至边缘端时间t
idlc
,从边缘下载至车辆的时间t
idle
,本地执行能耗边缘执行能耗云端执行能耗
[0092]
在一个实施例中,以子任务节点b为示例计算其嵌入向量,设前驱节点和后继节点向量的大小为4,任务编号为2;前驱节点向量为(1,0,0,0),其中1和0分别表示前驱节点a和无其他前驱节点;由于无依赖于c的其他子任务,因此后继节点向量为(0,0,0,0);设子任务b在本地执行和卸载边缘服务器的预估时延、能耗构成的向量如下:
[0093][0094]
可得向量(10,0.04096,5,0.16384,1,0.000128,0.000032,50,25,5),最终子任务节点b的嵌入向量如下:
[0095]
(1,0,0,0,0,0,0,0,10,0.04096,5,0.16384,1,0.000128,0.000032,50,25,5)。
[0096]
示例的,对于两个候选调度序列分别计算各子节点的嵌入向量并进行拼接,最终生成嵌入向量序列以为例,其嵌入向量序列为
[0097]
s105、通过价值网络对所述候选嵌入向量序列进行计算得到对应的状态价值,并从所述候选嵌入向量序列中选取状态价值最大的作为目标嵌入向量序列。
[0098]
需要说明的是,图6为本技术实施例提供的价值网络以及策略网络的结构示意图,如图6所示,价值网络以序列到序列网络为主体,其中序列到序列网络通过tensorflow实现,包括编码器和解码器,编码器被设置为具有256个隐藏单元的两层双向长短期记忆(lstm),而解码器被设置为同样具有256个隐藏单元的两层动态lstm。此外,编码器和解码器的层之间都做了标准化。在具体的实施过程中,候选嵌入向量序列作为价值网络的输入,经过编码器和解码器的处理后,再经过第一全连接层的处理,最终可评估候选调度序列在调度过程中的状态价值v(sj)。分别计算对应的状态价值v(s0),并选择最大的状态价值v(s0)对应的任务序列φ
′
1:n
和嵌入向量ψ
′
1:n
。
[0099]
在一个实施例中,设存在两个满足算法约束的候选调度序列:和将两个候选调度序列的候选嵌入向量序列分别输入到价值网络中,计算它们的状态价值,设得到的状态价值分别为17和12,那么选定作为目标调度序列。
[0100]
s106、通过策略网络对所述目标嵌入向量序列进行计算得到条件概率结果。
[0101]
需要说明的是,策略网络同样以序列到序列网络为主体,与价值网络共享编码器和解码器的参数,在具体的实施过程中,目标调度序列对应的目标嵌入向量序列作为策略网络的输入,经过编码器和解码器的处理后,再经过第二全连接层以及softmax层的处理,得到条件概率结果,即在时间步j时输出调度动作aj的条件概率分布p(aj|a1,a2,
…
,a
j-1
),其中调度动作aj表示各子任务卸载的位置(即车辆终端、边缘服务端或者云服务器),计算方式为其中argmax函数计算当前状态sj下的最优调度动作。
[0102]
s107、根据所述条件概率结果确定所述目标嵌入向量序列对应的目标调度序列的卸载决策结果。
[0103]
在一个实施例中,设为目标调度序列,序列到序列网络的编码器以作为输入,将对a,c,b三个任务依次进行卸载决策。以策略网络调度第一个任务a为例,经过编码器、解码器、第一个全连接层和softmax层的前向传播后,输出p(a1)=(0.6234,0.1530,0.2236),也即p(a1=0)=0.6234,p(a1=1)=0.1530,p(a1=2)=0.2236,因此可得如下:
[0104][0105]
同理,假如对于任务c和任务b,它们的卸载决策分别为a2=2,a3=1。那么目标调度序列的调度决策是《0,2,1》,那么子任务a将在车辆终端执行,b和c分别被调度到边缘服务器和云服务器执行。
[0106]
上述,通过根据工作流应用中的关联性的子任务建立有向无环图;计算所述子任务的优先级,根据所述优先级将所述子任务进行符合工作流依赖约束的排序后得到参考调度序列;根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列;根据每个所述候选调度序列对应的特征信息计算对应的候选嵌入向量序列;通过价值网络对所述候选嵌入向量序列进行计算得到对应的状态价值,并从所述候选嵌入向量序列中选取状态价值最大的作为目标嵌入向量序列;通过策略网络对所述目标嵌入向量序列进行计算得到条件概率结果;根据所述条件概率结果确定所述目标嵌入向量序列对应的目标调度序列的卸载决策结果。解决了无法有效兼顾任务卸载处理时延和车辆能耗成本的降低,可拓展性低,执行效率低的问题,实现了任务卸载处理时延和车辆能耗的联合优化,可扩展性强,执行效率高,适应于复杂的车联网环境。
[0107]
在前述实施例的基础上,还包括:
[0108]
s108、将所述价值网络以及所述策略网络对应的第一网络参数上传至边缘服务器,以使所述边缘服务器基于所述第一网络参数对所述价值网络以及所述策略网络进行训练得到第二网络参数,并将所述第二网络参数回传至车辆终端;
[0109]
s109、接收到所述第二网络参数后,将所述价值网络以及所述策略网络对应的网络参数更新为所述第二网络参数。
[0110]
需要说明的是,车载终端可在夜间等计算任务的非高峰时间,通过道路单元将序列到序列网络的网络参数上传至计算资源充足的边缘服务器进行训练。边缘服务器利用收集的车载应用工作流调度轨迹,为加快深度强化学习训练过程,采用近端策略优化方法(ppo)进行训练,ppo算法用旧的策略来生成决策轨迹,用于更新当前策略π
θ
,其中。在边缘服务器的训练过程中,需要采集旧的策略网络π
old
在执行过程产生的调度轨迹,其中包括卸载计划a
1:n
。通过在训练过程中执行卸载计划a
1:n
,可获得环境反馈的奖励值序列[r1,r2,
…
,rn]。为了计算时间差分的误差(td-error)δ
t
,还需要从轨迹中收集价值网络的输出状态价值序列[v
π
(s1),v
π
(s2),
…
,v
π
(sn)],并且有δ
t
=r
t
+γv
π
(s
t+1
)-v
π
(s
t
),进而利用计算得到泛化优势估计的列表当收集获得用于训练的轨迹的奖励值序列、优势估计序列后,可通过优化ppo的目标函数:
[0111][0112]
进行策略网络的更新。式中l
clip
是ppo算法为避免策略较大改动而通过裁剪增加的目标,并且有
[0113][0114]
表示状态价值估计和回报的均方差期望,并且有而s[π
θ
](s
t
)表示熵,用来鼓励动作探索。
边缘服务器将训练好得到的第二网络参数回传至车辆终端,从而进行车辆终端进行任务卸载时使用更新的网络参数进行推理。
[0115]
本发明还公开了基于车边云协同架构的任务卸载系统,包括存储器和处理器,所述存储器中包括基于车边云协同架构的任务卸载方法的程序,所述基于车边云协同架构的任务卸载方法的程序被所述处理器执行时实现以下步骤:
[0116]
根据工作流应用中的关联性的子任务建立有向无环图;
[0117]
计算所述子任务的优先级,根据所述优先级将所述子任务进行符合工作流依赖约束的排序后得到参考调度序列;
[0118]
根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列;
[0119]
根据每个所述候选调度序列对应的特征信息计算对应的候选嵌入向量序列;
[0120]
通过价值网络对所述候选嵌入向量序列进行计算得到对应的状态价值,并从所述候选嵌入向量序列中选取状态价值最大的作为目标嵌入向量序列;
[0121]
通过策略网络对所述目标嵌入向量序列进行计算得到条件概率结果;
[0122]
根据所述条件概率结果确定所述目标嵌入向量序列对应的目标调度序列的卸载决策结果。
[0123]
本技术提供的基于车边云协同架构的任务卸载系统,通过根据工作流应用中的关联性的子任务建立有向无环图;计算所述子任务的优先级,根据所述优先级将所述子任务进行符合工作流依赖约束的排序后得到参考调度序列;根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列;根据每个所述候选调度序列对应的特征信息计算对应的候选嵌入向量序列;通过价值网络对所述候选嵌入向量序列进行计算得到对应的状态价值,并从所述候选嵌入向量序列中选取状态价值最大的作为目标嵌入向量序列;通过策略网络对所述目标嵌入向量序列进行计算得到条件概率结果;根据所述条件概率结果确定所述目标嵌入向量序列对应的目标调度序列的卸载决策结果。解决了无法有效兼顾任务卸载处理时延和车辆能耗成本的降低,可拓展性低,执行效率低的问题,实现了任务卸载处理时延和车辆能耗的联合优化,可扩展性强,执行效率高,适应于复杂的车联网环境。
[0124]
本发明还提供了一种计算机可读存储介质,所述可读存储介质中包括基于车边云协同架构的任务卸载方法程序,所述基于车边云协同架构的任务卸载方法程序被处理器执行时,实现如上述任一项所述的基于车边云协同架构的任务卸载方法的步骤。
[0125]
在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0126]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0127]
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述
集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0128]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0129]
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
技术特征:
1.一种基于车边云协同架构的任务卸载方法,其特征在于,所述任务卸载方法包括:根据工作流应用中的关联性的子任务建立有向无环图;计算所述子任务的优先级,根据所述优先级将所述子任务进行符合工作流依赖约束的排序后得到参考调度序列;根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列;根据每个所述候选调度序列对应的特征信息计算对应的候选嵌入向量序列;通过价值网络对所述候选嵌入向量序列进行计算得到对应的状态价值,并从所述候选嵌入向量序列中选取状态价值最大的作为目标嵌入向量序列;通过策略网络对所述目标嵌入向量序列进行计算得到条件概率结果;根据所述条件概率结果确定所述目标嵌入向量序列对应的目标调度序列的卸载决策结果。2.根据权利要求1所述的任务卸载方法,其特征在于,所述有向无环图包括顶点信息、边信息以及最大延迟信息,其中所述顶点信息包括所述子任务的输入数据量,输出结果数据量以及执行所述子任务所需的总cpu周期数,所述边信息包括数据传递方向以及权重信息。3.根据权利要求1所述的任务卸载方法,其特征在于,所述有向无环图包括第一节点和出口节点,所述计算所述子任务的优先级,包括:通过计算所述出口节点对应的第一子任务的第一时延得到所述第一子任务的第一优先级,其中所述第一时延为从车辆终端上传所述第一子任务至从云服务器下载处理结果的时长;通过计算所述第一节点对应的第二子任务的第二时延得到所述第二子任务的节点优先级,其中所述第二时延为从车辆终端上传所述第二子任务至从云服务器下载处理结果的时长;获取所述第一节点对应的下级节点中优先级的最大值,将所述最大值与所述节点优先级相加得到所述第二子任务的第二优先级;相应的,所述根据所述优先级将所述子任务排序后得到参考调度序列,包括:根据所述第一优先级以及所述第二优先级将所述子任务排序后得到参考调度序列。4.根据权利要求1所述的任务卸载方法,其特征在于,所述根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列,包括:按照优先级从小到大的顺序对所述参考调度序列的子节点进行遍历,若第二子节点的第二子优先级大于等于第一子节点的第一子优先级与第一预设值的乘积,将第一子节点与第二子节点的节点位置互换得到的调度序列作为候补调度序列,并确认是否满足继续遍历条件,其中所述第二子节点为第一子节点的下一子节点;响应于满足继续遍历条件的结果,继续对所述参考调度序列的其他子节点进行遍历;响应于不满足继续遍历条件的结果,停止遍历。5.根据权利要求4所述的任务卸载方法,其特征在于,所述确认是否满足继续遍历条件,包括:计算所述参考调度序列的所有子节点的第一优先级总和;将所述第一优先级总和与所述第一子节点的第一子优先级以及第二预设值的乘积求
差得到第二优先级总和;将所述第一子节点的第一子优先级与第一预设值相乘得到更新后的第一子优先级;若所述第二优先级总和大于等于所述第一优先级总和与第三预设值的乘积,满足继续遍历条件;若所述第二优先级总和小于所述第一优先级总和与第三预设值的乘积,不满足继续遍历条件。6.根据权利要求1所述的任务卸载方法,其特征在于,所述特征信息包括子任务编号、直接前驱节点向量、直接后继节点向量、估计时延以及估计能耗。7.根据权利要求1所述的任务卸载方法,其特征在于,所述价值网络由序列到序列网络,以及第一全连接层组成;所述策略网络由所述序列到序列网络、第二全连接层以及softmax层组成。8.根据权利要求1所述的任务卸载方法,其特征在于,还包括:将所述价值网络以及所述策略网络对应的第一网络参数上传至边缘服务器,以使所述边缘服务器基于所述第一网络参数对所述价值网络以及所述策略网络进行训练得到第二网络参数,并将所述第二网络参数回传至车辆终端;接收到所述第二网络参数后,将所述价值网络以及所述策略网络对应的网络参数更新为所述第二网络参数。9.一种基于车边云协同架构的任务卸载系统,其特征在于,该任务卸载系统包括:存储器及处理器,所述存储器中包括基于车边云协同架构的任务卸载方法的程序,所述基于车边云协同架构的任务卸载方法的程序被所述处理器执行时实现以下步骤:根据工作流应用中的关联性的子任务建立有向无环图;计算所述子任务的优先级,根据所述优先级将所述子任务排序后得到参考调度序列;根据预设排序条件将所述参考调度序列进行重排序得到多个候选调度序列;根据每个所述候选调度序列对应的特征信息计算对应的候选嵌入向量序列;通过价值网络对所述候选嵌入向量序列进行计算得到对应的状态价值,并从所述候选嵌入向量序列中选取状态价值最大的作为目标嵌入向量序列;通过策略网络对所述目标嵌入向量序列进行计算得到条件概率结果;根据所述条件概率结果确定所述目标嵌入向量序列对应的目标调度序列的卸载决策结果。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括基于车边云协同架构的任务卸载方法程序,所述基于车边云协同架构的任务卸载方法程序被处理器执行时,实现如权利要求1至8中任一项所述的基于车边云协同架构的任务卸载方法的步骤。
技术总结
本申请公开了基于车边云协同架构的任务卸载方法、系统以及介质。该方法通过根据工作流应用中的关联性的子任务建立有向无环图;根据计算的优先级将子任务进行符合工作流依赖约束的排序后得到参考调度序列;根据预设排序条件将参考调度序列进行重排序得到多个候选调度序列;根据每个候选调度序列对应的特征信息计算对应的候选嵌入向量序列;通过价值网络对候选嵌入向量序列进行计算得到对应的状态价值,并选取状态价值最大的作为目标嵌入向量序列;通过策略网络对目标嵌入向量序列进行计算得到条件概率结果,进而确定目标调度序列的卸载决策结果,实现了任务卸载处理时延和车辆能耗的联合优化,可扩展性强,执行效率高,适应于复杂的车联网环境。于复杂的车联网环境。于复杂的车联网环境。
技术研发人员:夏莹杰 刘瑞峰
受保护的技术使用者:杭州远眺科技有限公司
技术研发日:2023.04.14
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
