CN102968173A - 一种基于带宽自适应代码迁移的移动设备节能方法 - Google Patents

一种基于带宽自适应代码迁移的移动设备节能方法 Download PDF

Info

Publication number
CN102968173A
CN102968173A CN2012104218459A CN201210421845A CN102968173A CN 102968173 A CN102968173 A CN 102968173A CN 2012104218459 A CN2012104218459 A CN 2012104218459A CN 201210421845 A CN201210421845 A CN 201210421845A CN 102968173 A CN102968173 A CN 102968173A
Authority
CN
China
Prior art keywords
program
bandwidth
mobile device
node
power consumption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012104218459A
Other languages
English (en)
Other versions
CN102968173B (zh
Inventor
牛建伟
宋文芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201210421845.9A priority Critical patent/CN102968173B/zh
Publication of CN102968173A publication Critical patent/CN102968173A/zh
Application granted granted Critical
Publication of CN102968173B publication Critical patent/CN102968173B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提出一种基于带宽自适应代码迁移的移动设备节能方法,通过对移动应用程序进行静态和动态分析,构造出一种加权对象关系图,从而将程序分割问题转化为对象关系图分割问题;将移动环境中变化的带宽看作一个变量,提出基于运行时间和能量最优的目标模型;针对程序分割优化模型提出带宽自适应的分支定界程序分割法(BBAP)和基于最小割的贪心程序分割法(MCGAP);最后基于所得到的分割方案实现移动应用程序在移动设备和服务器间的代码迁移和分布式执行。本发明方法能够有效缩短移动应用程序的运行时间,降低移动设备的电能消耗,并对带宽变化具有良好的适应性。

Description

一种基于带宽自适应代码迁移的移动设备节能方法
技术领域
本发明属于移动计算领域,具体涉及一种基于带宽自适应代码迁移的移动设备节能方法。
背景技术
移动设备因其轻巧便携、使用方便等优点,逐渐成为用户量最大的计算平台。随着移动用户的需求不断增长,移动设备的性能不断提升,电池容量已经成为移动设备进一步发展的瓶颈问题。近年来,基于程序分割的代码迁移技术逐渐应用于移动计算领域,成为缓解移动设备资源有限问题的一种有效方法。根据程序分割方案将应用程序的一部分代码迁移到服务器端运行,可以缩短应用程序的运行时间,降低移动设备的能量消耗。
面向对象应用程序的复杂性和多样性为实现程序分割带来了挑战。国内外学者在这一领域进行了较为广泛的研究并提出了相应的方案。Eduardo等人提出的MAUI系统是基于微软通用语言运行库CLR的代码迁移系统,需要程序员事先对程序源代码中可在远端服务器执行的对象添加“Remotable”标识;Roelof等人提出的Cuckoo系统通过扩展Android编译系统,为程序员提供了一种便捷的编程模型,可以辅助程序员完成一部分工作(例如远程方法调用的实现),但仍需程序员手动实现;Shumao等人则是借助中间件实现移动设备上的程序分割和迁移。这些方案依赖于程序员或中间件工具,限制了其应用领域。
于是Sinha等研究者进一步提出了自动程序分割方案,这种方法无需借助额外工具,不依赖于程序员,可以透明地实现程序自动分割,适用于移动平台。近年来,面向对象程序的自动分割方案大都通过对程序进行纯静态分析或纯动态分析构造程序对象关系图,并基于对象关系图(Object Relation Graph,ORG)实现程序分割。Spiegel等人和Dahm提出的Doorastha系统均采用纯静态程序分析方法构造对象关系图,不能够准确反映程序的运行态信息,因而无法获取最优的程序分割结果。而Messer等人和Bialek等人则采用纯动态程序分析方法构造对象关系图,相比纯静态分析,纯动态程序分析能够获取更为精确的程序运行时信息,但得到的对象关系图庞大复杂,导致程序分割开销过大,不适用于资源有限的移动平台。Wang Lei等人通过构造两层对象关系图,提出了适用于不同目标模型的程序分割方案和基于Java的分布式系统框架,但并未对程序分割方法进行具体研究,没有考虑移动环境中带宽的变化。
程序分割的关键是如何选择程序的最优分割方案,尽可能实现移动设备能耗最小和数据传输开销最小。由于数据传输开销与网络带宽直接相关,不同的带宽会对应不同的最优分割方案。以往的程序分割通常假设带宽固定不变,如Diaconescu等人即根据静态带宽计算网络传输开销以决策程序分割,并未考虑网络环境因素(如带宽)的变化。由于移动网络环境中带宽变化频繁,传统的静态程序分割技术通常会保守地根据较低带宽决策分割方案。然而这种分割方案在带宽较高情况下无法充分利用带宽资源,造成网络资源浪费。Byung-Gon等人通过分析移动设备和网络环境的异构和动态变化特性,提出了动态程序分割,但频繁的程序分割任务势必为移动设备带来较大的额外开销负担。
发明内容
针对移动设备能量资源有限问题,为了有效节省移动设备的能量消耗,并克服静态程序分割不适用于带宽变化的移动环境和动态程序分割额外开销较大的问题,本发明提出一种基于带宽自适应代码迁移的移动设备节能方法。
本发明的一种基于带宽自适应代码迁移的移动设备节能方法,具体过程如下:
步骤1,构造加权对象关系图,具体是:首先,对应用程序进行静态程序分析,根据应用程序的方法调用关系,获取应用程序中的对象和对象间的调用关系,构造应用程序初始的对象关系图(Initial Object Relation Graph,IORG),对象关系图的节点和边分别对应应用程序对象和对象间的调用关系;然后,通过动态程序分析获得对象关系图中各节点对象的运行时间以及对象间的调用关系(每条边)的通信数据量,得到加权对象关系图。
步骤2,基于以上加权对象关系图,将带宽作为一个变量,建立基于运行时间和耗电量的程序分割优化模型。令xi标识节点i的运行位置,xi=1和xi=0分别表示节点i在移动设备和服务器端运行,则程序分割方案可表示为X={x1,x2,…,xn},n为节点个数,令b表示当前带宽。程序分割优化模型的目标在于求得最优分割方案
Figure BDA00002326518700021
满足
Figure BDA00002326518700022
XP为模型求解空间,W(X,b)表示当前带宽为b时程序分割方案X的优化模型,具体定义如下:
W(X,b)=wt×T(X,b)/TLocal+we×E(X,b)/ELocal
其中,TLocal和ELocal分别表示程序全部运行在移动设备时的运行时间和耗电量;wt和we分别表示运行时间和耗电量的权重,且满足wt+we=1;T(X,b)和E(X,b)分别表示当前带宽为b时采用程序分割方案X的程序运行时间和耗电量;模型求解空间XP表示为:
X p = { X | W ( X , b l ) ≤ W ( X b l opt , b l ) × ( 1 + a ) }
其中,带宽阈值bl为满足条件P(b≥bl)≥Pc的最大带宽值,Pc为所设定的概率阈值;为带宽bl下最优分割方案
Figure BDA00002326518700025
对应的模型值;a>0为经验常数,用以设定W(X,bl)的上限值为
Figure BDA00002326518700026
步骤3,进行带宽自适应程序分割,在节点个数n不超过200时,采用基于深度优先搜索策略的分支定界程序分割方法寻找最优分割方案,在节点个数n大于200时,采用基于最小割的贪心方法(MCGAP)来寻找最优分割方案。
所述的分支定界程序分割方法基于分支定界深度优先搜索法,深度搜索的约束条件包括:
1)程序分割方案在当前带宽b下对应的优化模型值小于当前保存的优化模型的最小值;2)程序分割方案在带宽阈值bl下的模型目标值不高于所设定模型上限值
所述的基于最小割的贪心方法,利用Stoer-Wagner最小割算法求得带宽为b和bl时对应的运行在移动设备的节点集合Cb和运行在服务器端的节点集合令待分割节点
Figure BDA00002326518700033
对V'中节点进行分割,采用Stoer-Wagner最小割算法中的最大邻接值排序算法对节点进行排序,然后基于贪心策略,同时根据与分支定界程序分割方法中相同的深度搜索的约束条件选取最优分割方案。
步骤4,根据步骤3求得的最优分割方案,实现程序在移动设备和服务器间的代码迁移和分布式执行,有效降低应用程序的执行时间和移动设备的耗电量,延长移动设备的电池使用寿命。
本发明的优点与积极效果在于:(1)采用静态与动态程序分析相结合的方法构造程序的加权对象关系图,所构建的对象关系图复杂度低,并能够准确地反映程序结构,有利于程序分割,适用于资源有限的移动平台;(2)将移动环境中带宽作为一个变量,建立基于运行时间和耗电量的程序分割优化模型,适用于带宽变化的移动环境;(3)基于加权对象关系图和程序分割优化模型,提出了两种带宽自适应的程序分割方法:分支定界程序分割法和基于最小割的贪心方法,前者能够求出小规模程序分割的最优解,后者可快速求得大规模程序分割的近似最优解;两种方法能够适应带宽变化,有效缩短程序运行时间,降低移动设备的能量消耗。
附图说明
图1为本发明的带宽自适应程序分割流程图;
图2为本发明的示例程序图;
图3为本发明的示例程序初始对象关系图;
图4为本发明的示例程序加权对象关系图;
图5为本发明的BBAP方法伪代码示意图;
图6为本发明的MCGAP方法伪代码示意图;
图7为采用三种方法构造加权对象关系图的大小比较示意图;
图8为本发明实施例中程序实际运行时间与三种方法的预测运行时间的对比示意图;
图9为本发明的仿真实验参数示意图;
图10为本发明的仿真实验加权对象关系图信息;
图11为本发明的BBAP方法对目标模型三种特殊情况的求解分割时间对比图;
图12为本发明的BBAP方法的分割结果在不同带宽下对应的运行时间对比示意图;
图13为本发明的BBAP方法的分割结果在不同带宽下对应的耗电量对比示意图;
图14为本发明的BBAP方法的分割结果在不同带宽下对应的加权模型值对比示意图;
图15为本发明的MCGAP方法对目标模型三种特殊情况的求解分割时间对比图;
图16为本发明的BBAP与MGCAP运行时间最优模型求解结果对比图;
图17为本发明的MCGAP方法的分割结果在不同带宽下对应的运行时间对比示意图;
图18为本发明的MCGAP方法的分割结果在不同带宽下对应的耗电量对比示意图;
图19为本发明的MCGAP方法的分割结果在不同带宽下对应的加权模型值对比示意图;
图20为本发明的BBAP与MGCAP的平均性能对比图。
具体实施方式
下面将结合附图和实例对本发明作进一步的详细说明。
本发明提出的一种基于带宽自适应代码迁移的移动设备节能方法,首先,采用静态与动态分析相结合的方法分析移动应用程序,并构造其对应的加权对象关系图;其次,将移动环境中变化的带宽作为一个变量,建立基于运行时间和耗电量的程序分割优化模型;然后,基于对象关系图和程序分割模型实现带宽自适应的程序分割方法;最后,根据分割结果实现程序在移动设备和服务器间的代码迁移和分布式执行,从而降低应用程序的执行时间和移动设备的耗电量,延长移动设备电池的使用寿命,而且应用程序的运行时间和耗电量随带宽变化波动较小,对带宽变化具有一定的适应性。如图1所示,本发明的移动设备节能方法,具体过程如下:
步骤1,构造加权对象关系图。
本发明实施例以一个Java程序为例来阐述加权对象关系图的构造过程,示例程序如图2所示,程序包含四个类:FacePreview、ImageCapture、FaceDetection和FaceDetectionLib,其中FacePreview类的main方法中创建了一个ImageCapture对象和两个FaceDetection对象,而两个FaceDetection对象均在执行自身DetectFace方法时调用了FaceDetectionLib类的ProcessBlock方法。首先,进行静态程序分析,利用指向分析(Points-to)技术分析Java程序的字节码文件,得到其方法调用关系图,并通过遍历调用关系图获取程序的所有对象及对象间的调用关系,从而构造出程序的初始对象关系图(IORG),其节点和边分别对应应用程序的对象和对象间的调用关系。图3表示为示例程序对应的初始对象关系图,S_FacePreview创建对象D_ImageCapture、D_FaceDetection1和D_FaceDetection2,对象D_FaceDetection1和D_FaceDetection2都调用S_FaceDetectionLib的方法,其中S和D前缀分别表示静态对象和动态对象。由于节点间的交互主要以方法调用的方式体现,其通信数据主要表现为方法调用的参数及返回值,在动态程序分析阶段,利用Java字节码重写技术,可以获得程序IORG中每个节点对象的CPU运行时间以及每条边(对象间的调用关系)的通信数据量,即加权对象关系图中各节点与边的权值。图4表示为示例程序对应的加权对象关系图,例如节点S-FacePreview所代表的对象的CPU运行时间为50ms,节点S_FacePreview与节点D_ImageCaptur之间的通信数据量为9066bytes。
步骤2,建立程序分割优化模型。
考虑到移动环境中带宽的变化,本发明将带宽作为一个变量,提出基于运行时间和耗电量的程序分割优化模型,令xi标识节点i的运行位置,xi=1和xi=0分别表示节点i在移动设备和服务器端运行,则程序分割方案可表示为X={x1,x2,…,xn},b表示当前带宽,
Figure BDA00002326518700051
表示最优程序分割方案。程序分割优化模型的目标在于求得最优分割方案
Figure BDA00002326518700052
满足XP表示模型求解空间,W(X,b)表示当前带宽为b时分割方案X的优化模型,具体定义如下:
W(X,b)=wt×T(X,b)/TLocal+we×E(X,b)/ELocal
其中,TLocal和ELocal分别表示程序全部运行在移动设备时的运行时间和耗电量;wt和we分别表示运行时间和耗电量的权重,且满足wt+we=1;T(X,b)和E(X,b)分别表示当前带宽为b时采用程序分割方案X的程序运行时间和耗电量;模型求解空间XP表示为:
X p = { X | W ( X , b l ) ≤ W ( X b l opt , b l ) × ( 1 + a ) }
其中,带宽阈值bl为满足概率P(b≥bl)≥Pc的最大带宽值,Pc为概率阈值,主要根据无线移动环境中的带宽变化情况具体设定,本发明的实施实验中设定Pc为0.85。
Figure BDA00002326518700055
为带宽bl下最优分割方案
Figure BDA00002326518700056
对应的优化模型值;a为经验常数,用以设定W(X,bl)的上限值为
Figure BDA00002326518700057
其中a的优选值与具体应用程序及其移动环境有关,本发明设定的优选范围为0<a<1,本发明中根据对具体应用程序的实验测试,该参数的优选值为a=0.4。
带宽为b时采用程序分割方案X的程序运行时间T(X,b)表示如下:
T ( X , b ) = &Sigma; 1 &le; i &le; n ( x i &times; t nli + ( 1 - x i ) &times; t nsi ) + &Sigma; 1 &le; i < j &le; n | x i - x j | &times; t ij
其中,tnli与tnsi分别表示节点i在移动设备与服务器端的运行时间,节点i在移动设备的运行时间tnli在动态分析阶段可以得到,即节点i的权重,设服务器计算速度是移动设备的k倍,则:
tnsi=tnli/k
Wij表示在不同位置(移动设备或服务器)执行的节点i与节点j的通信数据量,则带宽为b时节点i,j间数据传输时间tij为:
tij=Wij/b
带宽为b时采用程序分割方案X的程序耗电量E(X,b)表示为:
E ( X , b ) = &Sigma; 1 &le; i &le; n x i &times; E i + &Sigma; 1 &le; i < j &le; n | x i - x j | &times; E ij
其中,Ei表示节点i在移动设备上执行的耗电量,Eij表示节点i,j之间数据通信的耗电量;令Pcpu表示移动设备的CPU功率。一般情况下,移动设备WiFi接口的接收功率与发送功率差别较小,均表示为数据通信功率Pw,则有:
Ei=tnli×Pcpu
Eij=tij×Pw
由于
Figure BDA00002326518700061
Figure BDA00002326518700062
若b≥bl,则
Figure BDA00002326518700063
又由于P(b≥bl)≥Pc,因此在目标模型中最优分割方案
Figure BDA00002326518700064
满足:
P ( W ( X _ , b ) &le; W ( X b l opt , b l ) &times; ( 1 + a ) ) &GreaterEqual; P c
这说明所求最优分割方案在带宽变化情况下能够以概率Pc使所对应优化模型的值满足求解空间Xp的阈值限制条件。
该模型中运行时间和耗电量的权重可以由用户根据移动设备剩余电量和对程序响应时间的需求灵活设定。特别地,当wt=1和we=0时,即对应运行时间最优模型;当wt=0和we=1时,即为耗电量最优模型。
步骤3,进行带宽自适应程序分割。
在上述加权对象关系图和程序分割优化模型的基础上,首先,基于深度优先搜索策略,提出分支定界程序分割方法(BBAP),深度搜索的约束条件不仅满足分割方案在当前带宽下对应的优化模型值小于当前保存的最小优化模型值,同时还需保证此分割在带宽阈值bl下的模型值不高于所设定的优化模型的上限值,从而避免所选分割方案在带宽较低时开销过大,实现对带宽变化的适应性。但由于在最坏情况下方法时间复杂度为O(2n)(n为节点个数),该方法不适用于对象(节点数)较多规模较大的应用程序,在本发明的实验平台下当移动应用程序对应的对象节点数大于200时,该方法计算程序分割的求解时间会明显增加。为此,本发明针对大规模应用程序,从贪心策略考虑提出启发式的基于最小割的贪心方法(MCGAP)。MCGAP方法采用最小割Stoer-Wagner方法中用到的最大邻接值排序方法对对象节点进行排序,以BBAP方法中的约束条件为限制,基于贪心策略快速解得程序分割方案。
本发明从搜索策略和贪心策略考虑,提出分别适用于小规模和大规模应用程序分割的分支定界程序分割法(BBAP)和基于最小割的贪心方法(MCGAP),其伪代码分别如图5,图6所示,其中输入主要包括当前带宽b、带宽阈值bl,以及程序对应的加权对象关系图WORG=(V,E,Wv,We),V、E、Wv和We分别表示节点集合、边集合、节点权重集合和边权重集合;输出为程序的最优分割方案和优化模型对应的值。
如图5所示,BBAP方法的第1和2行伪代码首先采用Stoer-Wagner静态方法求解带宽为bl时的最优分割方案对应的优化模型的值minV_SW,并设定bl带宽下优化模型值的上限值minV。第3行初始化所要求解的优化模型最优值minValue为一个所能表示的最大整数。NL表示必须在本地移动设备上执行的节点集合,如与用户交互的接口对象等节点,第4-8行BBAP方法将必须运行在本地移动设备的节点标记为“xi=1”,V中不属于NL的节点都属于待分割节点,待分割节点标记为“xi=-1”。第9行BBSearch函数基于基本的分支定界法,采用深度优先搜索法求得模型的最优解,每次迭代中均将当前的解空间分成两个子空间(xi=0表示该节点在服务器执行;xi=1表示该节点在本地移动设备上执行),并采用剪枝策略进行方法优化;BBSearch中的约束条件不仅满足分割方案在当前带宽下对应的优化模型的值小于当前保存的模型最小值(minValue),同时还需保证此分割在带宽阈值bl下的优化模型的值不高于所设定的模型阈值(minV),从而避免分割方案在带宽较低时开销过大,保证对带宽变化的适应性。最后BBAP方法的第10行返回程序的最优分割方案Xmin和优化模型对应的最优值minValue。最坏情况下BBAP方法时间复杂度为O(2n),当应用程序对象节点数较多时,计算复杂度较高,因此该方法不适用于规模较大应用程序的分割。
由于带宽越高,数据传输开销越低,因此,带宽较高情况下运行于移动设备的节点在带宽降低时将仍运行于移动设备,而带宽较低情况下运行于服务器的节点在带宽升高时将仍运行于服务器。记Xb=(Cb,Sb)表示带宽b下对应的程序最优分割方案,Cb和Sb分别表示带宽为b时运行在移动设备和服务器端的节点集合,对于某个带宽B下对应的程序最优分割方案XB=(CB,SB),有:(1)(2)
Figure BDA00002326518700072
MCGAP方法中,考虑在b与bl间变化的带宽,设
Figure BDA00002326518700073
为模型最优解,则有
Figure BDA00002326518700074
Figure BDA00002326518700075
如图6所示,MCGAP方法首先在第1行代码中将所要求解的优化模型最优值minValue初始化为一个所能表示的最大整数。第2-4行根据Stoer-Wagner方法分别求得静态带宽b和bl下的最优程序分割方案(Cb,Sb)和
Figure BDA00002326518700076
并根据
Figure BDA00002326518700077
对应的优化模型最优值设定带宽bl下优化模型值的上限值Wbl。MCGAP方法中第5-6行的Adjust函数根据Stoer-Wagner方法所求得的Cb
Figure BDA00002326518700078
调整程序的加权对象关系图,并确定待分割节点V',
Figure BDA00002326518700079
即当带宽在bl和b间变化时只需决策V'中节点的分割,以减小计算量。第7-18行即基于最小割求解程序的最优分割方案,其中第8行MA_Order函数采用最小割Stoer-Wagner方法中的最大邻接值排序方法对节点进行排序;第9-11行基于贪心策略确定当前选择的分割方案(C,S),C和S分别表示当前分割中运行在本地移动设备和服务器的节点集合,并计算此方案在带宽b和bl下对应的优化模型值Wb(C,S)和Wbl(C,S);第12-15行根据与BBAP中相同的两个约束条件:Wbl(C,S)<Wbl和Wb(C,S)<minValue,其中Wbl表示带宽bl下程序分割优化模型的上限值,更新当前最优分割方案(Cmin,Smin);第16-17行Contract函数是将vm-1和vm两个节点合并,并从节点集合V'中删除节点vm,其中A3=Contract(A1,A2)具体表示删除两个节点A1和A2,生成一个新节点A3,并对于图中其他任意节点v,建立新边e=(A3,v),更新其权重:w(A3,v)=w(A1,v)+w(A2,v)。最后MCGAP方法的第19行返回程序的最终最优分割方案(Cmin,Smin)和优化模型对应的最优值minValue。
步骤4,分布式执行程序。
最后根据程序分割方法解得的最优分割方案,实现程序在移动设备和服务器间的代码迁移和分布式执行,可以有效降低应用程序的执行时间和移动设备的耗电量,延长移动设备的电池使用寿命。
下面将结合附图说明本发明提出的基于带宽自适应程序分割的移动设备节能方法相比其他方法的改进效果。首先为了分析本发明的加权对象关系图构造方法性能,实施平台采用内存为3.0GB,CPU频率为2.53GHz,运行Ubuntu 10.10操作系统的ThinkPad X201i笔记本。利用Java字节码分析与优化框架Soot工具和字节码重写技术,针对Dacapo Benchmarks程序,将本发明的加权对象关系图构造方法(CSDPAC)与纯静态分析方法(PSPAC)、纯动态分析方法(PDPAC)进行对比。图7和图8都是执行8个示例程序(Programs)来进行对比,分别是:avrora,h2,luindex,lusearch,pmd,sunflow,tomcat和xalan。
图7表示三种方法所获取对象关系图的大小比较。从图7可以看出,与PDPAC相比,CSDPAC与PSPAC所构造的加权对象关系图规模较小。这是由于CSDPAC与PSPAC均利用程序的静态信息删除系统库对象,对初始程序对象关系图进行裁剪,而PDPAC记录了包括系统库对象及其关系等所有运行时信息,对象关系图规模较大。
图8表示程序实际运行时间与三种方法下预测运行时间的对比。实验根据程序总字节码数(Bytecode Instruction Count,简称BIC)来预测程序的运行时间。预测运行时间(PredictedExecution Time,简称PET)与实际运行时间(Actual Execution Time,简称AET)越接近,表明所构造对象关系图越准确。从图8可以看出,CSDPAC和PDPAC的预测运行时间都比较接近于程序实际运行时间,表明动态分析能够获得较为准确的程序运行时信息。而PSPAC只采用静态程序分析,无法精确获取程序运行时信息,因此预测运行时间偏小,表明PSPAC所获取对象关系图不够准确。由图7和图8可以看出,CSDPAC结合了PDPAC和PSPAC的优点,既能获得较准确的程序信息,又能避免对象关系图规模较大,减轻移动应用程序分割的计算负担。
为评价本发明的BBAP与MCGAP方法的性能,实施平台采用内存为3.0GB,CPU频率为2.53GHz,运行Windows 7操作系统的ThinkPad X201i笔记本。具体实施参数设置如图9所示,图10为应用程序实例对应的对象关系图中节点个数和边个数。仿真实验针对程序分割模型的三种特殊情况:(1)wt=1,we=0(运行时间最优);(2)wt=0,we=1(能量最优);(3)wt=0.5,we=0.5,分别实施如下步骤:
(1)用Stoer-Wagner方法和BBAP/MCGAP方法分别求解带宽100kb/s下的最优分割Cut(W,S_W,100)和Cut(W,BBAP,100)(或Cut(W,MCGAP,100));其中S_W是Stoer-Wagner方法的简称,W表示优化模型;
(2)分别计算以上两个分割Cut(W,S_W,100)与Cut(W,BBAP,100)(或Cut(W,MCGAP,100))在不同带宽b下对应的模型值W{Cut(W,S_W,100),b}、W{Cut(W,BBAP,100),b}(或W{Cut(W,MCGAP,100),b});
(3)用Stoer-Wagner方法依次计算不同带宽b下对应的模型最优值Wmin(b);
(4)计算程序全部在移动设备上执行对应的模型值WLocal。
特殊地,为了更加直观,对于(1)wt=1,we=0(运行时间最优)和(2)wt=0,we=1(能量最优)两种情况,实验结果将模型值等价转化为程序运行时间和耗电量,图中符号表示分别用‘T’(Time)和‘E’(Energy)代替相应的‘W’(Weight),即W{Cut(W,S_W,100),b}、W{Cut(W,BBAP,100),b}(或W{Cut(W,MCGAP,100),b})、Wmin(b)和WLocal在(1)wt=1,we=0情况下分别对应表示为T{Cut(T,S W,100),b}、T{Cut(T,BBAP,100),b}(或T{Cut(T,MCGAP,100),b})、Tmin(b)和TLocal,在(2)wt=0,we=1情况下分别对应表示为E{Cut(E,S_W,100),b}、E{Cut(E,BBAP,100),b}(或E{Cut(E,MCGAP,100),b})、Emin(b)和ELocal。
图11表示BBAP方法对目标模型三种特殊情况下的求解时间。图中Model_T、Model_E和Model_W分别对应(1)wt=1和we=0;(2)wt=0和we=1;(3)wt=0.5和we=0.5三种情况。可以看出,对于节点个数较少的图,BBAP能够在较短时间内求出最优解;对于节点个数较多的图,其求解时间较长。这说明BBAP适用于规模较小的图,而对于节点数较多的图,如对于lusearch程序,BBAP的计算开销明显增大。
图12、图13和图14分别表示为BBAP与其他方法在带宽变化情况下对应的程序运行时间(wt=1,we=0)、耗电量(wt=0,we=1)和最优模型值(wt=0.5,we=0.5)的性能对比图。图12~14中分别给出了在四个程序的运行对比,四个程序分别是:(A)RandomGraph1程序,(B)RandomGraph2程序,(C)lusearch程序,(D)avrora程序。在图12中,T{Cut(T,BBAP,100),b}和T{Cut(T,S_W,100),b}分别表示带宽为100kb/s时用BBAP和Stoer-Wagner方法得到的最优分割方案Cut(T,BBAP,100)和Cut(T,S W,100)在不同带宽b下对应的程序运行时间。Tmin(b)表示在每个带宽b下多次用Stoer-Wagner方法求得的最优分割方案对应的最短程序运行时间。TLocal表示不采用程序分割,即程序全部在移动设备本地执行的时间。可以看出,T{Cut(T,BBAP,100),b}与Tmin(b)在多数情况下均小于TLocal,而T{Cut(T,S_W,100),b}在带宽较大情况下也小于TLocal,这说明利用程序分割实现代码迁移,能够有效降低应用程序的运行时间。当带宽大幅度下降时,静态程序最优分割Cut(T,S_W,100)对应的运行时间T{Cut(T,S_W,100),b}急剧增长,随带宽变化波动较大。而T{Cut(T,BBAP,100),b}较接近于不同带宽下的程序最短运行时间Tmin(b),且波动较为平缓。图13和图14对应的程序耗电量和最优模型值具有类似结论。这说明相比静态Stoer-Wagner方法,BBAP能够较好地适应带宽变化,减少应用程序运行时间和耗电量;而与每个不同带宽下均需重新计算分割的动态方法相比,BBAP仅需分割一次,降低了分割开销。
图15为MCGAP方法对目标模型三种特殊情况下的求解时间。Model_T、Model_E和Model_W分别对应(1)wt=1和we=0(运行时间最优);(2)wt=0和we=1(能量最优);(3)wt=05和we=0.5。与图11比较,可以看出,图节点个数较少时MCGAP方法的求解时间与BBAP方法相差不大;而节点个数较多时MCGAP方法的求解时间明显减少。
图16为MCGAP方法与BBAP方法在不同带宽下求解的程序最短运行时间对比图。其中b表示带宽,B、M和P分别表示BBAP、MCGAP方法和MCGAP近似解的精确度。设
Figure BDA00002326518700101
为BBAP解得的模型最优解,X为采用MCGAP方法求得的近似最优解,则W(X,b)/
Figure BDA00002326518700102
为MCGAP方法近似解的精确度。从图16可以看出,MCGAP求解的最短程序运行时间较接近于BBAP对应的最优解,精确度较高,可用于较快地求得规模较大对象关系图的近似最优解。
图17、图18和图19分别为MCGAP与其他方法在带宽变化情况下对应的程序运行时间(wt=1,we=0)、耗电量(wt=0,we=1)和最优模型值(wt=0.5,we=0.5)的性能对比图。图17~19中分别给出了在四个程序的运行对比,四个程序分别是:(a)avrora程序,(b)lusearch程序,(c)luindex程序,(d)h2程序。由图17,图18和图19可以看出,与程序全部运行在移动设备相比,利用程序分割和代码迁移可以降低移动设备的耗电量,缩短应用程序的运行时间;而与静态程序分割Stoer-Wagner方法相比,MCGAP对应的模型目标值较接近于不同带宽下的最小值,随带宽波动较为平缓。可见,随着环境中带宽的变化,MCGAP能够避免模型目标值因带宽降低而急剧增加,有效缩短程序运行时间,降低移动设备的耗电量。虽然图中动态方法的性能较好,但BBAP和MCGAP均避免了动态方法在不同带宽下多次计算分割的较大开销。如果考虑动态方法多次分割的计算开销,其性能将明显下降。
图20为BBAP与MCGAP方法的平均性能对比图。TR1和ER1分别表示与采用Stoer-Wagner方法相比,采用BBAP/MCGAP方法时程序平均运行时间和耗电量降低的百分比;TR2和ER2分别表示与程序全部运行在移动设备相比,采用BBAP或MCGAP方法时程序平均运行时间和耗电量降低的百分比。可以看出,与程序全部运行在移动设备相比,采用BBAP方法对应的程序平均运行时间和耗电量分别降低了44.17%和34.47%,采用MCGAP方法的程序平均运行时间和耗电量分别降低了37.44%和46.09%;而与静态程序分割Stoer-Wagner方法相比,BBAP对应的平均运行时间和耗电量分别降低了26.38%和25.88%,MCGAP对应的程序平均运行时间和耗电量分别降低了26.99%和30.58%。
通过以上具体实施实验验证,可以得出,在带宽不断变化的情况下,本发明的基于带宽自适应程序分割和代码迁移的移动设备节能方法,可以有效降低应用程序的执行时间和移动设备的耗电量,从而延长移动设备的电池使用寿命。

