获取资源分配策略的方法、装置、设备及存储介质与流程

文档序号:25957237发布日期:2021-07-20 17:16阅读:83来源:国知局
获取资源分配策略的方法、装置、设备及存储介质与流程

本申请属于移动通信技术领域,尤其涉及一种获取资源分配策略的方法、装置、设备及存储介质。



背景技术:

随着移动互联网和物联网的飞速发展,智能手机、智能手表等终端的数量呈指数级增长,为了提升对终端的服务质量,可以在靠近终端的地方部署mec(mobileedgecomputing,移动边缘计算)服务器。

mec服务器可以承接终端生成的计算任务,并分配相应的资源来执行该计算任务,该资源可称为计算节点,每个计算节点可以执行一个或多个计算任务。当承接的计算任务较多时,mec服务器可以随机或者按照各计算任务的优先级,为各个计算任务分配资源。然而,上述分配资源的方式不够合理,存在资源与计算任务不匹配的问题。



技术实现要素:

本申请实施例提供一种获取资源分配策略的方法、装置、设备及存储介质,以解决如何匹配资源与计算任务的问题。

为了解决上述技术问题,本申请是这样实现的:

第一方面,本申请实施例提供了一种获取资源分配策略的方法,包括:

获取各计算任务的任务信息和各计算节点的性能信息,并基于所述计算任务的数目和所述计算节点的数目构建粒子群,所述粒子群中的每个粒子对应有随机生成的计算任务和计算节点分配关系;

结合所述任务信息和各所述计算节点的性能信息,并按照预设粒子群算法对所述粒子群中每个粒子的第一适应度函数个体值进行迭代计算,以调整各个粒子的计算任务和计算节点分配关系;

当完成迭代计算时,在所有粒子的第一适应度函数个体值中存在多个第一适应度函数全局极值的情况下,在所有所述第一适应度函数全局极值对应的粒子中确定最小的第二适应度函数个体值对应的目标粒子,并将所述目标粒子的计算任务和计算节点分配关系,确定为资源分配策略;所述第一适应度函数和所述第二适应度函数基于预设指标生成,且所述第二适应度函数与所述第一适应度函数不同;所述预设指标至少包括时延、负载和成本。

第二方面,本申请实施例提供了一种获取资源分配策略的装置,包括:

构建模块,用于获取各计算任务的任务信息和各计算节点的性能信息,并基于所述计算任务的数目和所述计算节点的数目构建粒子群,所述粒子群中的每个粒子对应有随机生成的计算任务和计算节点分配关系;

迭代计算模块,用于结合所述任务信息和各所述计算节点的性能信息,并按照预设粒子群算法对所述粒子群中每个粒子的第一适应度函数个体值进行迭代计算,以调整各个粒子的计算任务和计算节点分配关系;

确定模块,用于当完成迭代计算时,在所有粒子的第一适应度函数个体值中存在多个第一适应度函数全局极值的情况下,在所有对应所述第一适应度函数全局极值的粒子中确定对应最小的第二适应度函数个体值的目标粒子,并将所述目标粒子的计算任务和计算节点分配关系确定为资源分配策略;所述第一适应度函数和所述第二适应度函数基于预设指标生成,且所述第二适应度函数与所述第一适应度函数不同;所述预设指标至少包括时延、负载和成本。

第三方面,本申请实施例提供了一种设备,包括:处理器以及存储有计算机程序指令的存储器;

所述处理器执行所述计算机程序指令时实现如第一方面所述的获取资源分配策略的方法。

第四方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面所述的获取资源分配策略的方法。

相较于现有技术,本申请具有以下有益效果:

在本申请实施例中,通过将计算任务和计算节点之间的分配关系转换为粒子群中的粒子,然后通过基于时延、负载和成本等指标构建的两个适应度函数对粒子群中的粒子进行二次筛选,从而可以筛选出唯一的一个粒子,进而可以将该粒子对应的计算任务和计算节点分配关系作为最终的资源分配策略。由于该粒子基于时延、负载及成本等多个指标筛选得到,因此该粒子对应的资源分配策略能够同时兼顾时延、负载及成本,从而可以更合理地对资源进行分配,提高了资源和计算任务的匹配度。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个实施例提供的应用场景图;

图2是本申请一个实施例提供的获取资源分配策略的方法的流程示意图;

