本发明属于物联网领域,具体涉及一种针对边缘网络应用环境的计算任务副本分发方法。
背景技术:
目前,对于边缘网络的资源分配问题,各种研究考虑了不同类型的资源分配从而实现不同的优化目标,但最终这些目标都是使得边缘计算网络实现更高的可靠性,更优秀的性能,更高质量的计算服务。通过边缘网络资源约束条件和优化目标构建整数规划模型实现对资源的优化分配,还有对边缘网络任务的负载均衡的研究。这类研究大多采用balls-into-bins理论,将边缘计算任务作为理论模型中的球,将边缘节点作为理论模型中的箱子,通过balls-into-bins理论实现边缘计算任务的负载均衡,在边缘任务分发时综合考虑多个因素,实现整个移动云计算网络的均衡负载。除了构建整数规划问题模型,将问题分解或者采用启发式算法求解之外,还有一种比较普遍的方法就是采用深度强化学习实现对边缘计算网络的资源最优分配和计算任务的负载均衡。
物联网已经作为基础设施出现在生产生活的方方面面,例如智慧城市、智慧校园、智能家居等,它提供了非常丰富的功能。通过和物联网设备进行交互来使用它提供的一些计算服务。一种面向边缘计算网络负载均衡的计算任务副本分发方法,考虑了边缘节点资源有限情况下资源的最优分配问题以及边缘计算网络的负载均衡问题。通过对边缘节点资源的充分利用,将子任务复制多个副本,分发给节点通信范围内的其它节点,采用最先响应的副本的结果,从而提高任务的计算效率。
技术实现要素:
本发明的目的是解决传统的中心化的计算模式云服务中心的负载压力过大的问题,提出一种面向边缘计算网络负载均衡的计算任务副本分发方法。本发明考虑了基于传统的中心化的计算模式云服务面对大量计算任务时计算效率下降导致延时增大,用户等待时间过长的问题,解决了包括边缘节点资源有限情况下资源的最优分配问题以及边缘计算网络的负载均衡问题。通过对边缘节点资源的充分利用,将子任务复制多个副本,分发给节点通信范围内的其它节点,采用最先响应的副本的结果,从而提高任务的计算效率。最后采用模拟数据集和真实数据集对算法性能进行实验测试,实验结果表明,本发明所提出的物联网任务处理策略相比于传统的任务计算模式在效率上有显著的提高,同时和采用随机策略、贪心策略、按比例分配策略、fairedge的副本分发相比也具有一定的优势。
本发明采用的技术方案是:
一种针对边缘网络应用环境的计算任务副本分发方法,主要包括如下关键步骤:
第1、边缘计算网络任务模型的构建:
第1.1、采用轮盘赌算法来选择负载子任务的边缘节点;
第1.2、采用复制策略降低子任务的响应时间;
第2、边缘节点资源最优分配策略的设计:
第2.1、分两种情况来讨论边缘节点对子任务副本数目的分配;
第2.2、采用牛顿法获得每个子任务最优的副本数;
第2.3、采用粒子群优化算法获得每个子任务最优的副本数;
第3、网络负载均衡的副本分发策略的设计:
第3.1、采用一种改进的balls-into-bins过程;
第3.2、采用two-choice模型。
进一步的,步骤第1.1中采用轮盘赌算法来选择负载子任务的边缘节点,即在网络初始化时,网络中所有的边缘节点都将向云服务中心发送自己通信范围内的可进行任务负载的节点数量。那么,云服务中心在向边缘节点分发子任务时就需要考虑每个边缘节点可负载节点数量的多少。根据轮盘赌算法,可负载节点数量多的节点被选择的概率就大;反之,被选择的概率就小;
步骤第1.2中采用复制策略降低子任务的响应时间,将边缘节点的子任务复制多个副本,发给该节点通信范围内的其它节点,采用最先响应的副本的计算结果,一旦有副本响应后,就马上通知其它节点停止对应子任务的处理,并将计算结果传输给它所属的边缘节点,所有边缘节点都采取类似的策略处理自己的子任务,计算完毕后将计算结果发送给云计算中心,由云计算中心对所有子任务的计算结果进行合并,得到最终的任务处理结果。
假设用户在客户端提交了查询任务,用s表示,该任务在云服务中心被划分为n个子任务,每个子任务用si,i=1,2,....,n表示,则s={s1,s2,...,sn}。在物联网中总共有k个边缘节点,每个边缘节点用ei,i=1,2,....,k表示。为了使边缘节点的资源也能够得到充分利用,云处理中心将所有的子任务发送到边缘节点。m表示每个边缘节点的可用资源。云服务中心采用轮盘赌算法将划分的子任务分发到边缘节点,那么每个边缘节点就可能会承担多个子任务。
进一步的,步骤第2.1中分两种情况来讨论边缘节点对子任务副本数目的分配,由于每个边缘节点可能会承担多个子任务,那么就必须考虑边缘节点的资源如何最优的分配给每个子任务,使得用户任务在期望的时间内完成的概率最大。所以分两种情况来讨论边缘节点对子任务副本数目的分配:
(1)边缘节点只分配了一个子任务
对于只分配了一个子任务的边缘节点ei,假设这个子任务为s,复制它的成本为c。则该子任务的副本数的最大值为
(2)边缘节点分配了多个子任务
假设对于边缘节点ei,分配了
如果子任务sj没有副本,那么
其中,因为节点ei负载了
那么,优化问题(2)就可以转化成:
为了求解问题(4),引入拉格朗日乘子将问题(4)转化成无约束的形式:
其中,μ是所引入的拉格朗日乘子,令
如果
将问题(5)分解为hei个子问题,那么每个子问题都可以表示成如下形式:
假设子任务sj的单个副本的完成时间的累积分布函数为
将(7)带入到问题(6)中,可以得到:
步骤第2.2中采用牛顿法获得每个子任务最优的副本数,为了获得问题(4)的最优解,需要获得问题(5)的最优解
步骤第2.2中采用粒子群优化算法获得每个子任务最优的副本数,如果约束集是离散点集的时候,μ*并不一定存在,此时基于拉格朗日乘子的方法就不再适合求解问题(4)。粒子群优化算法(particleswarmoptimization,pso)是一种群体协作信息共享的全局随机搜索算法,因为其收敛速度相对较快,所以在搜索最优解时效率较高。pso算法既可以用于连续问题的优化,也适用于离散问题的求解。到目前为止,采用pso算法求解整数规划问题已经有了比较成熟的研究,针对粒子的位置需要取整数的情况给出了很多解决方案。采用pso算法优化边缘节点ei对其承担的子任务进行副本资源的优化分配,使得用户任务在期望时间τ内完成的概率最大。
根据之前的分析,当节点ei的所有子任务的复制成本均相同且全部为1的时候,m即为所有子任务的副本总数,那么对于子任务sj来说,有
其中vi_cur表示的是粒子在当前代的速度,vi_pre表示的是粒子上一代的速度,w表示粒子的惯性权重,惯性权重越大则对粒子上一代的速度保留的越多,算法全局收敛能力就越强。c1表示粒子的个体学习因子,c2表示粒子的社会学习因子,rand为[0,1]之间的随机数。pib表示第i个粒子搜索到的最优位置,pgb表示整个粒子群到目前为止搜索到的最优位置,xi_pre表示粒子上一代的位置。粒子位置更新公式如下:
xi_cur=xi_pre+vi_cur(10)
接下来,采用pso算法求解边缘节点ei的所有子任务最优副本数,使得资源最大化利用的同时,提高边缘节点对子任务的处理效率。
进一步的,步骤第3.1中为了实现边缘节点的负载均衡,采用一种改进的balls-into-bins过程。基于balls-into-bins过程,每个子任务副本在分发之前都从d个随机选择的节点查询负载信息,通过对这些负载信息进行对比,然后选择d个节点中负载最小的那个节点。对于子任务副本数等于可负载节点总数的情况,即
其中,φ表示节点的最大负载,n表示节点ei的可负载节点列表的节点总数。同样,对于子任务的副本数远大于可负载节点总数的情况,即
步骤第3.2中,因为可能会出现最差的一种情况就是大多数任务都被分发给同一个节点,从而导致该节点过载。采用two-choice模型(d=2<n),从所有可负载节点中随机选择d个节点,并且为每个节点定义了公平索引值,在选择最小负载节点的同时还会将每个节点的公平索引值和整个网络的公平索引值进行对比,根据对比结果决定是否进行任务负载,同时使用负载阈值来选择可负载节点列表中的d个节点进行任务负载。节点ei根据公式(13)来计算可负载节点列表中每个节点的负载比率:
其中,qi表示第i,i=1,2,...,n个节点的负载。边缘节点ei首先根据设定的负载阈值τq来选择符合条件的节点,然后再向这些节点进行任务负载。
本发明的优点和积极效果:
本发明提出一种面向边缘计算网络负载均衡的计算任务副本分发方法,该方法考虑了边缘节点资源有限情况下资源的最优分配问题以及边缘计算网络的负载均衡问题。通过对边缘节点资源的充分利用,将子任务复制多个副本,分发给节点通信范围内的其它节点,采用最先响应的副本的结果,从而提高任务的计算效率。最后采用模拟数据集和真实数据集对算法性能进行实验测试,实验结果表明,本发明所提出的物联网任务处理策略相比于传统的任务计算模式在效率上有显著的提高,同时和采用随机策略、贪心策略、按比例分配策略、fairedge的副本分发相比也具有一定的优势。
附图说明
图1是物联网边缘节点仿真场景;
图2是每个边缘节点的可通信节点数目;
图3是每个边缘节点负载的子任务数目;
图4是子任务在所有边缘节点中的分发情况;
图5是边缘节点子任务副本资源的分配情况(指数分布);
图6是边缘节点的子任务副本;
图7是边缘节点任务负载均衡结果(指数分布);
图8是边缘节点子任务副本资源的分配情况(pareto分布);
图9是边缘节点采用本发明提出策略的子任务副本负载结果;
图10是边缘节点采用随机策略的子任务副本负载结果;
图11是边缘节点采用贪心策略的子任务副本负载结果;
图12是可用计算资源对计算效率的影响;
图13是可用副本资源对计算效率的影响;
图14是可用计算资源对计算效率的影响;
图15是可用副本资源对计算效率的影响;
图16是子任务副本负载均衡结果cdf;
图17是本发明针对边缘网络应用环境的计算任务副本分发方法的流程图。
具体实施方式
实施例1:
本实施例设计的方法是基于c++模拟库和框架可扩展模块化组件的omnet++网络模拟器来构建性能评估系统。
性能评估的主要目标是确定计算任务副本分发方法对边缘计算性能的影响。除此之外,想要检查本发明所提出的物联网任务处理策略相比于传统的任务计算模式在效率上的提高,同时和采用随机策略、贪心策略、按比例分配策略、fairedge的副本分发相比具有的优势。主要涉及的实施操作有omnet++网络模拟器的构建,模拟场景的构建以及具体的算法计算过程。
参见附图17,本发明提供的一种针对边缘网络应用环境的计算任务副本分发方法,主要包括如下关键步骤:
第1、边缘计算网络任务模型的构建:
第1.1、采用轮盘赌算法来选择负载子任务的边缘节点;
第1.2、采用复制策略降低子任务的响应时间;
第2、边缘节点资源最优分配策略的设计:
第2.1、分两种情况来讨论边缘节点对子任务副本数目的分配;
第2.2、采用牛顿法获得每个子任务最优的副本数;
第2.3、采用粒子群优化算法获得每个子任务最优的副本数;
第3、网络负载均衡的副本分发策略的设计:
第3.1、采用一种改进的balls-into-bins过程;
第3.2、采用two-choice模型。
进一步的,步骤第1.1中采用轮盘赌算法来选择负载子任务的边缘节点,即在网络初始化时,网络中所有的边缘节点都将向云服务中心发送自己通信范围内的可进行任务负载的节点数量。那么,云服务中心在向边缘节点分发子任务时就需要考虑每个边缘节点可负载节点数量的多少。根据轮盘赌算法,可负载节点数量多的节点被选择的概率就大;反之,被选择的概率就小;
步骤第1.2中采用复制策略降低子任务的响应时间,将边缘节点的子任务复制多个副本,发给该节点通信范围内的其它节点,采用最先响应的副本的计算结果,一旦有副本响应后,就马上通知其它节点停止对应子任务的处理,并将计算结果传输给它所属的边缘节点,所有边缘节点都采取类似的策略处理自己的子任务,计算完毕后将计算结果发送给云计算中心,由云计算中心对所有子任务的计算结果进行合并,得到最终的任务处理结果。
假设用户在客户端提交了查询任务,用s表示,该任务在云服务中心被划分为n个子任务,每个子任务用si,i=1,2,....,n表示,则s={s1,s2,...,sn}。在物联网中总共有k个边缘节点,每个边缘节点用ei,i=1,2,....,k表示。为了使边缘节点的资源也能够得到充分利用,云处理中心将所有的子任务发送到边缘节点。m表示每个边缘节点的可用资源。云服务中心采用轮盘赌算法将划分的子任务分发到边缘节点,那么每个边缘节点就可能会承担多个子任务。
进一步的,步骤第2.1中分两种情况来讨论边缘节点对子任务副本数目的分配,由于每个边缘节点可能会承担多个子任务,那么就必须考虑边缘节点的资源如何最优的分配给每个子任务,使得用户任务在期望的时间内完成的概率最大。所以分两种情况来讨论边缘节点对子任务副本数目的分配:
(1)边缘节点只分配了一个子任务
对于只分配了一个子任务的边缘节点ei,假设这个子任务为s,复制它的成本为c。则该子任务的副本数的最大值为
(2)边缘节点分配了多个子任务
假设对于边缘节点ei,分配了
如果子任务sj没有副本,那么
其中,因为节点ei负载了
那么,优化问题(2)就可以转化成:
为了求解问题(4),引入拉格朗日乘子将问题(4)转化成无约束的形式:
其中,μ是所引入的拉格朗日乘子,令
如果
将问题(5)分解为hei个子问题,那么每个子问题都可以表示成如下形式:
假设子任务sj的单个副本的完成时间的累积分布函数为
将(7)带入到问题(6)中,可以得到:
步骤第2.2中采用牛顿法获得每个子任务最优的副本数,为了获得问题(4)的最优解,需要获得问题(5)的最优解
步骤第2.2中采用粒子群优化算法获得每个子任务最优的副本数,如果约束集是离散点集的时候,μ*并不一定存在,此时基于拉格朗日乘子的方法就不再适合求解问题(4)。粒子群优化算法(particleswarmoptimization,pso)是一种群体协作信息共享的全局随机搜索算法,因为其收敛速度相对较快,所以在搜索最优解时效率较高。pso算法既可以用于连续问题的优化,也适用于离散问题的求解。到目前为止,采用pso算法求解整数规划问题已经有了比较成熟的研究,针对粒子的位置需要取整数的情况给出了很多解决方案。采用pso算法优化边缘节点ei对其承担的子任务进行副本资源的优化分配,使得用户任务在期望时间τ内完成的概率最大。
根据之前的分析,当节点ei的所有子任务的复制成本均相同且全部为1的时候,m即为所有子任务的副本总数,那么对于子任务sj来说,有
其中vi_cur表示的是粒子在当前代的速度,vi_pre表示的是粒子上一代的速度,w表示粒子的惯性权重,惯性权重越大则对粒子上一代的速度保留的越多,算法全局收敛能力就越强。c1表示粒子的个体学习因子,c2表示粒子的社会学习因子,rand为[0,1]之间的随机数。pib表示第i个粒子搜索到的最优位置,pgb表示整个粒子群到目前为止搜索到的最优位置,xi_pre表示粒子上一代的位置。粒子位置更新公式如下:
xi_cur=xi_pre+vi_cur(10)
接下来,采用pso算法求解边缘节点ei的所有子任务最优副本数,使得资源最大化利用的同时,提高边缘节点对子任务的处理效率。
进一步的,步骤第3.1中为了实现边缘节点的负载均衡,采用一种改进的balls-into-bins过程。基于balls-into-bins过程,每个子任务副本在分发之前都从d个随机选择的节点查询负载信息,通过对这些负载信息进行对比,然后选择d个节点中负载最小的那个节点。对于子任务副本数等于可负载节点总数的情况,即
其中,φ表示节点的最大负载,n表示节点ei的可负载节点列表的节点总数。同样,对于子任务的副本数远大于可负载节点总数的情况,即
步骤第3.2中,因为可能会出现最差的一种情况就是大多数任务都被分发给同一个节点,从而导致该节点过载。采用two-choice模型(d=2<n),从所有可负载节点中随机选择d个节点,并且为每个节点定义了公平索引值,在选择最小负载节点的同时还会将每个节点的公平索引值和整个网络的公平索引值进行对比,根据对比结果决定是否进行任务负载,同时使用负载阈值来选择可负载节点列表中的d个节点进行任务负载。节点ei根据公式(13)来计算可负载节点列表中每个节点的负载比率:
其中,qi表示第i,i=1,2,...,n个节点的负载。边缘节点ei首先根据设定的负载阈值τq来选择符合条件的节点,然后再向这些节点进行任务负载。
本实例中构建了一个模拟场景,实验采用1000m*1000m的区域来模拟物联网边缘计算环境,区域中的边缘节点总共有50个,云服务中心节点不在此区域中。每个边缘节点的通信半径为200米,将这50个节点随机部署在任意位置。每个边缘节点的副本资源数量在100到400之间,是可变的。每个节点的子任务列表、子任务复制成本、子任务副本数均初始化为空集。如图1所示,其中每个边缘节点由三角形标记表示。
表1实验仿真参数
对于子任务的单个副本的完成时间,采用两种分布进行模拟,分别为指数分布和pareto分布。指数分布的累积分布函数为f(x)=1-e-λx,其中x≥0,将其带入到(8)中可得,
每个节点根据通信半径计算可通信节点。在云服务中心向边缘节点分发子任务时,希望可通信节点数量较多的节点能够负载相对较多的子任务,而可通信节点数量较少的节点负载的子任务就要少一些。因为,节点的可通信节点数越多就意味着有更多的可用资源。采用轮盘赌算法来分发子任务就可以保证子任务选择可通信节点数多的节点的概率更大。每个边缘节点在通信范围内的可通信节点数目如图2所示,边缘节点负载子任务的情况如下图3和图4所示。
从图2中可以看出,3、5、8、12、19、28、42、43、46号节点的可通信节点数量是比较少的,那么这些节点负载的子任务就会比较少。图3和图4的结果就验证了这一点,即可通信节点数量少的节点,负载的子任务数量就会较少。相反,可通信节点越多的节点,负载的子任务就会越多。
图5展示了所有边缘节点的子任务副本资源分布情况,其中每个条形中的一段代表一个子任务。图6(a)展示了编号11的边缘节点的每个子任务的副本数,图6(b)展示了编号41的边缘节点的每个子任务的副本数。从图5和图6(a)、图6(b)中可以看出,索引编号越小的子任务,分配的副本资源就越多。
本模拟实验将考虑两个性能指标,其分别是:
1.负载均衡情况。将任务的副本分发给其它的边缘节点,使可负载节点较多的节点承担较多的子任务,而那些可负载节点较少的节点承担的子任务则少一些,从而最大化边缘节点的资源利用。如果节点无法达到一种均衡状态,那么子任务的计算效率反而会降低。
2.任务计算效率。利用网络边缘节点的资源来提高计算能力的效率,该度量与降低任务响应时间成反比。
本实例的仿真实验结果如下:
1.不同分发方式对边缘节点的任务负载均衡结果的影响
1)指数分布
图7展示了当采用pso算法,使用指数分布对每个边缘节点的所有子任务副本进行分发时,边缘节点的任务负载均衡结果。可以看到大多数节点的负载是比较均衡的,整个边缘计算网络节点的负载平均值为28.1。索引编号为28的边缘节点的负载为0,这是因为28号节点并没有分配到子任务,由于28号节点的通信范围内的节点只有它自己,所以将子任务分发给它的概率很小。有一些节点的负载是高于平均负载的,这是因为这些节点的通信范围内的节点较多,而这些节点又负载了较多的子任务,所以负载就会较高。
2)pareto分布
图8展示了当使用pareto分布时,边缘节点子任务副本资源的分配情况。相比于采用指数分布的副本资源分配,pareto分布的副本资源分配更加均匀,即图8中的不同颜色的条形长度差异会小一些。
3)本发明所提出的分发策略
图9展示了采用了本发明所提出的边缘节点任务负载均衡策略,可以看到,边缘节点的负载是比较均衡的,边缘计算网络的平均负载为30.36,从图9中可以看出,大多数节点的负载可以保持在平均值上下。
4)随机分发策略
图10是采用随机节点副本分发策略的负载结果,从图中可以看到,和图9的结果相比,采用随机副本分发策略并不能保证边缘节点的负载均衡。
5)贪心分发策略
图11是采用贪心策略分发任务副本,从图中可以看出,多数节点的负载还是比较均衡的,但是也有一部分节点的负载差异较大。实验结果表明,当子任务的单个副本完成时间符合pareto分布时,pso算法仍然能够实现边缘计算网络较好的负载均衡。
2.在不同的资源下任务计算效率的变化
图12和图13为不同的策略在不同的资源数量下任务计算效率的变化,从图12中可以看到,当边缘计算网络的可用计算资源数量增加时,这五种副本分发策略的计算效率都会随之提高。图13展示了可用副本资源对计算效率的影响,可以看到,当可用副本资源增加时,任务的计算时间也随之增加。
6)可用计算资源对计算效率的影响
图14表示可用计算资源对计算效率的影响。通过图14可以看出,通过增加计算资源,按比例分配策略会有较好的性能提升。虽然增加计算资源,可以提高计算效率,但是由此带来的额外成本也是不可忽略的。本发明所提出的基于负载均衡的子任务副本分发策略在处理比较庞大的数据量时,和其它四种策略相比,仍然具有一定的优势。
7)可用副本资源对计算效率的影响
图15表示可用副本资源对计算效率的影响。图15则说明了,当可用副本资源从100变化到400,任务计算所花费的时间更多了。这和图13的实验结果类似,同样都是由于采用了子任务复制策略所导致的,在这个策略中,总是尽可能让子任务复制更多的副本,这样总任务在期望时间内完成的概率就会越大。虽然会使用更多的资源,从长远来看,当物联网中产生的数据量越来越多的时候,任务的复杂度也会越来越大,复制更多的子任务副本,则会让任务更快的得到处理,从而减少等待时间,充分利用边缘节点资源,那么总任务的完成时间就会越短。所以,从图15中可以看出,当处理庞大数据集的时候,本发明所提出的任务处理策略是非常高效的。
8)图16为不同策略之间的子任务副本负载均衡结果对比图。正如图中所示,随机策略、贪心策略和本发明提出的策略对于大多数边缘节点来说,每个边缘节点承担的子任务副本数在30到50之间,而按比例分配策略和fairedge算法使得每个边缘节点承担的子任务副本数较少,这是因为按比例分配策略的任务迁移时间较小,不足以令如此多的副本完成迁移。而fairedge则是考了通信成本的因素,每次只从节点中随机选择两个边缘节点,然后进一步选择负载小的节点。