一种基于移动边缘计算的依赖型任务卸载方法及装置

文档序号:25543290发布日期:2021-06-18 20:40阅读:196来源:国知局
一种基于移动边缘计算的依赖型任务卸载方法及装置

本发明属于移动通信技术领域,具体涉及一种基于移动边缘计算的依赖型任务卸载方法,还涉及一种基于移动边缘计算的依赖型任务卸载装置。



背景技术:

移动边缘计算的出现解决了传统云计算响应时间长,数据泄露和通信延迟等问题,计算卸载作为移动边缘计算中的关键技术之一,近年来得到了广泛的关注。计算卸载是指资源受限的设备将资源密集型计算从移动设备部分或全部迁移到资源丰富的附近基础架构,由于mec环境的复杂性,影响卸载决策的因素众多,如何设计最优的卸载决策策略,以充分挖掘mec性能增益,是非常具有挑战性的科学问题。

近年来,国内外学者纷纷对移动边缘计算中的卸载策略展开了深入研究,文献1(通信学报,2020,41(7):141-151.)中提出基于信誉值的计算资源博弈分配模型,分别利用改进粒子群算法和拉格朗日乘数法求解。但此算法将应用当作整体,忽略了应用组成任务之间往往存在某种联系,减少了卸载机会,不利于资源的有效利用。文献2(软件学报,2020,31(06):1889-1908.)中提出了一种面向多用户的串行任务动态卸载策略,该策略遵循先来先服务的原则,采用化学反应优化算法动态调整任务的选择策略。该算法考虑到任务间的依赖性,但它忽略了任务的执行顺序对性能的影响,因为任务的差异性,即使是相同的卸载决策,在不同执行顺序下也会有不同的性能表现。文献3(2020ieeeinternationalconferenceonpervasivecomputingandcommunicationsworkshops,austin,tx,usa:ieee,2020:1-4.)中提出一种基于任务优先级的集中式算法,虽然算法强调了任务的执行顺序,建立了任务执行的完全并行性。但是对于多用户资源竞争,不能动态调整执行位置。

在现有技术范畴内,上述的卸载决策算法都存在一定的局限性,因而总结出现有的需要解决的难题有以下几点:

(1)为充分利用移动边缘计算环境下的计算资源,增加卸载机会,需要考虑细粒化的应用,分析组成任务间的依赖性;

(2)系统性能受任务执行顺序的影响,需要对任务的执行顺序进行合理的安排以最大化组合卸载的好处;

(3)系统性能受任务执行位置的影响,需要动态调整任务卸载的目的地以适应多用户间的资源竞争。



技术实现要素:

本发明的目的在于克服现有技术中的不足,对于现有研究大部分集中于全部卸载导致计算资源利用不充足,或者部分卸载中未兼顾完成时间和能耗等问题,提供了一种基于移动边缘计算的依赖型任务卸载方法,解决了现有技术所面对的高完成时间和高能耗技术问题。

为解决上述技术问题,本发明的技术方案如下。

第一方面,本发明提供了一种基于移动边缘计算的依赖型任务卸载方法,包括以下过程:

将移动终端上的应用形式化为多个任务组成的工作流,并用dag图表示,图中顶点表示任务,边表示任务之间的依赖关系;

遍历应用的dag图,依据遍历的深度将工作流中所有任务划分为不同调度层并确定各调度层的执行顺序;

为每个调度层内的各任务分配不同的优先级,依据任务的优先级顺序调整调度层内各任务执行顺序;

计算工作流中各任务的执行代价;

以应用的所有任务执行代价之和最小化为目标,按照任务执行顺序依次确定每个任务的卸载决策,所述卸载决策是指将任务卸载到移动终端、边缘服务器或云服务器执行。

可选的,采用广度优先搜索算法遍历应用的dag图。

可选的,所述依据遍历的深度将工作流中所有任务划分为不同调度层,包括:

寻找应用工作流的入口任务;

从入口任务开始,采用广度优先算法遍历应用的dag图,遍历的深度为每个任务分配调度编号,具有相同调度编号的任务划分为一个调度层。