图3是本申请另一个实施例提供的获取资源分配策略的方法的流程示意图;

图4是本申请一个实施例提供的获取资源分配策略的装置的结构示意图;

图5是本申请另一个实施例提供的获取资源分配策略的装置的结构示意图;

图6是本申请另一个实施例提供的获取资源分配策略的装置的结构示意图;

图7是本申请又一个实施例提供的设备的结构示意图。

具体实施方式

下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本申请,并不被配置为限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

随着移动互联网和物联网的飞速发展,终端可以运行各类计算密集型应用,如人脸识别应用、增强现实应用、交互式游戏应用等,这类应用计算复杂度高、能量消耗大、时延要求低,对终端计算能力的要求也较高,为了提升对终端的服务质量,可以在靠近终端的地方部署mec服务器,用于代替终端执行这类应用所生成的计算任务。mec服务器可以通过虚拟化技术虚拟出多个计算节点,并为各个计算节点分配计算任务,待任务执行结果,mec服务器可以将任务结果返回至相应终端,应用场景可以如图1所示。当承接的计算任务较多时,mec服务器可以随机为各个计算任务分配资源,或者按照各计算任务的优先级,增加优先级较高的计算任务所分配的资源,减少优先级较低的计算任务所分配的资源。然而,上述分配资源的方式不够合理,容易出现一些计算节点上分配的计算任务较多,而一些计算节点上分配的计算任务较少的情况,造成mec服务器负载不均衡、性能下降以及资源的闲置,故而,现有的分配资源的方式存在资源与计算任务不匹配的问题。

为了解决现有技术问题,本申请实施例提供了一种获取资源分配策略的方法、装置、设备及存储介质。下面首先对本申请实施例所提供的获取资源分配策略的方法进行介绍。

如图2所示,本申请实施例提供的获取资源分配策略的方法包括以下步骤:

s201、获取各计算任务的任务信息和各计算节点的性能信息,并基于计算任务的数目和计算节点的数目构建粒子群,粒子群中的每个粒子对应有随机生成的计算任务和计算节点分配关系。

s202、结合任务信息和各计算节点的性能信息,并按照预设粒子群算法对粒子群中每个粒子的第一适应度函数个体值进行迭代计算,以调整各个粒子的计算任务和计算节点分配关系。

s203、当完成迭代计算时,在所有粒子的第一适应度函数个体值中存在多个第一适应度函数全局极值的情况下,在所有第一适应度函数全局极值对应的粒子中确定最小的第二适应度函数个体值对应的目标粒子,并将目标粒子的计算任务和计算节点分配关系确定为资源分配策略。

上述各步骤的具体实现方式将在下文中进行详细描述。

在本申请实施例中,通过将计算任务和计算节点之间的分配关系转换为粒子群中的粒子,然后通过基于时延、负载和成本等指标构建的两个适应度函数对粒子群中的粒子进行二次筛选,从而可以筛选出唯一的一个粒子,进而可以将该粒子对应的计算任务和计算节点分配关系作为最终的资源分配策略。由于该粒子基于时延、负载及成本等多个指标筛选得到,因此该粒子对应的资源分配策略能够同时兼顾时延、负载及成本,不仅可以减少时延,而且可以降低成本,实现负载均衡,从而可以更合理地对资源进行分配,解决了mec服务器负载不均衡、性能下降以及资源闲置问题,提高了资源和计算任务的匹配度。

下面介绍上述各个步骤的具体实现方式。

首先介绍s201。在一个示例实施例中,先对本方法的执行主体进行介绍,执行主体可以是具备通信功能和计算功能的分配设备,如部署在基站附近机房的本地服务器,执行主体也可以是mec服务器本身,如mec服务器中的某个处理模块。为了便于描述,接下来以上述分配设备作为执行主体进行介绍。接着,对计算任务、计算任务的任务信息以及计算节点的性能信息进行介绍,计算任务可以是在终端上运行的各类计算密集型应用所生成的任务,如人脸识别应用生成的对人脸信息进行识别的任务;需要说明的是,各计算任务之间是相互独立的,即一个计算任务可以单独被mec服务器的一个计算节点进行处理,而不需要依托其它的计算任务;计算任务可以是主任务,也可以是对某个主任务划分得到的相互独立的子任务。计算任务的任务信息,可以包括发送至mec服务器的计算任务的总数目、执行每个计算任务所需要处理的数据量、执行每个计算任务需要传输的数据量等信息。计算节点的性能信息,可以包括每个计算节点的带宽、单位时间内的数据处理能力、单位时间内产生的成本等信息。