Claims (5)

1.一种基于带宽自适应代码迁移的移动设备节能方法,在移动环境带宽不断变化的情况下,其特征在于,该移动设备节能方法通过下面步骤实现:
步骤1:构造加权对象关系图,具体是:首先,进行静态程序分析,根据程序的方法调用关系,构造程序初始的对象关系图,对象关系图中的各节点和边分别对应程序中的对象和对象间的调用关系;然后,通过动态程序分析获得对象关系图中各节点对象的运行时间以及每条边的通信数据量,得到加权对象关系图;
步骤2:基于加权对象关系图,将带宽作为一个变量,建立基于运行时间和耗电量的程序分割优化模型,具体是:令xi标识节点i的运行位置,xi=1和xi=0分别表示节点i在移动设备和服务器端运行,程序分割方案表示为X={x1,x2,…,xn},n为加权对象关系图中的节点个数,则程序分割优化模型的目标在于求得最优分割方案
Figure FDA00002326518600011
满足XP为模型求解空间,b表示当前带宽,W(X,b)表示当前带宽为b时程序分割方案X的优化模型,具体定义如下:
W(X,b)=wt×T(X,b)/TLocal+we×E(X,b)/ELocal
其中,TLocal和ELocal分别表示程序全部运行在移动设备的运行时间和耗电量;wt和we分别表示运行时间和耗电量的权重,且满足wt+we=1;T(X,b)和E(X,b)分别表示当前带宽为b时采用程序分割方案X的程序运行时间和耗电量;
所述的模型求解空间XP定义为:其中,带宽阈值bl为满足概率P(b≥bl)≥Pc的最大带宽值,Pc为所设定的概率阈值;为带宽bl下最优程序分割方案
Figure FDA00002326518600015
对应的优化模型值;经验常数a>0;
步骤3:进行带宽自适应程序分割,在节点个数n不超过200时,采用分支定界程序分割方法寻找最优分割方案,在节点个数n大于200时,采用基于最小割的贪心方法来寻找最优分割方案;
所述的分支定界程序分割方法基于分支定界深度优先搜索法,深度搜索的约束条件包括:
1)程序分割方案在当前带宽b下对应的优化模型值小于当前保存的优化模型的最小值;2)程序分割方案在带宽阈值bl下的模型目标值不高于所设定模型上限值
Figure FDA00002326518600016
所述的基于最小割的贪心方法,利用Stoer-Wagner最小割算法求得带宽为b和bl时对应的运行在移动设备的节点集合Cb和运行在服务器端的节点集合
Figure FDA00002326518600017
令待分割节点
Figure FDA00002326518600018
对V'中节点进行分割,采用Stoer-Wagner最小割算法中的最大邻接值排序算法对节点进行排序,然后基于贪心策略,同时根据与分支定界程序分割方法中相同的深度搜索的约束条件选取最优分割方案;
步骤4:根据得到的最优分割方案,实现程序在移动设备和服务器间的代码迁移和分布式执行。
2.根据权利要求1所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,所述的概率阈值Pc设定为0.85。
3.根据权利要求1所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,所述的经验常数a设定为0.4。
4.根据权利要求1所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,步骤2中所述的带宽为b时采用程序分割方案X的程序运行时间T(X,b)为:
T ( X , b ) = &Sigma; 1 &le; i &le; n ( x i &times; t nli + ( 1 - x i ) &times; t nsi ) + &Sigma; 1 &le; i < j &le; n | x i - x j | &times; t ij
其中,tnli与tnsi分别表示节点i在移动设备与服务器端的运行时间;tnli为加权对象关系图中对应节点i的权重,设服务器计算速度是移动设备的k倍,则:tnsi=tnli/k;令Wij表示移动设备与服务器端的通信数据量,则带宽为b时节点i,j间数据传输时间tij为:tij=Wij/b。
5.根据权利要求1所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,步骤2中所述的带宽为b时采用程序分割方案X的程序耗电量E(X,b)为:
E ( X , b ) = &Sigma; 1 &le; i &le; n x i &times; E i + &Sigma; 1 &le; i < j &le; n | x i - x j | &times; E ij
其中,Ei表示节点i在移动设备上运行的耗电量,Ei=tnli×Pcpu;Eij表示节点i,j之间数据传输的耗电量,Eij=tij×Pw;Pcpu表示移动设备的CPU功率,Pw表示移动设备WiFi接口的数据通信功率。
CN201210421845.9A 2012-09-28 2012-10-30 一种基于带宽自适应代码迁移的移动设备节能方法 Expired - Fee Related CN102968173B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210421845.9A CN102968173B (zh) 2012-09-28 2012-10-30 一种基于带宽自适应代码迁移的移动设备节能方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201210367870 2012-09-28
CN201210367870.3 2012-09-28
CN2012103678703 2012-09-28
CN201210421845.9A CN102968173B (zh) 2012-09-28 2012-10-30 一种基于带宽自适应代码迁移的移动设备节能方法

