发明内容
本发明提供了一种计算迁移方法和装置,用于解决目前的研究通常是以离散的方式分配带宽资源和计算资源,得到的优化结果无疑很难达到全局最优的技术问题。
本发明提供的一种计算迁移方法,涉及宏基站、与所述宏基站连接的多个非正交多址接入聚簇和边缘服务器;每个所述非正交多址接入聚簇具有一个路边单元和与所述路边单元连接的多个用户;所述方法包括:
以用户迁移决策、用户带宽资源分配、用户计算资源分配、用户缓存决策为变量,以所有所述用户的用户效益最大化为优化目标构建全局效益函数;
对所述全局效益函数进行变量替换,将所述全局效益函数变换为凸函数;
通过交替方向乘子法将所述凸函数分解为多个子函数;
对所述子函数进行分布式计算,得到全局最优解;
根据所述全局最优解确定计算迁移方案。
可选地,所述用户效益包括通信效益;所述通信效益具体通过以下公式计
算得到:
其中,
为权重系数,
为用户i
j的通信效益;
为所述用户i
j的迁移决策;
为通信取得的收益;
为所述用户i
j被分配到的带宽资源;
为带宽的单价;
为租用带宽的成本。
可选地,所述用户效益还包括边缘计算效益;所述边缘计算效益具体通过以下公式计算得到:
其中,
为权重系数,
为所述用户i
j的边缘计算效益;
为本地执行所述用户i
j的任务的时间;
为所述边缘服务器执行所述用户i
j的任务的时间;
为边缘计算收益;
为计算资源单价;
为给所述用户i
j分配的计算资源;
为边缘计算成本。
可选地,所述用户效益还包括缓存效益;所述缓存效益具体通过以下公式计算得到:
其中,
为所述用户i
j的缓存效益;
为所述用户i
j的缓存决策;
为权重系数;
为所述用户i
j的任务被再次请求的概率;
为任务输入数据的大小;
为所述用户i
j的缓存收益;
为存储资源的单价;
为缓存的成本。
其中,
为完成所述用户i
j的任务所需的CPU周期数;
为所述用户i
j本地的计算能力。
可选地,所述对所述子函数进行分布式计算,得到全局最优解的步骤,包括:
通过所述宏基站向所述路边单元广播起始数据;
通过所述路边单元向所述宏基站发送所述路边单元所在的所述非正交多址接入聚簇中所有所述用户的信道信息、局部计算信息、任务信息和预设拉格朗日乘子变量;
执行迭代操作,通过所述路边单元基于所述信道信息、所述局部计算信息、所述任务信息和所述预设拉格朗日乘子变量,执行局部变量更新操作,得到局部变量更新数据,并将所述局部变量更新数据发送至所述宏基站;
通过所述宏基站基于所述局部变量更新数据执行全局变量更新操作,获取全局变量更新数据;
通过所述宏基站对所述全局变量更新数据执行对偶变量更新操作,获得拉格朗日乘子更新变量,并将所述拉格朗日乘子更新变量发送至所有所述路边单元;
判断当前迭代是否满足迭代停止标准;
若否,将所述拉格朗日乘子更新变量设置为所述预设拉格朗日乘子变量;重新执行通过所述路边单元基于所述信道信息、所述局部计算信息、所述任务信息和所述预设拉格朗日乘子变量,执行局部变量更新操作,得到局部变量更新数据,并将所述局部变量更新数据发送至所述宏基站的步骤;
若是,执行二进制变量恢复操作,并输出当前解作为最优解。
本发明还提供了一种计算迁移装置,涉及宏基站、与所述宏基站连接的多个非正交多址接入聚簇和边缘服务器;每个所述非正交多址接入聚簇具有一个路边单元和与所述路边单元连接的多个用户;所述装置包括:
全局效益函数构建模块,用于以用户迁移决策、用户带宽资源分配、用户计算资源分配、用户缓存决策为变量,以所有所述用户的用户效益最大化为优化目标构建全局效益函数;
凸函数变换模块,用于对所述全局效益函数进行变量替换,将所述全局效益函数变换为凸函数;
分解模块,用于通过交替方向乘子法将所述凸函数分解为多个子函数;
分布式计算模块,用于对所述子函数进行分布式计算,得到全局最优解;
计算迁移方案确定模块,用于根据所述全局最优解确定计算迁移方案。
本发明还提供了一种电子设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行如上任一项所述的计算迁移方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如上任一项所述的计算迁移方法。
从以上技术方案可以看出,本发明具有以下优点:本发明提供了一种计算迁移方法,涉及宏基站、与宏基站连接的多个非正交多址接入聚簇和边缘服务器;每个非正交多址接入聚簇具有一个路边单元和与路边单元连接的多个用户;并具体公开了:以用户迁移决策、用户带宽资源分配、用户计算资源分配、用户缓存决策为变量,以所有用户的用户效益最大化为优化目标构建全局效益函数;对全局效益函数进行变量替换,将全局效益函数变换为凸函数;通过交替方向乘子法将凸函数分解为多个子函数;对子函数进行分布式计算,得到全局最优解;根据全局最优解确定计算迁移方案。本发明结合计算迁移决策、带宽资源分配、计算资源分配和缓存决策构建全局效益函数进行全局优化,解决了目前的研究通常是以离散的方式分配带宽资源和计算资源,得到的优化结果无疑很难达到全局最优的技术问题。此外,本发明通过交替方向乘子法将优化函数分解成若干子函数,从而可以使用分布式的方法解决,相比起中心式算法,具有良好的扩展性。
具体实施方式
本发明实施例提供了一种计算迁移方法和装置,用于解决目前的研究通常是以离散的方式分配带宽资源和计算资源,得到的优化结果无疑很难达到全局最优的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种计算迁移方法的步骤流程图。
本发明提供的一种计算迁移方法,涉及宏基站、与所述宏基站连接的多个非正交多址接入聚簇和边缘服务器;每个所述非正交多址接入聚簇具有一个路边单元和与所述路边单元连接的多个用户;具体可以包括以下步骤:
步骤101,以用户迁移决策、用户带宽资源分配、用户计算资源分配、用户缓存决策为变量,以所有所述用户的用户效益最大化为优化目标构建全局效益函数;
步骤102,对所述全局效益函数进行变量替换,将所述全局效益函数变换为凸函数;
步骤103,通过交替方向乘子法将所述凸函数分解为多个子函数;
步骤104,对所述子函数进行分布式计算,得到全局最优解;
步骤105,根据所述全局最优解确定计算迁移方案。
非正交多址接入(nonorthogonal multiple access,NOMA):一种通信技术,可以使得多个用户能同时和宏基站通信。非正交多址接入在功率域叠加多个用户的信号,然后利用用户各自的信道增益差异进行解码。相对于正交多址接入,非正交多址接入能够更充分的利用珍贵的频谱资源。
计算迁移(computation offloading):移动用户可以将部分任务迁移到边缘服务器中完成,服务器再将得到的结果发给用户,比如人脸识别应用,用户将照片发给边缘服务器,边缘服务器将识别的结果发给用户。
本发明结合计算迁移决策、带宽资源分配、计算资源分配和缓存决策构建全局效益函数进行全局优化,解决了目前的研究通常是以离散的方式分配带宽资源和计算资源,得到的优化结果无疑很难达到全局最优的技术问题。此外,本发明通过交替方向乘子法将优化函数分解成若干子函数,从而可以使用分布式的方法解决,相比起中心式算法,具有良好的扩展性。
为便于理解,如图2所示,本发明实施例构建了一个系统模型,包括一个宏基站,M个路边单元,和一些用户。用户被划分为M个非正交多址接入聚簇,每个聚簇j有一个路边单元,所有聚簇的集合被表示为
聚簇j中所有的用户的集合表示为
假设每一个用户具有一个计算密集型任务(比如人脸识别、语音识别等),该任务可以被表示为
表示的是任务输入数据的大小,
表示的是完成该任务所需要的CPU周期数。每个用户可以选择迁移任务到边缘服务器或不迁移并进行局部计算,用户的迁移决策表示为
表用户不迁移,
表示迁移。使用
表示所有用户的迁移决策。
基于该系统模型,可以生成系统的内容缓存模型、通信模型和计算模型。
a)、内容缓存模型
不同用户的任务,请求的数据有可能是相同的。因此可以缓存部分受欢迎的数据,当该部分数据被再次请求时就无需重新去下载,从而节省带宽。对于每一个用户的任务数据,边缘服务器可以选择缓存
或不缓存
是缓存决策,具体可以使用
表示所有用户的缓存决策。假设所有的数据可以分为F种类型,则数据被再次请求的概率为p
f,用公式表示如下:
其中,ε是一个正常数,用于特征化内容的受欢迎程度,一般为0.5~1。
b)、通信模型
在模型中,聚簇j中的用户通过非正交多址接入技术与该聚簇中的路边单元相连,路边单元则通过电缆连接到宏基站。假设总的可用带宽资源是B,而每个用户被分配到的带宽资源是
所有用户的带宽资源分配被表示为
用户通过非正交多址接入技术与路边单元通信,然后路边单元对用户的信号解码。由于信道增益最高的用户遭受到同聚簇中所有其他用户的信号干扰,而信道最低的用户不受其他用户的干扰,假设每一个聚簇里面的用户按照信道增益进行了排序,即
那么用户的信噪比
可由如下公式计算得到:
其中,
是用户信号传输功率,
是用户的信道增益。进而可以得到用户i
j的传输速率
c)、计算模型
计算模型具体可用于进行局部计算和边缘计算。
其中,局部计算即在本地上完成任务的计算。假设用户本地的计算能力是
任务要求的CPU周期数是
本地执行此任务所需要的时间
是:
边缘计算,即是将数据传输到边缘服务器,通过边缘服务器进行计算。边缘服务器计算完成后将结果回传给用户。因为结果数据量通常是很小的,所以这里可以不考虑回传结果花费的时间。用户将数据上传到路边单元所需要的时间
是:
用户数据到达边缘服务器后,边缘服务器将会给每个用户分配一定的计算资源。给用户i
j分配的计算资源是
所有用户的计算资源分配表示为
边缘服务器执行用户i
j的任务所需要的时间
是:
在本发明实施例中,优化目标是最大化系统的全局效益。因此需要综合考虑所有用户的用户效益,其中,每个用户的用户效益包括三个部分:通信效益、边缘计算效益和缓存效益。
具体地,用户ij的通信效益可以通过以下公式计算得到:
其中,
为权重系数,
为用户i
j的通信效益;
为所述用户的迁移决策;
为通信取得的收益;
为用户i
j被分配到的带宽资源;
为带宽的单价;
为租用带宽的成本。
当用户ij选择迁移时,用户ij的边缘计算效益可以通过以下公式计算得到:
其中,
为权重系数,
为用户i
j的边缘计算效益;
为本地执行用户i
j的任务的时间;
为所述边缘服务器执行用户i
j的任务的时间;
为边缘计算收益;η
ij为计算资源单价;
为给用户i
j分配的计算资源;
为边缘计算成本。
当用户选择缓存内容时,用户ij的缓存效益可以通过以下公式计算得到:
其中,
为用户i
j的缓存效益;
为用户的缓存决策;
为权重系数;
为用户i
j的任务被再次请求的概率;
为任务输入数据的大小;
为用户的缓存收益;
为存储资源的单价;
为缓存的成本。
基于每个用户的总效益函数,再考虑系统的优化目标,可以得出一个全局效益函数如下:
约束条件为:
其中,约束C
1表示分配给所有用户的带宽不能超过总带宽,约束C
2表示分配给所有用户的计算资源不能超过服务器的最大计算资源,约束C
3表示服务器缓存的所有数据的总大小不能超过服务器的最大存储空间,约束C
4表示用户只能选择迁移或不迁移,约束C
5表示用户只能选择缓存或不缓存,约束C
6表示一个聚簇中,选择迁移的用户数量最多不超过L(通常取大于2的整数),避免迁移的用户过多,造成通信拥塞,约束C
7表示整个系统中选择迁移的用户数量不能超过
这个约束是为了让选择迁移的用户分配到更多的计算资源。
值得注意的是,由于存在离散变量
所以上述函数F
1不是凸函数。为此,可以对
进行变量松弛,将其变成连续变量,令
对于
的松弛可以理解为一个用户可以迁移部分任务,对
的松弛可以理解为用户可以缓存部分数据。进行变量松弛之后,问题依然不是凸函数,因为在约束中
等变量耦合在了一起。为了分离这些耦合变量,我们进行变量替换。
其中:
在将全局效益函数转换为凸函数
后,可以通过交替方向乘子法将问题进行分解,得到多个子函数,然后采用分布式算法求最优解。
然后定义函数
则:
为了对问题进行分解,首先定义
在聚簇j的局部副本为
则问题可以被改成为:
接着,对子函数对应的子问题进行分布式计算,求取全局最优解,其步骤如下:
S1,通过所述宏基站向所述路边单元广播起始数据;
S2,通过所述路边单元向所述宏基站发送所述路边单元所在的所述非正交多址接入聚簇中所有所述用户的信道信息、局部计算信息、任务信息和预设拉格朗日乘子变量;
S3,执行迭代操作,通过所述路边单元基于所述信道信息、所述局部计算信息、所述任务信息和所述预设拉格朗日乘子变量,执行局部变量更新操作,得到局部变量更新数据,并将所述局部变量更新数据发送至所述宏基站;
S4,通过所述宏基站基于所述局部变量更新数据执行全局变量更新操作,获取全局变量更新数据;
S5,通过所述宏基站对所述全局变量更新数据执行对偶变量更新操作,获得拉格朗日乘子更新变量,并将所述拉格朗日乘子更新变量发送至所有所述路边单元;
S6,判断当前迭代是否满足迭代停止标准;
S7,若否,重新执行通过所述路边单元基于所述信道信息、所述局部计算信息、所述任务信息和所述预设拉格朗日乘子变量,执行局部变量更新操作,得到局部变量更新数据,并将所述局部变量更新数据发送至所述宏基站的步骤;
S8,若是,执行二进制变量恢复操作,并输出当前解作为最优解。
具体地,分布式算法包括:
1、初始化:
1)、宏基站设定∈
pri,∈
dual和ρ,选择一个起点
宏基站将这些数据和总的可用带宽B以及总的计算能力F等数据广播给所有路边单元。其中,ρ是惩罚因子,一般取大于0的某个值,其大小会影响算法收敛速度;∈
pri和∈
dual是足够小的正常数,表示可以容忍的误差。
2)、路边单元j收集本聚簇中所有用户的信道信息(信道增益
),局部计算信息
任务信息
等,并且设置拉格朗日乘子变量(W
j,U
j,G
j,K
j),将这些数据发送给宏基站。
2、迭代:
1)、根据下述公式,所有路边单元执行局部变量更新操作,获得
将结果发送给宏基站。
其中,t为迭代次数,作为变量的上标时,表示该变量在第t次迭代时的值。
需要说明的是,由于变量
是凸函数,因此可以使用对数障碍法和最速下降法求得最优解。
2)、根据下述公式,宏基站执行全局变量更新操作,获得
简化后,可得
然后再执行对偶变量更新,获得
将更新的数据广播给所有路边单元。
对偶变量相关更新函数如下所示:
3)、直到停止标准被满足,迭代结束。
一般地,执行迭代操作需要确定一个停止标准,考虑到本发明实施例采用的分布式算法会使原始变量、对偶变量、残差不断收敛到某一确定值。因此本发明的停止标准可以为:
a、原始可行性条件的残差足够小,即:
b、对偶可行条件的残差也足够小,即:
3、二进制变量恢复
此步骤主要是为了将松弛的变量
恢复成二进制变量,变量
的恢复遵循以下原则:
首先考虑
最大的用户
若令
时,能够满足约束问题P
1中的各种约束,则令
否则
其中
是
关于
的一阶导数。基本思想是,一阶导数
越大,用户
能从计算迁移中获得更多的收益。变量
的恢复也采用相同的原则,只是当
时,
也一定为0,因为用户只有选择计算迁移才能在服务器上缓存数据。
当满足停止标准时,可以输出优化目标的最优解,根据最优解,可以确定计算迁移的最优方案。
本发明结合计算迁移决策、带宽资源分配、计算资源分配和缓存决策构建全局效益函数进行全局优化,解决了目前的研究通常是以离散的方式分配带宽资源和计算资源,得到的优化结果无疑很难达到全局最优的技术问题。此外,本发明通过交替方向乘子法将优化函数分解成若干子函数,从而可以使用分布式的方法解决,相比起中心式算法,具有良好的扩展性。
请参阅图3,图3为本发明实施例提供的一种计算迁移装置的结构框图。
本发明实施例提供了一种计算迁移装置,涉及宏基站、与所述宏基站连接的多个非正交多址接入聚簇和边缘服务器;每个所述非正交多址接入聚簇具有一个路边单元和与所述路边单元连接的多个用户;所述装置包括:
全局效益函数构建模块301,用于以用户迁移决策、用户带宽资源分配、用户计算资源分配、用户缓存决策为变量,以所有所述用户的用户效益最大化为优化目标构建全局效益函数;
凸函数变换模块302,用于对所述全局效益函数进行变量替换,将所述全局效益函数变换为凸函数;
分解模块303,用于通过交替方向乘子法将所述凸函数分解为多个子函数;
分布式计算模块304,用于对所述子函数进行分布式计算,得到全局最优解;
计算迁移方案确定模块305,用于根据所述全局最优解确定计算迁移方案。
在本发明实施例中,所述分布式计算模块304,包括:
广播子模块,用于通过所述宏基站向所述路边单元广播起始数据;
发送子模块,用于通过所述路边单元向所述宏基站发送所述路边单元所在的所述非正交多址接入聚簇中所有所述用户的信道信息、局部计算信息、任务信息和预设拉格朗日乘子变量;
局部变量更新子模块,用于执行迭代操作,通过所述路边单元基于所述信道信息、所述局部计算信息、所述任务信息和所述预设拉格朗日乘子变量,执行局部变量更新操作,得到局部变量更新数据,并将所述局部变量更新数据发送至所述宏基站;
全局变量更新数据获取子模块,用于通过所述宏基站基于所述局部变量更新数据执行全局变量更新操作,获取全局变量更新数据;
对偶变量更新子模块,用于通过所述宏基站对所述全局变量更新数据执行对偶变量更新操作,获得拉格朗日乘子更新变量,并将所述拉格朗日乘子更新变量发送至所有所述路边单元;
判断子模块,用于判断当前迭代是否满足迭代停止标准;
迭代子模块,用于若否,将所述拉格朗日乘子更新变量设置为所述预设拉格朗日乘子变量;重新执行通过所述路边单元基于所述信道信息、所述局部计算信息、所述任务信息和所述预设拉格朗日乘子变量,执行局部变量更新操作,得到局部变量更新数据,并将所述局部变量更新数据发送至所述宏基站的步骤;
输出子模块,用于若是,执行二进制变量恢复操作,并输出当前解作为最优解。
本发明还提供了一种电子设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行本发明实施例所述的计算迁移方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行本发明实施例所述的计算迁移方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来达到实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。