具体的,分配设备可以通过从mec服务器拉取信息的方式,对发送至mec服务器的计算任务的任务信息和mec服务器各计算节点的性能信息进行获取,从而完成了数据准备工作,为接下来获取资源分配策略的处理提供了数据来源。

接下来,对粒子群优化算法(particalswarmoptimization,pso)进行介绍,粒子群优化算法可以用于求解优化问题,如旅行商问题,该优化问题可以转换为适应度函数,从而求解优化问题可以转换为求解适应度函数。具体的,每个适应度函数的潜在解,即适应度函数值,均可以想象成该适应度函数的解空间上的一个点,可以称之为粒子,每个粒子在解空间上的位置可以用位置向量表示,每个粒子在解空间上的移动速度可以用速度向量表示。粒子群优化算法可以按照计算出的各粒子的适应度函数值,持续地调整粒子的位置向量和速度向量,使这些粒子不断在解空间中移动,去寻找最优解对应的位置。

在运用上述粒子群优化算法之前,需要先完成粒子群的构建工作。具体的,分配设备在获取到上述任务信息和性能信息后,可以基于获取的计算任务的数目和计算节点的数目构建粒子群,粒子群中的每个粒子即为一种随机生成的计算任务和计算节点分配关系。

在另一个示例实施例中,可以按照以下方式构建粒子群,相应的处理可以如下:按照一个计算任务只能在一个计算节点执行的原则,随机生成预设数目类计算任务与计算节点分配关系,并将每类计算任务与计算节点分配关系与一个粒子进行对应,得到粒子群。

在一个示例实施例中,技术人员可以对粒子群的规模进行配置,通常情况下,粒子群的规模越大,粒子所能探索的解空间的范围越大,找到更优解的几率也就越大,相应的,对硬件设备的性能要求也就越高。因此,技术人员可以综合衡量上述情况,设定一个合理的粒子群规模,如粒子群包含50个粒子。以主任务划分为子任务的情况为例,假设主任务数为5个,这5个主任务划分为了16个子任务,mec服务器有8个计算节点,则优化问题是如何将16个子任务分配到8个计算节点上,容易发现,该优化问题存在很多种计算任务和计算节点分配关系,这里随机给出一种计算任务和计算节点分配关系,如(8,1,6,4,2,3,8,7,7,5,1,4,2,6,3,5),括号中的数字为计算节点的标识,如8表示计算节点8、1表示计算节点1,括号中的16个位置依次表示1-16子任务,从而(8,1,6,4,2,3,8,7,7,5,1,4,2,6,3,5)表示的计算任务和计算节点分配关系为:子任务1分配到计算节点8,子任务2分配到计算节点1,子任务3分配到计算节点6,依次类推,子任务16分配到计算节点5。

在构建完成粒子群之后,分配设备可以对粒子群进行初始化处理,如对粒子群中各个粒子的位置向量和速度向量,粒子群的各计算参数进行初始化,其中,计算参数可以包括惯性权重值、个体学习因子、群体学习因子、最大迭代次数等。具体的,可以定义粒子群中的粒子数目为c,计算任务的数目为m1,计算节点的数目为n,第i个粒子的位置向量为xi,xij表示第j个计算任务分配到第xij号计算节点,第i个粒子的速度向量为vi,上述i、均取整数,的初始化取值为[1,n]内的随机整数,的初始化取值为[1-n,n-1]内的随机整数。

以上为s201的具体实现方式,下面介绍s202的具体实现方式。

在一个示例实施例中,首先对预设粒子群算法进行介绍,预设粒子群算法可以是标准的粒子群优化算法,也可以是在标准的粒子群优化算法的基础上进行改进的粒子群算法,下面给出两种改进后的粒子群算法,具体可以如下:

第一种粒子群算法:

第二种粒子群算法:

在(1)(2)式中,t为当前迭代次数,tmax为粒子群的最大迭代次数,为粒子i在第t次迭代时的速度向量,为粒子i在第t次迭代时的位置向量,为粒子i在第t次迭代时的惯性权重值,ωmax和ωmin分别为惯性权重值的最大值和最小值,一般情况下,ωmax=0.9,ωmin=0.4,惯性权重值由ωmax到ωmin作线性变化,c1为个体学习因子,c2为社会学习因子,一般取c1,c2∈[0,4],r1和r2为[0,1]内的随机数,为个体最好位置向量,为粒子群最好位置向量,σ为常量扰动值,σ∈[0,0.1]。

可以发现,上述(1)(2)式的区别仅在于惯性权重值的调整方式,即(2)式在(1)式的基础上增加了常量扰动值。考虑到粒子群中的粒子在迭代计算的后期,容易出现局部最优问题,无法在解空间中进行更大范围的最优解搜索,因此可以在迭代计算的前期采用(1)式作为粒子群算法,在迭代计算的后期采用(2)式作为粒子群算法,迭代计算的前期和后期可以通过迭代次数进行划分,如将前三分之一的迭代次数作为前期,将后三分之二的迭代次数作为后期,这里不对其作具体限定。通过上述处理,可以较好地解决局部最优问题,使得粒子可以搜索到解空间的更多区域,从而尽可能涵盖更多的解,增加粒子对应的计算任务与计算节点分配关系的可选范围。

以上是对粒子群算法的相关介绍,接着,对本实施例的适应度函数进行介绍。由于资源分配策略的优劣,可以用时延、负载以及成本这三个预设指标(以下简称指标)进行衡量,因此,可以基于以上三个指标对预设粒子群算法的适应度函数进行定义,上述三个指标相应的适应度函数可以分别称为时延函数、负载函数和成本函数。为了便于描述,步骤s202中的适应度函数可以称为第一适应度函数,第一适应度函数可以为时延函数、负载函数或成本函数中的一种。

下面给出一种时延函数,具体可以如下:

在(3)式中,timemax为各个计算节点执行完所有分配至本节点任务的执行总时间中的最大时间,taski为第i个计算任务,vmj为第j个计算节点,time(taski,vmj)为第i个计算任务taski在第j个计算节点vmj上的执行时间,tlengthi为第i个计算任务taski的待处理数据量,v_vm为计算节点在单位时间内的数据处理量,tdatai为第i个计算任务taski的待传输的数据量,bw_vm为计算节点的带宽,num_vm_cpu为计算节点中cpu的数量,v_vm_mips为计算节点中单个cpu在单位时间内的数据处理量。上述timemax也称为时延,即在n个计算节点同时执行计算任务的情况下,执行时间最长的那个计算节点所消耗的时间,timemax越小,时延越低。

下面给出一种负载函数,具体可以如下:

在(4)式中,lb为负载,为平均资源利用率,uj为第j个计算节点vmj的资源利用率,n为计算节点的数目,time(taski,vmj)为第i个计算任务taski在第j个计算节点vmj上的执行时间,timemax为各个计算节点执行完所有分配至本节点任务的执行总时间中的最大时间。可以看出,lb实际是各计算节点资源利用率的标准差,其值越小,表示各计算节点资源利用率波动较小,相应的,各计算节点的负载也就越均衡。

下面给出一种成本函数,具体可以如下:

在(5)式中,tcost为mec服务器各个计算节点执行任务的任务总成本,rcost(vmj)为第j个计算节点vmj在单位时间内所需要的成本,time(taski,vmj)为第i个计算任务taski在第j个计算节点vmj上的执行时间,可以得出,tcost的值越小,成本越低。

这样,在完成粒子群的构建和初始化后,分配设备可以结合获取的任务信息和各计算节点的性能信息,按照预设粒子群算法,对粒子群中每个粒子的第一适应度函数个体值进行迭代计算。由于对某个粒子的第一适应度函数个体值的每一次迭代计算,都是在调整该粒子在解空间中的位置,而粒子的位置变化可以对应计算任务和计算节点分配关系的变化,因此,在多次迭代计算的过程中,基于预设粒子群算法本身的特点,可以不断缩短该粒子与潜在的第一适应度函数的最优粒子的距离,从而不断对计算任务和计算节点分配关系进行优化。需要说明的是,上述第一适应度函数的最优粒子,是指在所有的第一适应度函数个体值对应的粒子中,具有最小的第一适应度函数个体值的粒子。