可选的,所述寻找应用工作流的入口任务时,当存在多个入口任务时,加入虚拟任务节点,将虚拟任务节点与原多个入口任务节点连接形成新的dag图,以虚拟任务节点作为工作流的入口任务。

可选的,所述为各任务分配不同的优先级,包括:

定义调度层中不同任务的优先级为计算平均计算数据量的价值,公式为:

其中,表示任务vi的重要度,使用点中心度来衡量,wi表示任务vi的计算数据量。

可选的,所述依据任务的优先级顺序调整调度层内各任务执行顺序,包括:

将任务的优先级从大到小顺序作为调度层内各任务执行顺序。

可选的,计算工作流中各任务的执行代价,包括:

任务vi的完成时间由三部分组成:任务的卸载延迟tilat,任务计算时间tiexe和依赖任务间的数据传输时间ti',i,假设任务vi'是任务vi的前驱任务,卸载延迟tilat的计算公式为:

任务的计算时间tiexe表示为:

其中,wi是任务vi的计算数据量;

基于任务vi'和任务vi的卸载不同情况,依赖任务间的数据传输时间ti',i可以表示为:

其中,di',i表示任务间的传输数据量;stn表示卸载决策的不同情况:

其中,表示异或二进制运算,sq()和sz()函数分别返回卸载决策对应计算资源的类型值q和编号值z,当q=0时表示移动终端计算资源,当q=1时表示边缘端服务器计算资源,当q=2时表示云端服务器计算资源;st1表示任务vi'与任务vi卸载到不同的边缘服务器,st2表示任务vi'与任务vi卸载到不同的云服务器,st3表示任务vi'与任务vi分别卸载到移动终端和边缘服务器,st4表示任务vi'与任务vi分别卸载到移动终端和云服务器或分别卸载到边缘服务器和云服务器,st5表示任务vi'与任务vi的执行位置完全相同时用;

任务的完成时间表示为efti=esti+tiexe,令efti表示任务vi的最早完成时间,esti为任务vi的最早开始时间,tiexe为任务vi的计算时间;其中,表示当任务vi决定卸载时资源服务器的最早空闲时间,pre(vi)表示任务vi的前驱任务,efti表示任务vi的最早完成时间;

移动终端的任务能耗由两部分组成:执行能耗和传输能耗,对于执行能耗,由于移动终端包括执行和空闲两个状态,所以执行能耗可以表示为:

其中,tiwait为任务vi等待时间;

传输能耗只有当卸载决策与移动终端即本地执行相关时才会产生,当任务vi'和任务vi其中一个任务在本地执行,另外一个任务卸载所产生的能耗表示为:

因此,任务vi总的能耗可以表示为:

从而将任务vi的执行代价定义为:

其中,til分别是移动终端应用任务vi在移动终端上计算时的完成时间和能耗;ξ是衡量应用完成时间和移动终端能耗重要性的权重因子。

可选的,所述目标为:

目标函数表达为:

s.t.c1:

c2:

其中,xi为每个任务的卸载决策,esti为任务的最早开始时间,efti为任务的最早完成时间,ti',i为依赖任务间的数据传输时间,xm为应用程序中输出任务vm的卸载策略,m为任务数量;

限制条件c1保证计算任务只有等待其前驱任务执行完成后才开始执行;限制条件c2表明应用的输出任务只能在本地执行。

可选的,所述以应用的所有任务执行代价之和最小化为目标,按照任务执行顺序依次确定每个任务的卸载决策,包括:

以应用的所有任务执行代价之和最小化为目标,按照调度层执行顺序逐层采用蚁群算法求解所述目标,按照任务执行顺序依次确定每个任务的卸载决策。

可选的,所述采用蚁群算法求解所述目标,按照任务执行顺序依次确定每个任务的卸载决策,包括:

步骤1:构建可行解中引入伪随机比例选择规则,此处每只蚂蚁的可行解解指该蚂蚁所得到的卸载决策,求解蚂蚁编号临界值:

其中,k表示蚂蚁数量;都表示服务器资源,q、q'表示服务器类型编号,z、z′表示服务器编号;xi表示任务vi的卸载决策;alloweds表示移动边缘计算环境下可用的计算资源;为卸载决策xi中选择服务器资源和服务器资源的路径信息素强度;表示信息素强度最高路径即最优路径;为信息素强度的积累值;

