基于化学反应优化算法的多用户计算卸载方法及装置与流程

文档序号:14179182阅读:321来源:国知局
基于化学反应优化算法的多用户计算卸载方法及装置与流程

本发明属于移动云计算技术领域,涉及一种移动边缘计算中的多用户计算卸载和资源分配方法,具体涉及一种基于化学反应优化算法的多用户计算卸载方法及装置。



背景技术:

据思科视觉网络指数预测,到2021年,全球移动数据流量每月将达到49艾字节(eb),这对移动终端的性能和移动网络的数据传输率提出了新的要求。此外,一类新的应用程序也应运而生,诸如人脸识别、移动增强现实等,这类应用对延迟比较敏感,且需要大量的资源。然而,移动终端的计算和存储资源有限,尤其是电池的续航周期较短,运行这类应用程序会带来较高的延迟,增加移动终端的能耗。

移动云计算(mobilecloudcomputing,mcc)的出现为解决这些问题提供了一种有效方式,通过计算卸载(也称计算迁移)将应用程序的部分计算任务卸载到远程云端,减少了应用程序的完成时间,延长了移动终端的续航能力。然而,在传统移动云计算中,移动终端通过移动网络与远程公有云连接,如阿里云、腾讯云等,集中式部署的远程公有云距离移动终端较远,在两者之间通过移动网络进行数据传输往往会带来比较高的网络延迟,为解决延迟高的问题,诞生一种新的计算模式----移动边缘计算(mobileedgecomputing,mec),在移动终端的网络边缘部署边缘服务器,将远程云端提供的服务延伸到距离移动终端更近的位置,移动终端便能够利用边缘服务器强大的资源,并以较低的网络延迟与边缘服务器进行数据传输。

在移动边缘计算的计算卸载方法中,大多数方法在多用户计算卸载环境存在一定的局限性,当有大量终端向边缘服务器提交卸载请求时,边缘服务器会为请求做出卸载决策并分配合理的资源,但由于边缘服务器部署在移动终端的网络边缘,计算和存储等资源有限,不能总是立即为请求分配资源,同时用户之间的卸载策略会相互影响。因此,针对在边缘服务器资源受限的计算卸载问题,如何减少应用的完成时间和降低终端的能量消耗亟待解决。



技术实现要素:

为了解决上述技术问题,本发明提出了一种基于化学反应优化算法的多用户计算卸载方法及装置,克服了多用户计算卸载场景中用户之间卸载策略相互影响的问题,减少了所有应用程序的完成时间和降低移动终端的能量消耗。

本发明的方法所采用的技术方案是:一种基于化学反应优化算法的多用户计算卸载方法,其特征在于,包括以下步骤:

步骤1:多用户向边缘服务器提交计算卸载请求,计算卸载装置收集移动终端和边缘服务器的实时信息;

步骤2:建立应用完成时间模型、终端能耗模型和调度器模型,并对完成时间和能耗所占的权重值进行调整;

步骤3:根据实时信息和建立的模型采用基于化学反应优化算法的多用户计算卸载方法对应用做出选择决策,得到应用程序近似最优结果;

步骤4:将边缘服务器的最新状态信息反馈到计算卸载系统和调度器。

本发明的系统所采用的技术方案是:一种基于化学反应优化算法的多用户计算卸载装置,其特征在于:包括计算卸载模块和资源分配模块;

所述计算卸载模块包括资源监测子模块、卸载决策子模块;所述资源监测子模块用于负责收集移动终端信息和边缘服务信息,移动终端信息包括cpu负载、电池剩余电量、网络带宽、内存使用率,边缘服务器信息包括cpu负载、内存使用率;所述卸载决策子模块用于对应用进行建模,并根据建立的模型和资源监测子模块收集的信息,采用基于化学反应优化算法的计算卸载方法为应用做出卸载决策,确定应用程序的每个组件是在本地执行还是卸载到边缘服务器;

所述资源分配模块,用于实现任务调度功能;对于卸载到边缘服务器的组件,需要进行资源分配,资源分配模块中维护着一个全局队列,卸载到边缘服务器的组件首先按到达顺序保存在该队列中,然后调度器会根据调度策略从队列中取出任务,并为其分配合理的虚拟机资源。