可选的,下面给出一种迭代计算第一适应度函数个体值的处理过程:在完成第n-1次对目标粒子第一适应度函数个体值迭代计算后,更新目标粒子的第一适应度函数个体极值,n为大于1的正整数;基于更新后的第一适应度函数个体极值,进行第n次对目标粒子第一适应度函数个体值迭代计算。

在一个示例实施例中,从第二次迭代计算开始,目标粒子的每一次迭代计算都需要用到该粒子的个体最好位置,而该粒子的个体最好位置与该粒子的第一适应度函数值的最优值对应,因此,可以通过倒推的方式,通过第一适应度函数值的最优值推导出到该粒子的个体最好位置。上述第一适应度函数值的最优值,即第一适应度函数个体极值,考虑到上述三种第一适应度函数对应的值越小效果越好的情况,这里的极值是指最小值。这样,以目标粒子开始第n次迭代计算、n为大于1的正整数为例,在完成第n-1次第一适应度函数个体值迭代计算后,需要先对目标粒子的第一适应度函数个体极值进行更新。之后,基于更新后的目标粒子的第一适应度函数个体极值,得出目标粒子的个体最好位置,然后按照迭代公式进行第n次对目标粒子第一适应度函数个体值迭代计算。经过上述处理,可以更好地对第一适应度函数个体值对应的个体位置进行优化。

可选的,下面给出一种更新目标粒子的第一适应度函数个体极值的具体实现方式,相应的处理可以如下:在第一次迭代计算得到目标粒子的第一适应度函数个体值的情况下,目标粒子的第一适应度函数个体极值为目标粒子的第一适应度函数个体值;在第n次迭代计算得到的目标粒子的第一适应度函数个体值等于目标粒子的第一适应度函数个体极值的情况下,计算目标粒子当前的第二适应度函数个体值;如果目标粒子当前的第二适应度函数个体值,小于目标粒子的第一适应度函数个体极值对应的第二适应度函数个体值,则将目标粒子的第一适应度函数个体极值,更新为目标粒子在第n次迭代计算得到的第一适应度函数个体值。

在一个示例实施例中,对于第一次迭代计算而言,由于目标粒子目前仅存在第一次迭代计算的数据,因此可以将目标粒子的第一适应度函数个体值作为其第一适应度函数个体极值。对于第二次乃至之后的迭代计算,可以基于目标粒子当次计算出的第一适应度函数个体值和第一适应度函数个体极值的大小关系,更新目标粒子的第一适应度函数个体极值。以目标粒子的第n次迭代计算、n为大于1的正整数为例,如果目标粒子在第n次迭代计算得到的第一适应度函数个体值等于目标粒子的第一适应度函数个体极值,则表明目标粒子在第一适应度的维度下存在两个个体最好位置,此时可以引入第二适应度来进一步比较这两个个体最好位置的优劣。具体的,可以分别获取这两个最好位置对应的第二适应度函数个体值并进行比较,如果目标粒子当前的第二适应度函数个体值,小于目标粒子的第一适应度函数个体极值对应的第二适应度函数个体值,则可以将目标粒子的第一适应度函数个体极值,更新为目标粒子在第n次迭代计算得到的第一适应度函数个体值的数值,相应的,目标粒子第n次迭代计算后的个体最好位置,也同步更新为目标粒子在第n次迭代计算得到的第一适应度函数个体值对应的个体位置。经过上述处理,可以在根据第一适应度调整目标粒子个体位置的过程中,引入第二适应度来处理存在多个第一适应度函数个体极值的问题,从而可以更合理的优化目标粒子的个体位置。

以上为s202的具体实现方式,下面介绍s203的具体实现方式。

在一个示例实施例中,首先,对本方法获取资源分配策略的思路进行介绍。本方法通过将计算任务和计算节点之间的分配关系转换为粒子群中的粒子,然后通过基于时延、负载和成本等指标构建的两个适应度函数对粒子群中的粒子进行二次筛选,即应用第一适应度函数进行的第一次筛选,和应用第二适应度函数在第一次筛选的结果之上进行的第二次筛选,由于二次筛选出的粒子衡量了多个指标,故而相对于单指标而言,二次筛选出的该粒子对应的计算任务和计算节点分配关系更加合理。值得一提的是,通常情况下,不同指标的重要程度往往不同,且能够在不同指标上均呈现极好效果的资源分配策略基本不存在,因此,在构建第一适应度函数时,技术人员可以在三个指标中选取当前优先考虑的一个指标,如时延,然后可以基于剩余的两个指标构建第二适应度函数,从而可以兼顾到不同指标的重要程度,进一步提高资源分配策略的合理性。