Publications (2)

Publication Number Publication Date
CN102968173A true CN102968173A (zh) 2013-03-13
CN102968173B CN102968173B (zh) 2015-08-26

Family

ID=47798354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210421845.9A Expired - Fee Related CN102968173B (zh) 2012-09-28 2012-10-30 一种基于带宽自适应代码迁移的移动设备节能方法

Country Status (1)

Country Link
CN (1) CN102968173B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909449A (zh) * 2017-01-11 2017-06-30 西可通信技术设备(河源)有限公司 一种移动终端程序的计算迁移方法与装置
CN109981546A (zh) * 2017-12-28 2019-07-05 北京京东尚科信息技术有限公司 获取应用模块间的远程调用关系的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579518A (en) * 1993-03-19 1996-11-26 Fuji Xerox Co., Ltd. Message compiler for object-oriented language that statically produces object code by provisionally identifying a set of candidate types
JPH09179738A (ja) * 1995-12-26 1997-07-11 Hitachi Ltd オブジェクト指向言語処理方法及び処理装置
CN101473301A (zh) * 2006-06-13 2009-07-01 微软公司 迭代静态和动态软件分析
US20100131721A1 (en) * 2008-11-21 2010-05-27 Richard Title Managing memory to support large-scale interprocedural static analysis for security problems
US20120060142A1 (en) * 2010-09-02 2012-03-08 Code Value Ltd. System and method of cost oriented software profiling

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579518A (en) * 1993-03-19 1996-11-26 Fuji Xerox Co., Ltd. Message compiler for object-oriented language that statically produces object code by provisionally identifying a set of candidate types
JPH09179738A (ja) * 1995-12-26 1997-07-11 Hitachi Ltd オブジェクト指向言語処理方法及び処理装置
CN101473301A (zh) * 2006-06-13 2009-07-01 微软公司 迭代静态和动态软件分析
US20100131721A1 (en) * 2008-11-21 2010-05-27 Richard Title Managing memory to support large-scale interprocedural static analysis for security problems
US20120060142A1 (en) * 2010-09-02 2012-03-08 Code Value Ltd. System and method of cost oriented software profiling

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
于利前等: "《静动态结合的Java程序不变性分析方法》", 《计算机学报》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909449A (zh) * 2017-01-11 2017-06-30 西可通信技术设备(河源)有限公司 一种移动终端程序的计算迁移方法与装置
CN106909449B (zh) * 2017-01-11 2021-03-23 西可通信技术设备(河源)有限公司 一种移动终端程序的计算迁移方法与装置
CN109981546A (zh) * 2017-12-28 2019-07-05 北京京东尚科信息技术有限公司 获取应用模块间的远程调用关系的方法和装置
CN109981546B (zh) * 2017-12-28 2021-08-20 北京京东尚科信息技术有限公司 获取应用模块间的远程调用关系的方法和装置

