具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明的多任务卸载方法流程图,如图1所示,所述方法包括以下步骤:
S1、将所需卸载的任务按照其属性建立任务模型,所述属性至少包括任务的代码量,任务输入的数据量以及代码计算密度;
首先对要卸载的任务进行建模,需要描述任务的各项参数与其计算的方式。
对于边缘计算节点上的每个任务,本发明根据它的属性来对其进行描述。这些属性包括但不限于:①任务代码量;②任务输入数据量;③代码计算密度,即每个单位大小代码以计算周期为单位的处理密度;④任务结果数据大小,一般较小可忽略。
结合上述分析,本发明的卸载任务n即可表示为三元组Taskn=(cn,dn,αn)。卸载任务n的数据大小为cn+dn,任务n需要的CPU周期数为cn×αn。卸载任务用前三个参数表示。本发明规定每个需要卸载的ECN只能有一个需要卸载的任务,即为其任务列表中计算时间最长的任务。
S2、在任务模型中,按照卸载决策依据,求解出任务在各个决策下所耗费的总时间,以最小化所耗费的总时间为目标,构建出每个任务的最优决策函数;
任务卸载决策网络模型如图2所示。其中左边的节点代表需要卸载的ECN,右边节点代表空闲ECN,并且设需要进行任务卸载的节点集合Q={1,2,...,q},其卸载任务集合N={1,2,...,n},有空闲资源的节点集合M={1,2,...,m}。假设需要进行任务卸载的边缘计算节点(以下简称卸载ECN或者卸载节点)集合N={1,2,...,n},有空闲资源的边缘计算节点(以下简称空闲ECN或者空闲节点)集合M={1,2,...,m}。为了简化传输时间计算,本发明假设各个边缘计算节点都连接在同一TSN交换机上。假设空闲ECN可以接受任意数量的任务计算请求,对于每一个卸载ECN,其决策集合为Sn={0,1,...,m},其中Sn′=0表示在本地执行,Sn′>0表示卸载到空闲ECN计算,例如Sn′=2表示将任务n卸载到第二个空闲ECN。
对于卸载决策依据,本发明考虑到卸载决策的约束主要是时延约束,尤其对于时间敏感网络下的工业场景而言,其主要约束因素是时延约束,根据TSN的IEEE802.1Qbv数据流调度协议,可以使用排队论模型来计算并预测卸载数据在TSN网络中的传输时延。本发明规定卸载计算总时间不能超过本地计算的时间,发送任务的能耗不能大于任务在本地计算的能耗,超出标准的决策将从决策集合内剔除。每个卸载ECN的决策集合即为本地计算和所有空闲ECN所组成的集合。每一步的最优决策即为计算当前每个可能决策下的卸载任务时延并通过比较后所得到的最优结果。
也就是说,在本发明中,时延约束包括任务的传输时延和卸载时间;具体而言就是任务n在时间敏感网络中交换机的排队时间以及空闲的边缘计算节点卸载任务n所花费的卸载计算时间。
卸载计算时,对于任务数据的传输时延,本发明主要是通过交换机时的排队时延来确定出任务的传输时延,根据IEEE802.1Qbv协议,TSN交换机内部队列排队示意图如图3所示,数据流按照其类型被分为8个优先级,按照门控列表,在开门时间内传输。本发明使用M/M/1排队论模型来分析TSN交换机排队系统,可以得到不区分优先级情况下在一个输出端口上的排队情况,设参数C表示交换机的平均发送速度,E为数据包平均大小,可以得到端口的平均服务率
设各个优先级的数据包到达输出端口的时间间隔相互独立并且同分布,门控列表至少在一段时间内循环,可知在考虑优先级时分复用情况下,排队系统在其传输时隙内对不同优先级的平均服务率依旧为μ。而考虑一个循环整体时间后,其平均服务率应该是
其中,θ为某个或某些优先级流量的传输时隙,Θ为整体循环时间。规定所有卸载流量包属于同一优先级p。
因此,任务数据在TSN交换机内部的排队时间的期望
可以根据优先级排队模型计算得出:
其中,等式右边两项分别表示数据包平均排队等待时间和任务数据发送所用的时间;
表示任务n到边缘计算节点m的传输时间;
表示交换机输出端口对优先级为p的数据包的平均服务率,μ表示排队系统在其传输时隙内对不同优先级的平均服务率;θ为某个或某些优先级流量包的传输时隙,Θ为整体循环时间;C表示交换机的平均发送速度;λ
i表示优先级为i的数据包的到达率;c
n表示任务n的代码量;d
n表示任务n的输入数据量。
对于决策结果相同的任务即发往同一个空闲ECN的任务,在做完决策并卸载开始后,可以看作同时通过同一输出端口,这种情况下,对于一个卸载到空闲边缘计算节点m的任务n而言,其他需要卸载到m上运行的任务会对它的通信时间产生影响,因为一个端口每多一个数据流量包,其在一段时间内平均到达率会增大,使排队时间延长。假设决策为卸载到空闲节点m上的任务个数为
其中
为二进制决策变量,表示任务k是否在节点m上执行,任务在本地执行时为0,卸载计算时为1。当一个卸载ECN知道其他节点的卸载决策结果计算后,卸载节点根据与自己决策结果相同的任务数量,计算卸载时刻的平均到达率
然后将λ
i′代入公式中计算排队时延。
图4为卸载任务的模型示意图,即卸载到其他ECN上的任务模型示意图。本发明规定空闲ECN对每个在其上卸载的任务公平地分配计算资源,并使用时分复用的方式,以几个CPU指令循环轮流执行各个任务。
这种情况下,对于一个卸载到空闲边缘计算节点m的任务n来说,在m上运行的其他任务会对它的运行时间产生影响。对其中的某一个任务n来说,如果任务n为其中的最小任务,即对除了n外所有在m上计算的任务有c
nα
n≤c
kα
k,此时,它在m上的计算时间为:
即最小的任务因为与其他任务平分计算资源,其计算完成时间将是节点上的任务数与其独占节点资源计算时间的乘积(假设平均运行时隙很小,忽略循环排队计算结束时的误差)。
当一个计算量较小的任务计算完成离开节点后,其占有的计算资源将平均分配给其他正在处理的任务,因此,对于节点m上处理的任意计算任务n,其计算时间
有:
当c
nα
n≤c
kα
k时,min{c
kα
k/c
nα
n,1}=1,表示计算量比n大的任务对其计算时间的影响,而c
nα
n≥c
kα
k时,min{c
kα
k/c
nα
n,1}=c
kα
k/c
nα
n<1,即计算量小于n的任务会更早离开节点,其计算资源将被释放给其他任务。
由以上依据可以求出任务在各个决策下计算所耗费的总时间,因而得出最优的决策函数为:
其中,S
n表示任务n的可能卸载决策,即包括m+1种可能卸载决策;
与
分别为本地计算与卸载计算的时间。V(s
n,s
-n)为某个卸载节点在了解其他卸载节点的决策后,每个可能决策下卸载任务并计算所需的时间的集合。多任务卸载决策集G
-n=(S
1′,…,S
n′
-1,S
n′
+1,…,S′
N)表示除了任务n之外所有任务已做出的决策结果的集合;G表示所有任务做出决策后的卸载决策集合。
步骤S2中的最优决策函数是卸载节点单次策略集里的最优,并不是整体的最优,是节点在当前时刻已知信息下做出的策略集里的最优结果,当后面有节点决策后,可能会影响它现在的决策的最优性,甚至可能会变成不是最优的结果,到最后结果之前会不止一次做出这种决策直到稳定,所以最后一定会达到纳什均衡。
S3、按照博弈算法,在多任务的场景下,对每个任务的最优决策函数进行有限次的迭代计算,并计算出达到纳什均衡的决策结果。
根据任务在本地计算与卸载计算的参数以及决策集合,构建一个多任务卸载博弈模型,根据势博弈与动态博弈理论,提出一种博弈决策算法,使每个卸载ECN在已知当前时刻其他卸载ECN决策信息的情况下,计算其决策结果集以及最佳决策。每个卸载ECN顺序决策,并且在一段时间内迭代决策结果,最终使该博弈通过有限次的迭代达到纳什均衡。
因为卸载ECN对任务n决策时得到了其他所有任务的决策结果,就需要基于已知的信息来进行卸载决策,要么在本地执行,即Sn′=0,要么选择一个目标空闲边缘计算节点进行卸载,即Sn′>0。
本发明规定需要卸载任务的节点按照顺序,一个接一个做出卸载决策,决策依据为有效卸载约束条件以及其他节点的决策信息,每个卸载节点做出决策前都可以了解到其他卸载节点目前的决策信息,而其他卸载节点的卸载决策会对下一个做出决策的节点产生影响,造成其有效决策集的改变,即卸载决策会占用决策目标空闲节点的计算资源,影响其他节点的策略优先级。每个节点都是自私的,都会根据最优决策函数选择有效策略中最好的目标(时延最低)进行任务卸载。因此,定义多节点决策博弈
其中N是任务集,S
n是策略集,V
n是每个任务的每个可能卸载策略下的处理延时的集合。
进一步,提出卸载决策依据,构建最优决策函数。卸载决策的约束主要是时延与能耗,对于工业场景来说,主要因素是时延,根据TSN的IEEE802.1Qbv数据流调度协议,可以使用排队论模型来计算预测卸载数据在TSN网络中的传输时延。每个卸载ECN的决策集合即为本地和所有空闲ECN所组成的集合。每一步的最优决策即为计算当前每个可能决策下的卸载任务时延并比较后,得到的最优结果。
这样就完成多任务计算卸载决策博弈的构建,因此设计算法达到该博弈中的纳什均衡。在一个纳什均衡决策结果集
情况下,没有任何一个任务可以通过改变自己的决策结果来降低自己的计算时延,即
图5为卸载决策算法流程图,如图5所示,具体的算法如下:
需卸载任务的边缘计算节点按照顺序做出卸载决策,该卸载决策包括有效卸载约束条件和其他边缘计算节点的决策信息;
边缘计算节点接收所有空闲的边缘计算节点的决策信息;
边缘计算节点接收到上一个边缘计算节点发送的决策信息;
边缘计算节点计算其卸载决策集中的任务卸载时延;
边缘计算节点根据决策集中各个决策的任务卸载时延选择其中的最优决策作为本次决策;
边缘计算节点发送更新后的决策集到下一个边缘计算节点;
若当前卸载决策与上一轮迭代过程的卸载决策相同,则输出本次迭代过程的决策结果,该决策结果即为满足纳什均衡的决策结果。
本发明的多任务卸载方法的设计相当于一个分布式任务,而使用分布式计算的动机是使每个卸载任务执行之前能达成使各个卸载任务节点满意的决策。由TSN网络提供时间同步支持,需要卸载任务的节点发送标志信息到网络配置服务器,配置服务器对这些节点进行随机排序,将顺序与空闲节点信息发送给这些节点,在博弈开始后按照顺序一个接一个进行决策更新(设初始决策均为Sn′=0即本地计算),每个节点接受上一个节点决策后更新的决策集合G-n(t)(G-n(t)表示除了当前节点之外其他节点的决策集合),然后根据此信息完成决策更新过程。每个卸载节点决策结果的更新有以下两个步骤:
1.获取空闲资源节点信息以及其他节点任务的决策信息
网络配置服务器定时采集所有空闲节点的基本信息,整个决策开始前将空闲节点的CPU频率等信息发送给所有请求卸载任务的节点;每个节点开始决策前接收上一个卸载节点发送的更新决策结果集,每个节点做出决策更新时根据这两个信息。
2.卸载决策更新
在这一阶段,卸载节点在其决策时隙内,首先根据获取到的信息计算自己目前决策下的时延变化并且更新有效卸载决策集(其他节点决策若与该节点目前决策相同,将影响其卸载计算时延,上一个决策可能不是目前时刻的最优决策甚至不是有效决策),并且选择其中的最优决策(能使更新决策后时延低于本来的决策)作为自己的决策结果。时刻t节点的n卸载决策集为S
n(t),最优决策
满足:
t表示节点n作出决策的时刻,即目前时刻。卸载节点每次做出决策时,都会选择最优决策解,而当所有卸载节点在其决策时刻改变其当前决策解都不能降低任务计算时延,即整个决策循环都没有任何一个节点改变其决策,则该博弈到达纳什均衡。
纳什均衡并不一定是全局最优的结果,但纳什均衡是一个所有卸载ECN都能接受的结果,任何一个单独的卸载ECN改变决策都不会得到使其自身利益更大的结果。通过采用纳什均衡决策,卸载ECN能够在不影响任务实时性的情况下,将任务负载交给其他空闲ECN,提高资源利用率,保证系统整体的任务实时性。
下面结合一个具体的例子对本发明进行进一步的说明,假设现有一个工厂,有σ个厂区,每个厂区都布置了一套配套工业需求的传感器设备和一个边缘计算节点,通过TSN网络连接(TSN交换机满足IEEE802.1Qbv协议要求),进行数据采集与实时感知以及控制等服务。由于每个厂区的工作高峰期不同,计算等任务需求也不同,对某一个时刻来说,某些ECN计算资源紧张,而其他ECN可能较为空闲,因此使用本发明的任务卸载算法来解决此问题。
根据算法,每个卸载ECN只有一个任务需要卸载,即每个卸载ECN根据其任务列表里每个任务的参数,计算其时延,之后每个节点根据其优先级差别(每个ECN工作地点及主要任务类型差别导致需求不同),选择其中计算时间最长的任务进行卸载。
任务卸载决策网络模型如图2所示。设需要进行任务卸载的节点集合Q={1,2,...,q},其卸载任务集合N={1,2,...,n},有空闲资源的节点集合M={1,2,...,m}。假设各个ECN都连接在同一TSN交换机上,网络配置服务器定时配置TSN交换机并且定时采集各种网络节点信息,回应各种网络数据请求。空闲ECN可以接受任意数量的任务计算请求,对于每一个卸载ECN,其决策参数与计算过程的各项参数与模型描述一致。
根据算法,首先各个卸载ECN计算其任务在本地的处理时延,然后发送卸载请求至管理配置服务器,管理服务器将这些节点随机排序,给出一个顺序表,然后将表与所有空闲ECN的信息发送给各个卸载ECN,然后根据顺序表,卸载ECN一个接一个进行卸载决策。
从表中第一个卸载ECN开始,进行卸载决策博弈。每一个ECN根据两个依据来进行决策选择:①在目标ECN上计算的时间,②通信过程的损耗时间。根据算法设计,在得知其他卸载ECN的决策之后即知道目标ECN上任务个数与任务计算量大小参数之后,采用公式
来计算其在卸载目标上的计算时间。而对于通信时间的计算,首先应该根据其他节点的决策信息求出卸载时刻目标交换机端口的同一优先级包到达率变化情况
然后使用公式
来计算传输排队过程的时延(忽略链路时延)。将这两个依据综合,计算每个决策的总时延损耗。比较每个决策的优劣,根据最优决策函数
得到任务在该时刻的最优的卸载决策
从第一个节点第一次决策开始,维护并传递一个变量x,每当下一个节点的决策与上一次的决策相同,就使x+1,每当一个节点策略发生改变,则x归零。由该变量来判断是否达到纳什均衡,即当x等于卸载任务数量时,达到纳什均衡,终止决策,开始卸载任务。
由此,根据本发明的多任务卸载方法及系统,资源紧张的节点得以将其任务卸载到空闲节点上计算,并且保证了任务的实时性,均衡了各个边缘计算节点的负载,减少了计算资源的浪费。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。