具体的,第一适应度函数全局极值,是指所有的第一适应度函数个体值中的最小值。当完成粒子群中每个粒子的第一适应度函数个体值的迭代计算时,可以基于第一适应度函数全局极值的数量,进行相应的处理。如果第一适应度函数全局极值的数量为多个,则表明在第一适应度这个维度存在多个最优粒子,此时,可以基于第二适应度对这几个最优粒子作进一步筛选。需要说明的是,第二适应度函数可以为负载成本联合函数、时延成本联合函数或时延负载联合函数中的一种,且第二适应度函数选取的指标需要和第一适应度函数不同,例如,当第一适应度函数为时延函数时,即第二适应度函数选取的指标为时延指标,第二适应度函数选取的指标只能是负载和成本,即第二适应度函数为负载成本联合函数。

下面给出一种负载成本联合函数f2,具体可以如下:

在(6)式中,0≤α≤1,0≤β≤1,α+β=1,可以得出,f2的值越小,负载均衡和降低成本的效果也就越好。

这样,在存在多个第一适应度函数全局极值的情况下,分配设备可以在所有对应第一适应度函数全局极值的粒子中,确定对应最小的第二适应度函数个体值的目标粒子,然后可以将该目标粒子的计算任务和计算节点分配关系,确定为资源分配策略。通过上述处理,最终确定的资源分配策略,能够同时兼顾时延、负载及成本,不仅可以减少时延,而且可以降低成本和负载,从而可以更合理地对资源进行分配,解决了mec服务器负载不均衡、性能下降以及资源闲置问题,提高了资源和计算任务的匹配度。

可选的,下面给出一种步骤s203中确定目标粒子的具体实现方式,相应的处理可以如下:计算所有对应第一适应度函数全局极值的粒子的第二适应度函数个体值;将所有对应第一适应度函数全局极值的粒子中对应最小的第二适应度函数个体值的粒子,确定为目标粒子。

在一个示例实施例中,以存在三个对应第一适应度函数全局极值的粒子为例,可以首先计算出这三个粒子的第二适应度函数个体值。之后,可以将这三个粒子中对应最小第二适应度函数个体值的那个粒子,确定为目标粒子。这样,经过上述处理得到的目标粒子,其对应的资源分配策略可以同时兼顾时延、负载及成本,进一步提高了合理性。

可选的,考虑到仅存在一个第一适应度函数全局极值的情况,下面给出另一种获取资源分配策略的具体实现方式,相应的处理可以如下:当完成迭代计算时,在所有粒子的第一适应度函数个体值中仅存在一个第一适应度函数全局极值的情况下,将对应第一适应度函数全局极值的粒子的计算任务与计算节点分配关系,确定为资源分配策略。

在一个示例实施例中,对于在所有粒子的第一适应度函数个体值中仅存在一个第一适应度函数全局极值的情况,可以直接将对应第一适应度函数全局极值的粒子确定为目标粒子,并将目标粒子的计算任务与计算节点分配关系确定为资源分配策略,无需进行第二适应度的二次筛选处理。经过上述处理,可以快速的得到第一适应度对应指标下的资源分配策略,由于该指标为三个指标中优先考虑的指标,如优先考虑时延指标,故而得到的资源分配策略也具有一定的合理性。

可选的,下面再给出又一种获取资源分配策略的具体实现方式,相应的处理可以如下:在获取各计算任务的任务信息和各计算节点的性能信息之前,预测计算任务的总数目;在总数目大于预设数目的情况下,将超过预设数目的计算任务发送至mec服务器,将预设数目的计算任务发送至本地服务器。

在一个示例实施例中,靠近终端的地方还部署有本地服务器,本地服务器通常为终端提供非计算任务类的基础服务,当然,本地服务器也可以执行计算任务,只是考虑到本地服务器可用于执行计算任务的资源较少,故而对于执行计算任务的应用场景,需要引入mec服务器作为补充。这样,可以基于计算任务的总数目,对发送至mec服务器的计算任务的数量进行调整,通常情况下,当计算任务的总数目较少时,可以减少发送至mec服务器的计算任务的数量。具体的,可以采用预设预测算法,如马尔可夫链模型,对计算任务的总数目进行预测,得出计算任务的总数目。在总数目大于预设数目的情况下,可以将超过预设数目的计算任务发送至mec服务器,将预设数目的计算任务发送至本地服务器。在总数目小于等于预设数目的情况下,可以直接将所有的计算任务发送至本地服务器。经过上述预测处理,可以及时调整发送至本地服务器和mec服务器的计算任务的数量,从而可以对成本较高的mec服务器的负载情况进行调整,可以同时兼顾mec服务器的使用频率和成本。

