本发明属于移动云计算技术领域,更具体地,涉及一种基于移动云环境下代码迁移的终端节能方法及系统。
背景技术:
移动设备处理器性能发展飞速,然而与pc处理性能相比,仍然存在很大的差距,主要原因是受移动设备尺寸限制,电池容量以及散热要求使得移动设备处理性能不可能跟pc和服务器相比。然后现在的移动应用变得越来越复杂,很多新的应用需求不断涌现,例如大型3d手游,虚拟现实技术,增强现实技术都需要高性能处理能力来生成高分辨率和高帧率的图像。如何增强移动设备处理能力的问题受到科研工作的广泛关注。
移动云计算技术被提出来解决移动设备处理能力不足和电池容量有限的问题,该技术的基本思想是将移动设备端的代码动态地迁移至远程云端执行。远程数据中心具有的强大计算能力和存储能力,通过将计算密集型的任务迁移至远程数据中心,移动设备不仅可以表现出更高的处理性能,而且还能因能耗的转移而提高电池的续航时间。
然而,在一些环境下,尤其是室内或者人群密集处,3g/4g蜂窝网络延时非常高,甚至不可用,移动设备将代码迁移至远程数据中心将付出很高的时延代价或者消耗更多的网络能耗,甚至无法连接远程数据中心。为了解决这个问题,有研究学者提出将代码迁移至附近的移动设备,这些附近的移动设备可以相互连接组成一个移动设备组成的移动云。这种方案基于两点事实:现在移动设备非常普及,而且计算能力越来越强;device-to-device(蓝牙,wifi-direct)连接技术允许移动设备间建立网络连接。然而,移动设备都是由有限容量的电池供电,代码迁移策略必须尽可能减少电池消耗,减少对其他用户的影响。由于迁移代码的计算能耗受移动设备当前cpu频率的影响,频率越高,任务的计算能耗越高,不考虑移动终端cpu频率特性的随机或者轮询方式的任务调度会导致严重的能耗问题。
技术实现要素:
针对现有技术的以上缺陷或改进需求,本发明的目的在于提供了一种基于移动云环境下代码迁移的终端节能方法及系统,由此解决现有针对移动云中代码迁移方案没有考虑cpu频率和能耗特性而导致的严重电池能耗问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于移动云环境下代码迁移的终端节能方法,包括:
s1、获取移动云环境中各终端设备的可用cpu频率;
s2、测量各终端设备在不同cpu频率下的指令计算速度组成指令计算速度矩阵s,以及各终端设备在不同cpu频率下的功率组成功率矩阵p;
s3、若存在cpu当前频率小于对应终端设备最高cpu频率的终端设备,则由d、c、r、f、l、s、p生成能耗最优的代码迁移策略,以决定任务迁往的终端设备,若所述能耗最优的代码迁移策略相比于上一次的代码迁移策略能耗降低,则更新输出所述能耗最优的代码迁移策略以及频率调节策略,其中,f表示各终端设备的当前频率组成的配置频率向量,l表示由各终端设备当前cpu负载生成的负载向量,r表示由各终端设备网络传输速率生成的向量,c表示由计算任务生成的任务计算量向量,d表示由计算任务数据传输量生成的向量;
s4、遍历最低频设备集合中的终端设备,模拟计算任务从不属于所述最低频设备集合中的终端设备迁移到所述最低频设备集合中的终端设备,若任务迁移前后满足性能约束,并且任务迁移后相比于迁移前的计算能耗降低,则将迁移至的终端设备加入备选调频设备,其中,所述最低频设备集合包括cpu当前频率最低的终端设备;
s5、若所述备选调频设备为空则将所述最低频设备集合中的所有终端设备的cpu当前频率提高一个级别,否则,从所述备选调频设备中选出节能最多的终端设备,将所述节能最多的终端设备的cpu当前频率升高一个级别,并返回步骤s3。
优选地,步骤s2具体包括以下子步骤:
s2.1、对于每一个终端设备,设置终端设备的cpu当前频率为最低频;
s2.2、若设置的频率超过该终端设备的cpu最高频,则结束执行;
s2.3、每隔预设周期t读取该终端设备的系统文件获取电流值和电压值;
s2.4、比较运行曼德博集合程序前后该终端设备的功率,功率差为当前cpu频率下的cpu功率;
s2.5、运行whetstone、dhrystone、linpack以及livermoreloops基准测试程序,获取cpu当前频率下的浮点数指令执行速度;
s2.6、将cpu当前频率升高一个频率级别,返回执行步骤s2.2。
优选地,步骤s3具体包括以下子步骤:
s3.1、建立目标函数,所述目标函数为所有计算任务的计算能耗和数据传输能耗之和;
s3.2、建立约束条件,所述约束条件为最后一个计算任务执行完成时间小于所有计算任务在本地设备上执行时间的α倍,其中,α为预设值;
s3.3、根据所述目标函数以及所述约束条件,由d、c、r、f、l、s、p生成能耗最优的代码迁移策略,以决定任务迁往的终端设备。
优选地,步骤s4具体包括以下子步骤:
s4.1、将cpu当前频率最低的终端设备组成最低频设备集合dmf;
s4.2、对任意终端设备i∈dmf,假设将终端设备
s4.3、进行约束测试;
s4.4、比较任务迁移前后的能耗值;
s4.5、若满足约束测试且任务迁移后的能耗值小于迁移之间的能耗值,则将设备i加入备选调频设备集合。
按照本发明的另一方面,提供了一种基于移动云环境下代码迁移的终端节能系统,包括:
获取模块,用于获取移动云环境中各终端设备的可用cpu频率;
测量模块,用于测量各终端设备在不同cpu频率下的指令计算速度组成指令计算速度矩阵s,以及各终端设备在不同cpu频率下的功率组成功率矩阵p;
迁移策略确定模块,用于在存在cpu当前频率小于对应终端设备最高cpu频率的终端设备时,由d、c、r、f、l、s、p生成能耗最优的代码迁移策略,以决定任务迁往的终端设备,若所述能耗最优的代码迁移策略相比于上一次的代码迁移策略能耗降低,则更新输出所述能耗最优的代码迁移策略以及频率调节策略,其中,f表示各终端设备的当前频率组成的配置频率向量,l表示由各终端设备当前cpu负载生成的负载向量,r表示由各终端设备网络传输速率生成的向量,c表示由计算任务生成的任务计算量向量,d表示由计算任务数据传输量生成的向量;
备选调频设备确定模块,用于遍历最低频设备集合中的终端设备,模拟计算任务从不属于所述最低频设备集合中的终端设备迁移到所述最低频设备集合中的终端设备,若任务迁移前后满足性能约束,并且任务迁移后相比于迁移前的计算能耗降低,则将迁移至的终端设备加入备选调频设备,其中,所述最低频设备集合包括cpu当前频率最低的终端设备;
判断处理模块,用于在所述备选调频设备为空时,将所述最低频设备集合中的所有终端设备的cpu当前频率提高一个级别,否则,从所述备选调频设备中选出节能最多的终端设备,将所述节能最多的终端设备的cpu当前频率升高一个级别,并返回执行所述迁移策略确定模块的操作。
优选地,所述测量模块包括:
设置模块,用于对于每一个终端设备,设置终端设备的cpu当前频率为最低频;
第一判断模块,用于在设置的频率超过该终端设备的cpu最高频时,结束执行;
采样模块,用于每隔预设周期t读取该终端设备的系统文件获取电流值和电压值;
功率确定模块,用于比较运行曼德博集合程序前后该终端设备的功率,功率差为当前cpu频率下的cpu功率;
执行速度确定模块,用于运行whetstone、dhrystone、linpack以及livermoreloops基准测试程序,获取cpu当前频率下的浮点数指令执行速度;
频率调整模块,用于将cpu当前频率升高一个频率级别,返回执行所述第一判断模块的操作。
优选地,所述迁移策略确定模块包括:
目标函数建立模块,用于建立目标函数,所述目标函数为所有计算任务的计算能耗和数据传输能耗之和;
约束条件建立模块,用于建立约束条件,所述约束条件为最后一个计算任务执行完成时间小于所有计算任务在本地设备上执行时间的α倍,其中,α为预设值;
迁移策略确定子模块,用于根据所述目标函数以及所述约束条件,由d、c、r、f、l、s、p生成能耗最优的代码迁移策略,以决定任务迁往的终端设备。
优选地,所述备选调频设备确定模块包括:
最低频设备确定模块,用于将cpu当前频率最低的终端设备组成最低频设备集合dmf;
模拟迁移模块,用于对任意终端设备i∈dmf,假设将终端设备
预设测试模块,用于进行约束测试;
能耗值比较模块,用于比较任务迁移前后的能耗值;
第二判断模块,用于在满足约束测试且任务迁移后的能耗值小于迁移之间的能耗值时,将设备i加入备选调频设备集合。
总体而言,本发明方法与现有技术方案相比,能够取得下列有益效果:
(1)充分利用cpu频率和能耗特性,尽量将代码迁移至低频cpu上,从而节约更多的电池能耗。轮询方式任务调度会将任务依次迁移到可用的移动设备上,随机方式任务调度会从可用设备中随机选择一个可用设备,这两种任务调度方式都没有考虑移动设备当前cpu频率,因此有可能将任务迁移至高频设备,导致消耗更多的电池能耗。而本发明提出的技术方案会在测量各设备的cpu频率和能耗特性,在保证性能的前提下,尽可能将代码迁移至低频设备。
(2)利用频率调节技术保证迁移任务的性能。性能和能耗存在权衡关系,过多的节省能耗会导致应用性能低,将低用户体验质量,因此本发明利用频率调节技术保证最后一个任务完成时间会小于一定的阈值,从而保证性能不受影响。
附图说明
图1为本发明实施例公开的一种基于移动云环境下代码迁移的终端节能方法的流程示意图;
图2为本发明实施例公开的一种终端设备不同cpu频率下的指令计算速度及功率获取方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的整体思路在于,当终端设备需要通过迁移代码至移动云中来实现获取高性能计算能力时,代码迁移策略可以在获取每个可用终端设备的cpu频率和能耗特征后,将计算任务并行化后迁移至附近的低频终端设备来降低计算任务的能耗。代码迁移策略决定每个任务在哪台终端设备上执行,为了实现最大程度的节能,需要生成能耗最优的代码迁移决策,同时为了保证任务的性能需求,需要生成频率调节策略来决定每个终端设备cpu的运行的频率,从而保证计算任务完成时间不超过一定阈值。
如图1所示为本发明实施例公开的一种基于移动云环境下代码迁移的终端节能方法的流程示意图;在图1所示的方法中包括以下步骤:
s1、获取移动云环境中各终端设备i的可用cpu频率{fi0,fi1,fi2,...,fih};
s2、测量各终端设备在不同cpu频率下的指令计算速度s(fih)组成指令计算速度矩阵s,以及各终端设备在不同cpu频率下的功率p(fih)组成功率矩阵p,其中,s(fih)表示终端设备i在频率h时的指令计算速度,p(fih)表示终端设备i在频率h时的功率;
其中,步骤s2具体包括以下子步骤:
s2.1、对于每一个终端设备,设置终端设备的cpu当前频率为最低频;
s2.2、若设置的频率超过该终端设备的cpu最高频,则结束执行;
s2.3、每隔预设周期t读取该终端设备的系统文件获取电流值和电压值,t值可以根据需要进行确定,优选地,t为200ms;
s2.4、比较运行曼德博集合程序前后该终端设备的功率,功率差为当前cpu频率下的cpu功率;
s2.5、运行whetstone、dhrystone、linpack以及livermoreloops基准测试程序,获取cpu当前频率下的浮点数指令执行速度;
s2.6、将cpu当前频率升高一个频率级别,返回执行步骤s2.2。
s3、若存在cpu当前频率小于对应终端设备最高cpu频率的终端设备,则由d、c、r、f、l、s、p生成能耗最优的代码迁移策略,以决定任务迁往的终端设备,若所述能耗最优的代码迁移策略相比于上一次的代码迁移策略能耗降低,则更新输出所述能耗最优的代码迁移策略以及频率调节策略,其中,f表示各终端设备的当前频率组成的配置频率向量,l表示由各终端设备当前cpu负载生成的负载向量,r表示由各终端设备网络传输速率生成的向量,c表示由计算任务生成的任务计算量向量,d表示由计算任务数据传输量生成的向量;
其中,能耗最优的代码迁移策略可以通过使用混合整数线性规划模型进行求解。
其中,步骤s3具体包括以下子步骤:
s3.1、建立目标函数,所述目标函数为所有计算任务的计算能耗和数据传输能耗之和;
其中,为了解释目标函数,这里用形式化表达式进行说明。假设有m台设备和n个并行子任务。ci和di分别表示计算任务i的计算量和数据量,
目标函数为所有计算任务的计算任务传输能耗之和和计算能耗之和表示为:
s3.2、建立约束条件,所述约束条件为最后一个计算任务执行完成时间小于所有计算任务在本地设备上执行时间的α倍,其中,α为预设值;α可以根据实际需要进行确定;
具体的性能约束表达式为:
s3.3、根据所述目标函数以及所述约束条件,由d、c、r、f、l、s、p生成能耗最优的代码迁移策略,以决定任务迁往的终端设备。
s4、遍历最低频设备集合中的终端设备,模拟计算任务从不属于所述最低频设备集合中的终端设备迁移到所述最低频设备集合中的终端设备,若任务迁移前后满足性能约束,并且任务迁移后相比于迁移前的计算能耗降低,则将迁移至的终端设备加入备选调频设备,其中,所述最低频设备集合包括cpu当前频率最低的终端设备;
其中,步骤s4具体包括以下子步骤:
s4.1、将cpu当前频率最低的终端设备组成最低频设备集合dmf;
s4.2、对任意终端设备i∈dmf,假设将终端设备
s4.3、进行约束测试;
s4.4、比较任务迁移前后的能耗值;
s4.5、若满足约束测试且任务迁移后的能耗值小于迁移之间的能耗值,则将设备i加入备选调频设备集合。
s5、若所述备选调频设备为空则将所述最低频设备集合中的所有终端设备的cpu当前频率提高一个级别,否则,从所述备选调频设备中选出节能最多的终端设备,将所述节能最多的终端设备的cpu当前频率升高一个级别,并返回步骤s3。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。