步骤2:若蚂蚁编号小于等于蚂蚁编号临界值,根据最优路径上的卸载决策确定任务卸载位置,若蚂蚁编号大于蚂蚁编号临界值,计算转移概率,根据轮盘赌原则选择任务执行位置;

转移概率的计算公式为:

其中,α和β分别表示信息素和启发因子加权值;为卸载决策xi选择服务器时的路径信息素强度;为卸载决策xi选择计算资源的启发因子,取任务执行代价的倒数,使得执行代价值越大,路径信息素强度更新越小k表示蚂蚁编号;ki表示蚂蚁编号临界值;表示任务vi的卸载决策xi选择的服务器也就是任务vi的执行位置;表示路径信息素强度最大上的服务器选择;表示转移概率;

当迭代次数增加时,最优路径上的信息素强度会增加,由蚂蚁编号临界值的计算公式可以看出蚂蚁编号临界值也会呈现逐渐变大的趋势。迭代初期较小的蚂蚁编号临界值可以确保大部分蚂蚁根据转移概率,并通过轮盘赌选择任务执行位置,确保了可行解的多样性,迭代后期较大的蚂蚁编号临界值使得大部分蚂蚁选择最优路径,加快了算法的收敛;

步骤3:计算每只蚂蚁的社会值socialk,比较社会值socialk与设定阈值social的大小,若socialk≥social,则蚂蚁为兵蚁,分配较大的权重系数进行局部信息素更新;若socialk<social,则蚂蚁为工蚁,分配较小的权重系数进行局部信息素更新;

信息素强度更新的公式为:

其中,k表示蚂蚁编号,socialk表示每只蚂蚁的社会值,由本次迭代最优路径上决策的任务执行代价costiter和蚂蚁k对应决策的任务执行代价costk来决定,costiter和costk的值依据蚂蚁对当前调度层中所有任务的卸载决策,根据上述步骤中任务的执行代价计算公式可得;为卸载决策xi选择服务器时的路径信息素强度;social表示阈值;ρl表示局部信息素挥发系数,σ1和σ2分别表示兵蚁和工蚁的更新权重系数,且σ1>σ2;表示信息素强度变量,用任务vi的卸载决策xi选择不同计算资源时任务执行代价的倒数来计算。

步骤4:选出本次迭代最优路径,融入奖惩系数进行全局信息素更新:

其中,为卸载决策xi选择服务器时的路径信息素强度;ρg表示全局信息素挥发系数;和costbest分别表示至今最优卸载决策上的信息素强度变量和执行代价;ε和δ分别表示不同的奖惩系数;costiter表示本次迭代最优路径上决策对应的任务执行代价。当costiter>costbest时,ε>1,说明本次迭代最优路径即本次迭代最优卸载决策对应的任务执行代价大于至今最优卸载决策上得到的全局最小执行代价,根据奖惩系数给对应策略予以“惩罚”,增大蚂蚁的开发能力,提高种群多样性。当costiter<costbest时,ε<1,说明本次迭代最优卸载决策对应的任务执行代价小于至今最优卸载决策上得到的全局最小执行代价,根据奖惩系数给对应策略予以“奖励”,加强该路径的信息素强度,加快收敛。随着迭代次数的增加,可能会出现ε=1的情况,为了避免陷入局部最优,引入另一个奖惩系数δ,主要对本次迭代最优卸载决策予以“惩罚”,增大对其他决策的搜索能力。

步骤5:采用sigmoid函数,动态调整全局信息素浓度的挥发:

其中,表示最大信息素挥发系数;θ表示常数,且θ∈(0,1);t为迭代次数。

步骤6:循环迭代,最终得到应用所有组成任务的最优卸载决策。

第二方面,本发明还提供了一种基于移动边缘计算的依赖型任务卸载装置,包括:

工作流转化模块,用于将移动终端上的应用形式化为多个任务组成的工作流,并用dag图表示,图中顶点表示任务,边表示任务之间的依赖关系;

