一种基于公平的雾计算任务卸载方法及***
技术领域
本发明涉及雾计算任务卸载技术领域,特别是涉及一种基于公平的雾计算任务卸载方法及***。
背景技术
随着信息技术的发展,增强现实和图像识别等这类对计算能力要求高,对时延要求严格的新兴应用不断涌现。尽管当今CPU的性能越来越强大,但仍然满足不了这些新兴应用的需求,用户设备无法在短时间内处理大量的计算任务,严格的时延约束已成为在移动设备上运行复杂应用程序的障碍。因此,运行在移动设备上的应用程序仍倾向于进行全部或部分任务卸载。
过去,云服务器通常扮演着接收和处理传统物联网网络中各种终端的数据处理的角色。但随着网络连接的终端节点和相应的物联网应用的***性增长,大量信息需要及时处理,这给中央云服务器带来了沉重的链路和计算负担。此外,中央云服务器一般部署在远离终端设备的位置,这也会导致无法接受的任务传输延迟和能耗,同时也存在对移动性的支持不佳和安全性问题。
为解决上述云计算中存在的问题,雾计算应运而生。雾计算是云计算的延伸概念,是一种集计算、存储和控制的于一体的新兴计算结构。它通过在网络中部署大量雾节点,将网络资源从中央云扩展到网络边缘。这些雾节点可以是空闲的物联网设备,也可以由移动运营商专门部署。终端设备上的计算任务可以分为多个子任务,卸载到附近的雾节点,而非远端的云服务器,实现比传统云计算更好地服务质量。
但现有的基于雾计算的多用户多雾节点场景下的任务卸载方案主要致力于最小化时延或者***的总能量消耗,这往往导致设备上生成的任务更倾向于卸载至靠近终端用户和计算能力强的雾节点,使得这些雾节点产生巨大的能量消耗,在雾节点能量受限的条件下可能会导致雾节点因能量耗尽而无法持续工作。而距终端设备较远,计算能力和续航能力较差的雾节点大部分时间处于空闲状态,导致网络资源未能充分利用。因此需要一种应用于多用户多雾节点场景下的公平任务卸载方案解决这一问题。
发明内容
针对上述问题,本发明的目的是在多用户多雾节点的场景下,提供一种基于公平的雾计算任务卸载方法及***。为了实现以上目的,本发明采用以下技术方案:
一种基于公平的雾计算任务卸载方法,包括步骤:
S1、获取整个网络的信息,信息包括各个雾节点的历史平均能耗信息;
S2、根据步骤S1中获取的信息,计算各终端节点与雾节点之间的势能;
S3、利用Kuhn-Munkras算法,以各终端节点与雾节点之间的势能为权值,并以网络整体势能最大为目标,求解终端节点与雾节点之间的一对一匹配,以作出任务卸载决策矩阵X;
S4、以最小化任务处理时延为目标,计算终端节点卸载任务数据量;
S5、计算本轮各雾节点的能耗,并更新各雾节点的历史平均能耗信息。
优选的,步骤S1中由网络控制器获取整个网络的信息,且信息还包括:
终端节点数量M,每个终端节点的任务数据量L
i、计算能力f
i、发射功率
i=1,2,3...M,t为transmission代表传输;
雾节点数量N,每个雾节点的计算能力f
j、计算功率
续航能力γ
j,j=1,2,3...N,c为compute代表计算;
终端节点i与雾节点j之间的距离d
ij、信道带宽B
ij以及噪声功率
优选的,步骤S2中包括步骤:
S2.1、计算终端节点i与雾节点j之间的信道增益Gij、数据传输速率rij和等效数据处理速率Rij;
S2.2、根据终端节点i与雾节点j之间等效数据处理速率R
ij、雾节点j的续航能力γ
j、雾节点j的历史平均能耗
计算终端节点i与雾节点j之间的势能
优选的,步骤S2.1中:
计算终端节点i与雾节点j之间信道增益G
ij的公式为:
其中L
ij为终端节点i与雾节点j之间的路径损耗;
计算终端节点i与雾节点j之间数据传输速率r
ij的公式为:
计算终端节点i与雾节点j之间等效数据处理速率Rij的公式为:Rij=(1/rij+1/fj)-1。
优选的,计算终端节点i与雾节点j之间的路径损耗Lij的公式为:Lij=38.46+20log10(dij)。
优选的,步骤S2.2中:
优选的,步骤S3中,采用目标函数
进行建模,以使网络整体势能最大,其中x
ij∈{0,1}、
x
ij为0-1指示变量,当终端节点i的子任务分配给雾节点j时,x
ij=1,反之,x
ij=0,
表明终端节点只能将任务卸载给一个雾节点,
表明每个雾节点每次最多服务一个终端节点。
优选的,步骤S4中计算终端节点卸载任务数据量Q
ij的公式为:
优选的,步骤S5中,计算本轮雾节点能耗E
j的公式为:
更新雾节点历史平均能耗信息的计算公式为:
其中
为更新前雾节点的历史平均能耗信息,
为更新后雾节点的历史平均能耗信息,α为遗忘指数。
本发明还公开了一种基于公平的雾计算任务卸载***,包括信息获取模块、势能计算模块、矩阵获取模块、数据量计算模块以及能耗计算模块;
信息获取模块,用于获取整个网络的信息,信息包括各个雾节点的历史平均能耗信息;
势能计算模块,用于根据信息获取模块获取的信息,计算各终端节点与雾节点之间的势能;
矩阵获取模块,利用Kuhn-Munkras算法,以各终端节点与雾节点之间的势能为权值,并以网络整体势能最大为目标,求解终端节点与雾节点之间的一对一匹配,以作出任务卸载决策矩阵X;
数据量计算模块,用于以最小化任务处理时延为目标,计算终端节点卸载任务数据量;
能耗计算模块,用于计算本轮各雾节点的能耗,并更新各雾节点的历史平均能耗信息。
本发明的优点在于:
(1):终端节点在选择雾节点时,不只考虑雾节点的计算能力、续航能力和距离,还会考虑雾节点的平均历史能耗,这有效解决了一些雾节点持续工作能源很快耗尽,而另一些雾节点始终处于闲置状态的问题,提高了雾节点基于能耗的公平性。
(2):在兼顾雾节点能耗公平的条件下,还能使得整个网络的势能最大;以及在网络势能最大限制条件下,使得每个终端处理任务需要的时延最短。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种基于公平的雾计算任务卸载方法的流程图;
图2为一种基于公平的雾计算任务卸载***的结构示意图;
图3为一种基于公平的雾计算任务卸载方法的网络模型图;
图4为一种基于公平的雾计算任务卸载方法的网络势能图;
图5为本发明雾计算与传统雾计算的任务卸载方法公平值对比图;
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
实施例一:
参照图1,本实施例提供一种基于公平的雾计算任务卸载方法,包括步骤:
S1、获取整个网络的信息,信息包括各个雾节点的历史平均能耗信息;
S2、根据步骤S1中获取的信息,计算各终端节点与雾节点之间的势能;
S3、利用Kuhn-Munkras算法,以各终端节点与雾节点之间的势能为权值,并以网络整体势能最大为目标,求解终端节点与雾节点之间的一对一匹配,以作出任务卸载决策矩阵X;
S4、以最小化任务处理时延为目标,计算终端节点卸载任务数据量;
S5、计算本轮各雾节点的能耗,并更新各雾节点的历史平均能耗信息。
本实施例适用于雾计算网络,网络模型图参照图2所示,在该网络中,雾节点与终端节点在某一区域内随机分布。本实施例做出如下假设:
(1)雾节点数量不少于终端节点数量。
(2)终端节点产生的任务可以任意分为两个子任务。一个子任务在本地执行,一个子任务卸载至雾节点执行。
(3)忽略卸载至雾节点的子任务的计算结果的传输时间。
具体的:
在所述步骤S1中,由网络控制器获取整个网络的信息,网络控制器是安装在电信运营商部署的基站上的小型数据中心。
所述信息还包括:
终端节点数量M,每个终端节点的任务数据量L
i、计算能力f
i、发射功率
i=1,2,3...M,t为transmission代表传输;
雾节点数量N,每个雾节点的计算能力f
j、计算功率
续航能力γ
j,j=1,2,3...N,c为compute代表计算;
终端节点i与雾节点j之间的距离d
ij、信道带宽B
ij以及噪声功率
步骤S2中包括步骤:
S2.1、计算终端节点i与雾节点j之间的信道增益Gij、数据传输速率rij和等效数据处理速率Rij;
S2.2、根据终端节点i与雾节点j之间等效数据处理速率R
ij、雾节点j的续航能力γ
j、雾节点j的历史平均能耗
计算终端节点i与雾节点j之间的势能
并且,步骤S2.1中:
计算终端节点i与雾节点j之间信道增益G
ij的公式为:
其中L
ij为终端节点i与雾节点j之间的路径损耗,且计算路径损耗L
ij的公式为:L
ij=38.46+20log
10(d
ij)。;
计算终端节点i与雾节点j之间数据传输速率r
ij的公式为:
计算终端节点i与雾节点j之间等效数据处理速率Rij的公式为:Rij=(1/rij+1/fj)-1。
步骤S2.2中:
由公式
可知,当雾节点j的计算速率越大,历史平均能耗越小,续航能力越强,与终端节点i之间的距离越近,则
越大。从个体角度出发,每个终端都会将任务卸载给使
取值最大的雾节点,即最佳雾节点。但雾节点一次只能服务一个用户,所以当多个终端的最佳雾节点为同一个时,会产生冲突。为解决这一冲突,实现雾节点与终端节点的一对一匹配,应从全局考虑,使整个网络的总势能最大。
因此,参照图4,步骤S3中包括步骤:
S3.1、,采用采用目标函数
进行建模,以使网络整体势能最大,其中x
ij∈{0,1}、
x
ij为0-1指示变量,当终端节点i的子任务分配给雾节点j时,x
ij=1,反之,x
ij=0。图中实线表示x
ij=1,虚线表示x
ij=0。所有任务分配情况构成M×N维的任务卸载决策矩阵X。
表明终端节点只能将任务卸载给一个雾节点,
表明每个雾节点每次最多服务一个终端节点。
S3.2、令终端节点i与雾节点j之间的权重为势能
利用Kuhn-Munkras算法求解公式
即可得到任务卸载决策矩阵X。KM算法的功能是求完备匹配下的最大权匹配。如果不存在完备匹配,那么算法就会求最大匹配,如果最大匹配有多种,那么结果是最大匹配中权重和最大的。
在步骤S4中包括步骤:
S4.1、在大多数情况下,计算结果是诸如控制信号之类的小数据包,因此可以忽略卸载至雾节点的子任务的计算结果的传输时间。根据卸载决策矩阵X,采用下式建模终端节点i的子任务的本地处理时延Dil和卸载至雾节点j的子任务处理时延Dij:
其中Qij表示终端节点i卸载至雾节点j的任务数据量,Qil表示终端节点i在本地进行处理的任务数据量,且Qij+Qil=Li;
S4.2、当终端节点i接收到所有子任务的计算结果后,才会做出下一步决策,因此终端节点i的任务处理时延Di定义为所有子任务的最大处理时延,即:
Di=max(Dij,Dil);
S4.3、根据使用户的任务处理时延最小这个优化目标,采用下面模型进行建模:
min[max(Dij,Dil)];
S4.4、对于公式min[max(Dij,Dil)],易证当两个子任务的处理时延相等时,总时延最小,由此解得Qij和Qil分别为:
在步骤S5中包括步骤:
其中
为更新前雾节点的历史平均能耗信息,
为更新后雾节点的历史平均能耗信息,α为遗忘指数且其值为远小于1的正数。
为了证明本发明的任务卸载结果的公平性,引入Jain公平指数来评估卸载方案的公平性,Jain公平指数F定义为:
Jain公平指数取值范围从1/N到1,当所有雾节点的历史平均能耗相同时取最大值,Jain公平指数取值越大,任务卸载方案的公平性越好。
本实施例对在多用户多雾节点场景下的基于公平的雾计算任务卸载方法进行仿真。假定终端节点与雾节点之间的带宽B
ij为10MHz,噪声功率密度为-100dBm/Hz。终端节点的任务数据量L
i∈[0.01,0.02]Mbits,终端节点的计算速率f
i为2Mbps,终端节点的发射功率
为1W。雾节点的续航能力γ
j∈[1,2],雾节点的计算速率f
j∈[3,7]Mbps,雾节点的计算功率
W。遗忘指数α为0.002。仿真任务数量为1000。终端节点数量为6,雾节点数量N在集合{10,15,20,25}中选择。雾节点数量变化的同时雾节点与终端节点的距离也会变。
为了提供直观的比较,本发明对传统任务卸载方法也进行仿真,仿真参数与上述相同。传统任务卸载方法是指终端节点在选择雾节点进行任务卸载时,只考虑雾节点的计算能力和距离,不考虑雾节点的历史平均能耗。在传统任务卸载方法中,终端节点i与雾节点j之间的势能
定义为:
参照图5,防真结果显示,在雾节点数量和位置发生变化时,本发明提出得任务卸载方法的Jain公平指数在0.9附近波动;传统任务卸载方法的Jain公平指数在0.55附近波动。
结果表明本发明提出的公平的雾计算任务卸载方法的公平性明显优于传统任务卸载方案,有效保证了雾节点能量消耗的均衡性。
实施例二:
参照图2,本发明还提供了一种基于公平的雾计算任务卸载***,包括信息获取模块、势能计算模块、矩阵获取模块、数据量计算模块以及能耗计算模块;
信息获取模块,用于获取整个网络的信息,信息包括各个雾节点的历史平均能耗信息;
势能计算模块,用于根据信息获取模块获取的信息,计算各终端节点与雾节点之间的势能;
矩阵获取模块,利用Kuhn-Munkras算法,以各终端节点与雾节点之间的势能为权值,并以网络整体势能最大为目标,求解终端节点与雾节点之间的一对一匹配,以作出任务卸载决策矩阵X;
数据量计算模块,用于以最小化任务处理时延为目标,计算终端节点卸载任务数据量;
能耗计算模块,用于计算本轮各雾节点的能耗,并更新各雾节点的历史平均能耗信息。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。