上述获取分配策略的处理过程还可以参见图3,为了便于描述,图3中以时延函数作为第一适应度函数,以负载成本联合函数作为第二适应度函数,具体可以如下:

s301,预测计算任务的总数目,分配相应数目的计算任务至本地服务器或mec服务器。

s302,对于分配至本地服务器的计算任务,由本地服务器执行,进入相应的本地服务器执行流程。

s303,对于分配至mec服务器的计算任务,由mec服务器执行,并执行s304。

s304,构建粒子群并初始化,并执行s305。

s305,进行时延函数筛选,并执行s306。

s306,判断时延函数极值是否只有一个?若时延函数极值只有一个,则执行s307,若时延函数极值有多个,则执行s308。

s307,表明时延最小的粒子只有一个,将该粒子的位置作为最好位置,并执行s309。

s308,进行负载成本联合函数筛选,确定负载成本最小的粒子,该粒子的位置为最好位置,并执行s309。

s309,判断迭代次数是否超过最大迭代次数?若迭代次数超过最大迭代次数,则执行s314,若迭代次数没有超过最大迭代次数,则执行s310。

s310,判断是否处于迭代前期?若处于迭代前期,则执行s311,若未处于迭代前期,则执行s312。

s311,处于迭代前期,采用(1)式更新惯性权重值方案,并执行s313。

s312,处于迭代后期,采用(2)式更新惯性权重值方案,并执行s313。

s313,更新粒子的速度向量和位置向量,并执行s305。

s314,输出资源分配策略。

以上为本申请实施例提供的获取资源分配策略的方法的具体实现方式。本申请实施例,通过将计算任务和计算节点之间的分配关系转换为粒子群中的粒子,然后通过基于时延、负载和成本等指标构建的两个适应度函数对粒子群中的粒子进行二次筛选,从而可以筛选出唯一的一个粒子,进而可以将该粒子对应的计算任务和计算节点分配关系作为最终的资源分配策略。由于该粒子基于时延、负载及成本等多个指标筛选得到,因此该粒子对应的资源分配策略能够同时兼顾时延、负载及成本,不仅可以减少时延,而且可以降低成本,实现负载均衡,从而可以更合理地对资源进行分配,解决了mec服务器负载不均衡、性能下降以及资源闲置问题,提高了资源和计算任务的匹配度。

基于上述实施例提供的获取资源分配策略的方法,相应地,本申请还提供了获取资源分配策略的装置的具体实现方式。请参见以下实施例。

首先参见图4,本申请实施例提供的获取资源分配策略的装置包括以下模块:

构建模块401,用于获取各计算任务的任务信息和各计算节点的性能信息,并基于所述计算任务的数目和所述计算节点的数目构建粒子群,并对所述粒子群进行初始化,所述粒子群中的每个粒子对应有随机生成的计算任务和计算节点分配关系;

迭代计算模块402,用于结合所述任务信息和各所述计算节点的性能信息,并按照预设粒子群算法对所述粒子群中每个粒子的第一适应度函数个体值进行迭代计算,以调整各个粒子的计算任务和计算节点分配关系;

确定模块403,用于当完成迭代计算时,在所有粒子的第一适应度函数个体值中存在多个第一适应度函数全局极值的情况下,在所有对应所述第一适应度函数全局极值的粒子中确定对应最小的第二适应度函数个体值的目标粒子,并将所述目标粒子的计算任务和计算节点分配关系,确定为资源分配策略;所述第一适应度函数和所述第二适应度函数基于预设指标生成,且所述第二适应度函数与所述第一适应度函数不同;所述预设指标至少包括时延、负载和成本。