Also Published As

Publication number Publication date
CN102968173B (zh) 2015-08-26

Similar Documents

Publication Publication Date Title
Wu et al. An efficient application partitioning algorithm in mobile environments
Niu et al. Bandwidth-adaptive partitioning for distributed execution optimization of mobile applications
Niu et al. Selecting proper wireless network interfaces for user experience enhancement with guaranteed probability
CN107016175A (zh) 适用神经网络处理器的自动化设计方法、装置及优化方法
CN112433819A (zh) 异构集群调度的模拟方法、装置、计算机设备及存储介质
CN104202373A (zh) 移动云计算迁移方法及系统
Billet et al. From task graphs to concrete actions: a new task mapping algorithm for the future internet of things
WO2020248511A1 (zh) 一种基于运行时模型实现对终端应用控制的方法
Chéour et al. Evaluation of simulator tools and power‐aware scheduling model for wireless sensor networks
Balis et al. Holistic approach to management of IT infrastructure for environmental monitoring and decision support systems with urgent computing capabilities
Jha et al. Multiobjective deployment of data analysis operations in heterogeneous IoT infrastructure
CN104252383A (zh) 基于混沌粒子群算法的可重构计算的软硬件任务划分方法
CN113722218A (zh) 一种基于编译器中间表示的软件缺陷预测模型构建方法
CN110852930B (zh) 一种基于OpenCL的FPGA图处理加速方法和系统
CN102968173B (zh) 一种基于带宽自适应代码迁移的移动设备节能方法
CN102681855A (zh) 一种面向无线传感网的模型到代码的转化方法
CN113014649B (zh) 一种基于深度学习的云物联负载均衡方法、装置及设备
CN102779025A (zh) 一种基于Hadoop的并行化PLSA方法
CN102902804A (zh) 一个高效的bpel服务动态更新方法
Niu et al. Bandwidth-adaptive application partitioning for execution time and energy optimization
CN105653523A (zh) 能耗监管物联网络基础平台的系统构建方法
Di Marco et al. Model-driven approach to Agilla Agent generation
Zhang et al. Reliable and efficient task allocation method in wireless sensor networks
Matthé Applying reconfiguration cost and control pattern modeling to self-adaptive systems
Mouline et al. Enabling temporal-aware contexts for adaptative distributed systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150826

Termination date: 20151030

EXPY Termination of patent right or utility model