调度层划分模块,用于遍历应用的dag图,依据遍历的深度将工作流中所有任务划分为不同调度层并确定各调度层的执行顺序;

任务顺序调整模块,用于为每个调度层内的各任务分配不同的优先级,依据任务的优先级顺序调整调度层内各任务执行顺序;

执行代价计算模块,用于计算工作流中各任务的执行代价;

卸载决策计算模块,用于以应用的所有任务执行代价之和最小化为目标,按照任务执行顺序依次确定每个任务的卸载决策。

与现有技术相比,本发明所达到的有益效果是:移动终端的执行代价显著减少,充分利用了计算资源,有效保证了服务质量,降低了应用的完成时间和移动终端的能耗。

附图说明

图1示出本发明实施例的云边端协同架构;

图2示出本发明实施例的基于移动边缘计算的依赖型任务卸载策略流程图;

图3示出本发明实施例的安排任务执行顺序的流程图;

图4示出本发明实施例的动态调整执行位置的流程图。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

实施例1

本发明实施例为如图1所示的云边端协同架构,假设移动终端拥有单个应用程序需要执行,应用程序可以根据它的需求和当前网络的状态确定其任务是否卸载(注意,有一些不可卸载的任务部分不能卸载)。用集合s={scld,sedg,sdev}表示环境中的计算资源,其中若环境中存在c个云服务器,表示云中所有计算资源;若环境中存在r个边缘服务器,表示边缘端所有的计算资源;移动终端中存在服务器用sdev表示,这里只考虑单个移动终端,所以集合中单个服务器资源用表示,其中z表示服务器编号,取值1,2…,q表示服务器类型,取值为0表示移动终端,取值为1表示边缘服务器,取值为2表示云端服务器。

移动终端可表示为一个四元组l={fl,pidle,pcomp,ptransfer},其中,fl为移动设备的计算能力;pidle和pcomp分别是移动设备的cpu在空闲状态和工作状态下的功率;ptransfer为移动设备的传输功率。边缘服务器可表示为一个三元组vmedg={fedg,blan,llan},其中,fedg为边缘服务器计算能力,blan为局域网lan的带宽,llan为局域网lan的延迟。云服务器可表示为一个三元组vmc={fcld,bwan,lwan},其中,fcld为云服务器计算能力,bwan为广域网wan的带宽,lwan为局域网wan的延迟。

在研究任务的卸载模型时,不同于以往与全部卸载相关的研究,模型中考虑到存在依赖关系的任务间数据传输所需时间和能耗,在完成时间和能耗上加权求和作为执行代价函数,并以最小化执行代价为目标。

因此,构建基于用户应用完成时间和能耗的执行代价函数,是本发明实施的先决条件。引入决策机制x={x1,x2,...,xi,...,xm},其中xi为应用程序中任务vi的卸载策略。卸载策略表示任务和计算资源的服务映射,当xi∈sdev时,表示任务vi分配给移动终端;当xi∈sedg时,表示任务vi卸载到边缘服务器;当xi∈scld时,表示任务vi卸载到云服务器。

第一方面,本发明的一种基于移动边缘计算的依赖型任务卸载方法,参见图2所示,包括以下过程:

步骤s1:考虑到移动终端上的应用一般都由多个任务组成,为表达不同任务之间的依赖关系,将应用形式化为工作流,用dag图(有向无环图)表示,图中顶点表示任务,边表示任务之间的依赖关系。

步骤s2:通过广度优先搜索算法遍历应用dag图结构,为工作流中每个组成任务分配调度编号,相同调度编号的任务划分为同一个调度层,所有调度层形成调度列表。对于不同调度层的任务按照调度层编号顺序执行以保证任务间的依赖关系。

具体步骤为:

步骤s2.1:寻找应用程序工作流的入口任务,当存在多个入口任务时,加入虚拟任务节点v0,将虚拟任务节点v0与原多个入口任务节点连接形成新的dag图,以虚拟任务节点v0作为工作流的入口任务,保证最后的dag图拥有单个入口任务以便进行遍历。