本发明提供的基于化学反应优化算法的多用户计算卸载方法及装置,计算卸载装置的资源监测模块通过收集移动终端和边缘服务器的实时信息,并采用经典排队论对卸载边缘服务器的组件的时间模型进行建模,而后卸载决策模块根据收集的实时信息和建立的模型,对应用完成时间和终端能耗所占的权重值进行调整,并采用基于化学反应优化算法的多用户计算卸载方法为应用做出选择决策,得到应用的近似最优结果,以减少应用的完成时间和降低终端的能量消耗。

附图说明

图1是本发明实施例的方法流程图;

图2是本发明实施例的装置原理图;

图3是本发明实施例的应用程序结构对应分子结构的示意图;

图4是本发明实施例的化学反应优化算法的单分子碰撞的具体设计示意图;

图5是本发明实施例的化学反应优化算法的单分子分解的具体设计示意图;

图6是本发明实施例的化学反应优化算法的分子间碰撞的具体设计示意图;

图7是本发明实施例的化学反应优化算法的分子合成的具体设计示意图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

请见图1,本发明提供的一种基于化学反应优化算法的多用户计算卸载方法,包括以下步骤:

步骤1:多用户向边缘服务器提交计算卸载请求,计算卸载装置收集移动终端和边缘服务器的实时信息;

实时信息包括移动终端的cpu负载、当前电量、网络带宽等信息和边缘服务器上虚拟机的状态信息。

步骤2:建立应用完成时间模型、终端能耗模型和调度器模型,并对应用完成时间和终端能耗所占的权重值进行调整;

(1)应用完成时间模型。完成时间是评价应用性能的一个重要指标,表示应用程序从数据输入到结果输出整个过程所需的时间,主要包括组件的计算时间和数据传输时间,计算方式如下:

makespani=tcomp+tcomm(1)

其中tcomp表示应用所有组件的计算时间,tcomm表示应用组件之间的传输时间。

(2)终端能耗模型。移动终端包括多个组件,如屏幕、cpu、蓝牙、gps、rom、ram、网络接口等,本发明主要考虑移动终端cpu和网络接口产生的能耗,其中,单个终端的能耗计算方式如下:

其中,分别表示cpu处于工作状态和空闲状态下的能耗,分别表示网络接口处于数据发送状态、数据接收状态和空闲状态下的能耗。

(3)调度器模型。对于卸载到边缘服务器的组件,由于组件之间具有顺序执行的特点,一个应用若有多个组件卸载到边缘服务器,则可以把该移动终端提交的卸载请求看作是一个独立任务,多个应用的任务到达边缘服务器的时间间隔相互独立,且服从泊松分布,即在时间t内到达k个任务概率为:

p=λtk·e-λt/k!(3)

其中λ为时间t内到达的任务数。边缘服务器上有m个虚拟机,用vms={vm1,vm2,……,vmm}表示所有的虚拟机集合,每个虚拟机都维护一个局部的任务队列,且对任务的服务时间相互独立。

应用完成时间和终端能耗作为计算卸载的性能评价指标,属于典型的多目标优化问题,将两个不同量纲的目标进行归一化处理,并采用线性加权的方式将双目标转化为单一目标。分别用α和β表示应用完成时间和终端能耗的比例所占权重,其取值由移动终端的当前可用电量决定,α,β∈(0,1),且满足α+β=1。当终端电量充足时,以应用完成时间作为主要优化目标,参数设置条件为α>β;当电量不足时,主要优化移动终端能耗,参数设置条件为α<β。

步骤3:根据实时信息和建立的模型采用基于化学反应优化算法的多用户计算卸载方法对应用做出选择决策,得到应用程序近似最优结果;

基于化学反应优化算法的多用户计算卸载方法,其中,建立了多用户计算卸载中资源分配的系统模型。对于卸载到边缘服务器的组件,采用经典排队论对组件的时间进行建模,包括:

应用组件若在边缘服务器执行,由于边缘服务器资源有限,需要考虑组件之间的等待时间。对于应用i的组件(i,j),如果没有前驱组件在边缘服务器上执行,由于应用之间对边缘服务器资源的竞争使用,则需要考虑等待时间,反之,则不需要考虑等待时间。用sti,j、fti,j分别表示组件(i,j)的开始执行时间和结束时间,组件(i,j)的开始执行时间可以表示为:

其中waiti,v表示应用i在虚拟机v中的等待时间,其等待时间的长短主要取决于虚拟机v中排队在应用i之前的应用的服务时间之和。这里用servicek,v表示应用k在虚拟机v上的服务时间,每个应用维护一个链表listk,表示应用k卸载到边缘服务器上的组件的集合。则应用i的等待时间可以通过如下公式得到:

表示组件(i,j)在边缘服务器上的执行时间,此时,组件(i,j)对应的完成时间:

本发明实施例提供的基于化学反应优化算法的多用户计算卸载方法,其过程包含候选虚拟机选择阶段、初始化阶段、迭代阶段和结束阶段。对于有n个串行组件组成的应用程序,每个组件的计算任务不同,将不同的组件进行计算卸载,决定组件是在本地执行还是边缘服务器执行。本发明的目的就是通过计算卸载为应用做出近似最优的卸载决策,最小化所有应用的完成时间和终端的能量消耗。本实施方法包括:

(1)候选虚拟机选择阶段;

计算卸载装置的计算卸载模块根据收集到的终端信息和边缘服务器信息,比较边缘服务器上所有虚拟机的负载情况,选择可以最早开始执行任务的虚拟机作为候选虚拟机,即接下来的应用组件卸载到边缘服务器的位置,然后采用化学反应优化算法为应用做出近似最优的卸载决策,使得在减少应用完成时间的同时降低终端能耗。

(2)初始化阶段;

在初始化阶段,确定分子种群数量popsize,算法的最大迭代次数maxiter,分子间发生反应的概率molecoll。本发明结合化学反应优化算法,将计算卸载问题通过分子编码进行处理。首先随机生成包含popsize个分子结构,每个分子结构包括5个原子。图3是移动应用程序的结构及其对应的分子结构,将分子结构表示成应用程序的卸载策略s,分子中每个原子的值代表组件的卸载位置,用xi,j表示组件的卸载位置,xi,j的取值为0或1,xi,j=0表示组件在本地执行,xi,j=1表示组件卸载到边缘服务器执行。一种可能的分子结构s={1,1,0,1,0},表示组件3,5在移动终端上执行,组件1,2,4卸载到边缘服务器执行。

(3)操作算子设计阶段;

化学反应优化算法包括四种基本操作算子,分别是单分子碰撞、单分子分解、分子间碰撞和分子间合成。不同的操作算法会对分子结构产生一定的变化,其中单分子碰撞和分子间碰撞对原分子结构改变较小,旨在原卸载策略的邻域空间搜索更优的卸载策略,而单分子分解和分子合成则提供搜索更大解空间的机会,避免卸载策略过早地陷入局部最优解。四种基本操作算子的具体设计如下:

单分子碰撞的具体设计如图4所示,从原分子s中随机选择一个原子,改变其执行位置,剩余部分保留不变。对应到卸载策略中,原先的卸载策略经过单分子碰撞后,随机改变应用某个组件的执行位置,产生新的卸载策略。

单分子分解的具体设计如图5所示,在原分子中随机选择一个分解点point,新分子s1保留原分子s的[start,point]部分的原子,新分子s2保留原分子s的[point,end]部分的原子,s1和s2剩余的原子位随机生成。对应到卸载策略中,原卸载策略经过单分子分解,随机选择一个组件作为分解点,将分解点的前部分组件和后部分组件分别保留到两个新分子的对应位置,剩余组件的执行位置随机产生,从而得到新的卸载策略。

分子间碰撞的具体设计如图6所示,从原分子中选择两个碰撞点point1和point2,交换原分子s1和s2对应碰撞点的原子的值,形成新的分子。对应到卸载策略中,原卸载策略经过分子间碰撞,随机交换两个卸载策略中对应两个组件的执行位置,得到两个新的卸载策略。

分子合成的具体设计如图7所示,随机生成一个合成点point,新分子继承原分子s1的[start,point]部分的原子和原分子s2的[point,end]部分的原子。对应到卸载策略中,原卸载策略经过分子合成后,随机选择一个组件作为合成点,将第一种卸载策略的合成点的前部分组件和第二种卸载策略对应合成点的后部分组件保留,合成后得到新的卸载策略。