经过上述各模块的配合处理,可以将计算任务和计算节点之间的分配关系转换为粒子群中的粒子,然后通过基于时延、负载和成本等指标构建的两个适应度函数对粒子群中的粒子进行二次筛选,从而可以筛选出唯一的一个粒子,进而可以将该粒子对应的计算任务和计算节点分配关系作为最终的资源分配策略。由于该粒子基于时延、负载及成本等多个指标筛选得到,因此该粒子对应的资源分配策略能够同时兼顾时延、负载及成本,从而可以更合理地对资源进行分配,提高了资源和计算任务的匹配度。

可选的,为了构建粒子群,所述构建模块402,具体用于:

按照一个所述计算任务只能在一个所述计算节点执行的原则,随机生成预设数目类计算任务与计算节点分配关系,并将每类所述计算任务与计算节点分配关系与一个粒子进行对应,得到所述粒子群。

可选的,为了对粒子群进行初始化,如图5所示,所述装置还包括初始化模块404,具体用于:

对所述粒子群中所有粒子的位置向量和速度向量,以及所述粒子群的计算参数进行初始化;所述计算参数至少包括惯性权重、个体学习因子、群体学习因子以及迭代次数。

可选的,为了对目标粒子第一适应度函数个体值迭代计算,所述迭代计算模块402,具体用于:

在完成第n-1次对目标粒子第一适应度函数个体值迭代计算后,更新所述目标粒子的第一适应度函数个体极值,n为大于1的正整数;

基于更新后的所述第一适应度函数个体极值,进行第n次对目标粒子第一适应度函数个体值迭代计算。

可选的,为了更新目标粒子的第一适应度函数个体极值,所述迭代计算模块402,还具体用于:

在第一次迭代计算得到所述目标粒子的第一适应度函数个体值的情况下,所述目标粒子的第一适应度函数个体极值为所述目标粒子的第一适应度函数个体值;

在第n次迭代计算得到的所述目标粒子的第一适应度函数个体值等于所述目标粒子的第一适应度函数个体极值的情况下,计算所述目标粒子当前的第二适应度函数个体值;

如果所述目标粒子当前的第二适应度函数个体值,小于所述目标粒子的第一适应度函数个体极值对应的第二适应度函数个体值,则将所述目标粒子的第一适应度函数个体极值更新为第n次迭代计算得到的第一适应度函数个体值。

可选的,为了确定目标粒子,所述确定模块403,具体用于:

计算所有对应所述第一适应度函数全局极值的粒子的第二适应度函数个体值;

将所有对应所述第一适应度函数全局极值的粒子中对应最小的第二适应度函数个体值的粒子,确定为目标粒子。

可选的,为了确定资源分配策略,所述确定模块403,还具体用于:

在所有粒子的第一适应度函数个体值中仅存在一个第一适应度函数全局极值的情况下,将对应所述第一适应度函数全局极值的粒子的计算任务与计算节点分配关系,确定为资源分配策略。

可选的,为了确定待发送至mec服务器的计算任务的数目,如图6所示,上述装置还可以包括预测模块405,用于:

预测所述计算任务的总数目;

在所述总数目大于预设数目的情况下,将超过所述预设数目的所述计算任务发送至mec服务器,将预设数目的所述计算任务发送至本地服务器。

图4提供的获取资源分配策略的装置中的各个模块具有实现图1所示实施例中各个步骤的功能,并达到与图1所示获取资源分配策略的方法相同的技术效果,为简洁描述,在此不再赘述。

图7为实现本申请各个实施例的一种设备的硬件结构示意图。

在设备可以包括处理器701以及存储有计算机程序指令的存储器702。

具体地,上述处理器701可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本申请实施例的一个或多个集成电路。

存储器702可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器702可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器702可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器702可在综合网关容灾设备的内部或外部。在特定实施例中,存储器702是非易失性固态存储器。在特定实施例中,存储器702包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

处理器701通过读取并执行存储器702中存储的计算机程序指令,以实现上述实施例中的任意一种获取资源分配策略的方法。

在一个示例中,设备还可包括通信接口703和总线710。其中,如图3所示,处理器701、存储器702、通信接口703通过总线710连接并完成相互间的通信。

通信接口703,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。

总线710包括硬件、软件或两者,将设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线710可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

该设备可以执行本申请实施例中的获取资源分配策略的方法,从而实现结合图1和图3描述的获取资源分配策略的方法和装置。

本申请实施例还提供一种计算机可读存储介质,该存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述获取资源分配策略的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

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