步骤s2.2:从入口任务开始,采用广度优先算法遍历新dag图,基于任务所属dag图的层数(遍历的深度)为每个组成任务分配调度编号s,调度层sls就是将所有具有相同调度编号s的任务存储在二维数组列表的同一行中,所有调度层形成调度列表sl={sls|1≤s≤s},其中s代表调度层数的最大值,具体的调度编号取值范围根据实际dag图结构的层数确定。

步骤s3:给任务分配不同优先级,对于同一调度层中的任务根据优先级的定义从大到小依次排序以进一步调整任务执行顺序。

调度层中各任务执行顺序调整步骤参见图3所示,具体包括:

步骤s3.1:定义调度层中不同任务的优先级,实际意义为计算平均计算数据量的价值,公式为:

其中,表示任务vi的重要度,使用点中心度来衡量,点中心度指一个任务节点与其他任务节点的连接的总和,一个任务节点的点中心度越大说明这个任务节点越重要;wi表示任务的计算数据量。

步骤s3.2:根据优先级的定义将调度层中的任务按照从大到小的顺序排序,平均计算价值量越高,就说明优先级越高,任务就越早执行。

步骤s4:根据移动终端的应用需求,计算工作流中各个任务的执行代价,以便在后续卸载决策中根据移动终端各任务的执行代价,获得应用工作流中各个任务的卸载决策。

选取实际场景中人脸识别作为移动终端应用,将应用表达为工作流后,任务vi的完成时间由三部分组成:任务的卸载延迟tilat,任务计算时间tiexe和依赖任务间的数据传输时间ti',i,假设任务vi'是任务vi的前驱任务,卸载延迟tilat的计算公式为:

任务的计算时间tiexe表示为:

其中,wi是任务vi的计算数据量。

因为任务间不同的卸载决策都会对传输时间产生影响,所以基于任务vi'和任务vi的卸载不同情况,依赖任务(任务vi'与任务vi)间的数据传输时间ti',i可以表示为:

其中,di',i表示任务间的传输数据量;stn表示卸载决策的不同情况:

其中,表示异或二进制运算,sq()和sz()函数分别返回卸载决策对应计算资源的类型值q和编号值z,当q=0时表示移动终端计算资源,当q=1时表示边缘端服务器计算资源,当q=2时表示云端服务器计算资源。st1表示任务vi'与任务vi卸载到不同的边缘服务器,st2表示任务vi'与任务vi卸载到不同的云服务器,st3表示任务vi'与任务vi分别卸载到移动终端和边缘服务器,st4表示任务vi'与任务vi分别卸载到移动终端和云服务器或分别卸载到边缘服务器和云服务器,st5表示任务vi'与任务vi的执行位置完全相同时用。

当计算出任务的卸载延迟,计算时间和数据传输时间后,任务的完成时间可表示为efti=esti+tiexe,令efti表示任务vi的最早完成时间,esti为任务vi的最早开始时间,tiexe为任务vi的计算时间。其中,表示当任务vi决定卸载时资源服务器的最早空闲时间,pre(vi)表示任务vi的前驱任务,efti表示任务vi的最早完成时间。

移动终端的任务能耗由两部分组成:执行能耗和传输能耗,对于执行能耗,由于移动终端包括执行和空闲两个状态,所以执行能耗可以表示为:

其中,tiwait为任务vi等待时间。

传输能耗只有当卸载决策与移动终端即本地执行相关时才会产生,当任务vi'和任务vi其中一个任务在本地执行,另外一个任务卸载所产生的能耗表示为:

因此,任务vi总的能耗可以表示为:

用户将任务卸载的目的是获得比本地更好的性能,以符合用户对低时延低能耗的期待。从而将任务vi的执行代价定义为:

其中,til分别是移动终端应用任务vi在本地(即移动终端上)计算时的完成时间和能耗;ξ是衡量应用完成时间和移动终端能耗重要性的权重因子,当移动终端的电量较低时,权重因子设定偏小,以注重能耗方面的损失,当任务对完成时间要求较高时,权重因子设定偏大,以确保任务尽快完成,为了均衡这里取值为0.5。

应用执行代价为:

其中,m为任务数量。

综上所述,计算任务卸载问题可以转化为应用执行代价最小化问题,执行代价为任务完成时间和终端能耗的加权和,为得到应用各组成任务的最优卸载决策以最小化应用执行代价,目标函数表达为:

s.t.c1:

c2:

其中,xi为每个任务的卸载决策,esti为任务的最早开始时间,efti为任务的最早完成时间,ti',i为依赖任务间的数据传输时间,xm为应用程序中输出任务vm的卸载策略,m为任务数量。

限制条件c1保证计算任务只有等待其前驱任务执行完成后才开始执行。根据系统模型,应用程序的输出任务一般都负责收集其他组成任务的执行结果并返回移动终端,限制条件c2表明应用的输出任务只能在本地执行。

步骤s5:对上述步骤得到的调度列表中不同的调度层逐一采用改进蚁群算法,以最小化应用执行代价为目标动态调整任务执行位置以得到最优卸载决策。

采用改进蚁群算法求解任务执行位置具体步骤参见图4所示,具体步骤为:

步骤s5.1:构建可行解中引入伪随机比例选择规则,此处每只蚂蚁的可行解解指该蚂蚁所得到的卸载决策,求解蚂蚁编号临界值:

其中,k表示蚂蚁数量,设为20;都表示服务器资源,q、q'表示服务器类型编号,z、z′表示服务器编号;xi表示任务vi的卸载决策;alloweds表示移动边缘计算环境下可用的计算资源;为卸载决策xi中选择服务器资源和服务器资源的路径信息素强度;表示信息素强度最高路径即最优路径;为信息素强度的积累值。

步骤s5.2:若蚂蚁编号小于等于蚂蚁编号临界值,根据最优路径上的卸载决策确定任务卸载位置,若蚂蚁编号大于蚂蚁编号临界值,计算转移概率,根据轮盘赌原则选择任务执行位置;

转移概率的计算公式为:

其中,α和β分别表示信息素和启发因子加权值;为卸载决策xi选择服务器时的路径信息素强度;为卸载决策xi选择计算资源的启发因子,取任务执行代价的倒数,使得执行代价值越大,路径信息素强度更新越小k表示蚂蚁编号;ki表示蚂蚁编号临界值;表示任务vi的卸载决策xi选择的服务器也就是任务vi的执行位置;表示路径信息素强度最大上的服务器选择;表示转移概率。

当迭代次数增加时,最优路径上的信息素强度会增加,由蚂蚁编号临界值的计算公式可以看出蚂蚁编号临界值也会呈现逐渐变大的趋势。迭代初期较小的蚂蚁编号临界值可以确保大部分蚂蚁根据转移概率,并通过轮盘赌选择任务执行位置,确保了可行解的多样性,迭代后期较大的蚂蚁编号临界值使得大部分蚂蚁选择最优路径,加快了算法的收敛。

步骤s5.3:计算每只蚂蚁的社会值socialk,比较社会值socialk与设定阈值social的大小,若socialk≥social,则蚂蚁为兵蚁,分配较大的权重系数进行局部信息素更新;若socialk<social,则蚂蚁为工蚁,分配较小的权重系数进行局部信息素更新;

信息素强度更新的公式为:

其中,k表示蚂蚁编号,socialk表示每只蚂蚁的社会值,由本次迭代最优路径上决策的任务执行代价costiter和蚂蚁k对应决策的任务执行代价costk来决定,costiter和costk的值依据蚂蚁对当前调度层中所有任务的卸载决策,根据上述步骤中任务的执行代价计算公式可得;为卸载决策xi选择服务器时的路径信息素强度;social表示阈值;ρl表示局部信息素挥发系数,σ1和σ2分别表示兵蚁和工蚁的更新权重系数,且σ1>σ2;表示信息素强度变量,用任务vi的卸载决策xi选择不同计算资源时任务执行代价的倒数来计算。

步骤s5.4:选出本次迭代最优路径,融入奖惩系数进行全局信息素更新:

其中,为卸载决策xi选择服务器时的路径信息素强度;ρg表示全局信息素挥发系数;和costbest分别表示至今最优卸载决策上的信息素强度变量和执行代价;ε和δ分别表示不同的奖惩系数;costiter表示本次迭代最优路径上决策对应的任务执行代价。当costiter>costbest时,ε>1,说明本次迭代最优路径即本次迭代最优卸载决策对应的任务执行代价大于至今最优卸载决策上得到的全局最小执行代价,根据奖惩系数给对应策略予以“惩罚”,增大蚂蚁的开发能力,提高种群多样性。当costiter<costbest时,ε<1,说明本次迭代最优卸载决策对应的任务执行代价小于至今最优卸载决策上得到的全局最小执行代价,根据奖惩系数给对应策略予以“奖励”,加强该路径的信息素强度,加快收敛。随着迭代次数的增加,可能会出现ε=1的情况,为了避免陷入局部最优,引入另一个奖惩系数δ,主要对本次迭代最优卸载决策予以“惩罚”,增大对其他决策的搜索能力。

步骤s5.5:采用sigmoid函数,动态调整全局信息素浓度的挥发:

其中,表示最大信息素挥发系数;θ表示常数,且θ∈(0,1);t为迭代次数。

步骤s5.6:对调度列表中不同的调度层逐一采用改进蚁群算法后,最终可以得到应用程序所有组成任务的最优卸载决策。

综上所述,采用蚁群算法求解目标函数的具体步骤为:

(1)对调度列表中各调度层逐一采用算法,在当前调度层中,对算法涉及到的蚂蚁数量,最大迭代次数,信息素强度和上一调度层的卸载决策进行初始化;

(2)开始迭代,计算每次迭代中每个任务对应的蚂蚁编号临界值;

(3)若蚂蚁编号小于等于任务对应的蚂蚁编号临界值,任务根据最优路径上的卸载决策确定任务执行位置,若蚂蚁编号大于任务对应的蚂蚁编号临界值,计算转移概率,任务根据轮盘赌原则选择任务执行位置;

(4)计算蚂蚁社会值,根据社会值与设定阈值的大小比较结果,分别分配较大和较小的权重系数进行局部信息素更新;

(5)选出本次迭代最优路径,融入奖惩系数进行全局信息素更新;

(6)迭代完成后记录当前调度层的卸载决策。

与现有技术相比,本发明具有如下显而易见的突出实质性特点和显著的优点:

1)本发明考虑到移动终端应用中各组成任务的依赖关系,相比于整体卸载策略的全部卸载或者全部本地执行,组成任务可以自由选择卸载决策,有利于移动边缘计算环境中资源的充分利用;

2)本发明考虑了任务执行顺序对应用性能的影响,通过划分调度层和分配优先级,为卸载决策做好了准备。由于调度层的划分是依据广度优先搜索的遍历结果,相同调度层中任务为不受依赖关系影响的可并行任务,所以通过划分调度层可以最大化并行执行的任务数量,按照调度层大小依次进行卸载决策也能够使依赖任务间的顺序执行得以满足。由于应用程序并行任务之间具有差异性,不同的执行位置也可能会造成不同的任务完成时间和移动终端能耗,所以给同一调度层中各任务分配优先级也可以进一步减小任务完成时间和移动终端能耗;

3)本发明采用改进后的蚁群算法,避免了传统蚁群收敛速度慢、易陷入局部最优的缺点。通过改进后的蚁群算法,任务的执行位置可以动态调整以最小化执行代价,相比于随机卸载可以获得更低的完成时间和能耗,更好的保障了用户体验。

实施例2

第二方面,本发明的一种基于移动边缘计算的依赖型任务卸载装置,包括:

工作流转化模块,用于将移动终端上的应用形式化为多个任务组成的工作流,并用dag图表示,图中顶点表示任务,边表示任务之间的依赖关系;

调度层划分模块,用于遍历应用的dag图,依据遍历的深度将工作流中所有任务划分为不同调度层并确定各调度层的执行顺序;

任务顺序调整模块,用于为每个调度层内的各任务分配不同的优先级,依据任务的优先级顺序调整调度层内各任务执行顺序;

执行代价计算模块,用于计算工作流中各任务的执行代价;

卸载决策计算模块,用于以应用的所有任务执行代价之和最小化为目标,按照任务执行顺序依次确定每个任务的卸载决策。

本发明装置中各模块的具体实现方案参见方法的具体实现步骤过程。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1