(4)迭代阶段;

迭代阶段是化学反应优化算法的核心过程,目的是寻求全局最优解。迭代阶段将进行maxiter次迭代,在每一次迭代过程中,从四种基本操作算子中选择一种操作发生反应。在初始化阶段知道分子间发生反应的概率为molecoll,迭代过程中生成一个随机数t∈(0,1),如果t>molecoll便发生单分子反应,否则发生分子间反应。单分子反应时,随机选择一个分子,如果分子满足分解条件,则发生单分子分解操作,否则发生单分子碰撞操作,单分子反应结束后更新策略集strategies。分子间反应时,随机选择一对分子,判断分子对中每个分子是否同时满足分子合成操作,如果满足则发生单分子合成操作,否则发生分子间碰撞操作,分子间反应结束后更新策略集strategies。

(5)结束阶段;

迭代过程结束,分子种群中的分子进入相对稳定的状态,此时,从分子种群中选择适应度值最小的分子,作为应用的近似最优卸载策略。其中,适应度值的计算方法如下:

其中tmax和tmin分别代表分子种群中所有分子对应的应用完成时间的最大值和最小值,emax和emin分别代表分子种群中所有分子对应的终端能耗的最大值和最小值。α和β分别代表应用完成时间和移动终端能耗的比例所占权重,其取值主要由移动终端的可用电量来决定,α,β∈(0,1),且满足α+β=1。当移动终端电量充足时,应用完成时间为主要优化目标,参数设置条件为α>β;当电量不足时,主要优化终端能耗,参数设置条件为α<β。

步骤4:将边缘服务器的最新状态信息反馈到计算卸载系统和调度器。

计算卸载装置为应用做出卸载决策后,会获取边缘服务器上虚拟机的最新状态信息,并通过反馈机制将状态信息反馈给计算卸载模块和调度器模块,以便为后到达的应用程序做出近似最优的计算卸载和资源分配决策。

本实施例在组件之间数据传输过程中,若有前驱后继关系的两个组件在同一位置执行,即两个组件都在本地执行,或者都在边缘服务器执行,则两者之间的数据传输时间为0;若有前驱后继关系的两个组件分别在本地和边缘服务器执行,则存在数据传输时间。数据传输方式有“从本地到边缘服务器”和“从边缘服务器到本地”。前者的传输时间与两个组件的数据传输大小和网络上传速率有关,后者的传输时间与数据传输大小和网络下载速率有关。

请见图2,本实施例提供的一种基于化学反应优化算法的多用户计算卸载装置,包括计算卸载模块和资源分配模块;

计算卸载模块决定应用组件在本地执行还是边缘服务器执行,其决策是由计算卸载系统做出。计算卸载模块包括两个子模块:资源监测子模块和卸载决策子模块。资源监测子模块负责收集移动终端的信息,如cpu负载、剩余电量、网络带宽等,以及边缘服务器中虚拟机的状态信息。而卸载决策子模块则根据建立的系统模型和收集的资源信息为应用做出卸载决策。其工作过程如下:当移动终端提交卸载请求时,资源监测子模块收集卸载决策所需的相关信息,然后卸载决策子模块根据信息决定应用程序的组件是在本地执行,哪些组件卸载到边缘服务器执行。

资源分配模块是计算卸载模块的后续模块。计算卸载模块为应用程序做出卸载决策后,对于卸载到边缘服务器的组件,进入到资源的分配阶段。调度队列根据组件的到达顺序依次将组件保存在全局队列中,调度器会不断地从调度队列中取出组件,并为组件分配可以最早开始执行任务的虚拟机,知道调度队列为空。边缘服务器中每一个虚拟机都维护着一个局部队列,卸载到某个虚拟机的多个组件之间需要排队等候其他组件完成执行,且组件的执行顺序由执行顺序控制器决定。组件被分配到合适的虚拟机后,所有虚拟机的最新状态信息都会反馈到计算卸载模块和调度器。

应当理解的是,本说明书未详细阐述的部分均属于现有技术。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

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