CN102968173B - 一种基于带宽自适应代码迁移的移动设备节能方法 - Google Patents
一种基于带宽自适应代码迁移的移动设备节能方法 Download PDFInfo
- Publication number
- CN102968173B CN102968173B CN201210421845.9A CN201210421845A CN102968173B CN 102968173 B CN102968173 B CN 102968173B CN 201210421845 A CN201210421845 A CN 201210421845A CN 102968173 B CN102968173 B CN 102968173B
- Authority
- CN
- China
- Prior art keywords
- program
- bandwidth
- mobile device
- node
- segmentation
- 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.)
- Expired - Fee Related
Links
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表示当前带宽。程序分割优化模型的目标在于求得最优分割方案满足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表示为:
其中,带宽阈值bl为满足条件P(b≥bl)≥Pc的最大带宽值,Pc为所设定的概率阈值;为带宽bl下最优分割方案对应的模型值;a>0为经验常数,用以设定W(X,bl)的上限值为
步骤3,进行带宽自适应程序分割,在节点个数n不超过200时,采用基于深度优先搜索策略的分支定界程序分割方法寻找最优分割方案,在节点个数n大于200时,采用基于最小割的贪心方法(MCGAP)来寻找最优分割方案。
所述的分支定界程序分割方法基于分支定界深度优先搜索法,深度搜索的约束条件包括:1)程序分割方案在当前带宽b下对应的优化模型值小于当前保存的优化模型的最小值;2)程序分割方案在带宽阈值bl下的模型目标值不高于所设定模型上限值
所述的基于最小割的贪心方法,利用Stoer-Wagner最小割算法求得带宽为b和bl时对应的运行在移动设备的节点集合Cb和运行在服务器端的节点集合令待分割节点对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_ImageCapture之间的通信数据量为9066bytes。
步骤2,建立程序分割优化模型。
考虑到移动环境中带宽的变化,本发明将带宽作为一个变量,提出基于运行时间和耗电量的程序分割优化模型,令xi标识节点i的运行位置,xi=1和xi=0分别表示节点i在移动设备和服务器端运行,则程序分割方案可表示为X={x1,x2,…,xn},b表示当前带宽,表示最优程序分割方案。程序分割优化模型的目标在于求得最优分割方案满足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表示为:
其中,带宽阈值bl为满足概率P(b≥bl)≥Pc的最大带宽值,Pc为概率阈值,主要根据无线移动环境中的带宽变化情况具体设定,本发明的实施实验中设定Pc为0.85。为带宽bl下最优分割方案对应的优化模型值;a为经验常数,用以设定W(X,bl)的上限值为其中a的优选值与具体应用程序及其移动环境有关,本发明设定的优选范围为0<a<1,本发明中根据对具体应用程序的实验测试,该参数的优选值为a=0.4。
带宽为b时采用程序分割方案X的程序运行时间T(X,b)表示如下:
其中,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)表示为:
其中,Ei表示节点i在移动设备上执行的耗电量,Eij表示节点i,j之间数据通信的耗电量;令Pcpu表示移动设备的CPU功率。一般情况下,移动设备WiFi接口的接收功率与发送功率差别较小,均表示为数据通信功率Pw,则有:
Ei=tnli×Pcpu
Eij=tij×Pw
由于 则 若b≥bl,则 又由于P(b≥bl)≥Pc,因此在目标模型中最优分割方案满足:
这说明所求最优分割方案在带宽变化情况下能够以概率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),有: MCGAP方法中,考虑在b与bl间变化的带宽,设为模型最优解,则有
如图6所示,MCGAP方法首先在第1行代码中将所要求解的优化模型最优值minValue初始化为一个所能表示的最大整数。第2-4行根据Stoer-Wagner方法分别求得静态带宽b和bl下的最优程序分割方案(Cb,Sb)和并根据对应的优化模型最优值设定带宽bl下优化模型值的上限值Wbl。MCGAP方法中第5-6行的Adjust函数根据Stoer-Wagner方法所求得的Cb和调整程序的加权对象关系图,并确定待分割节点V',即当带宽在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=0.5和we=0.5。与图11比较,可以看出,图节点个数较少时MCGAP方法的求解时间与BBAP方法相差不大;而节点个数较多时MCGAP方法的求解时间明显减少。
图16为MCGAP方法与BBAP方法在不同带宽下求解的程序最短运行时间对比图。其中b表示带宽,B、M和P分别表示BBAP、MCGAP方法和MCGAP近似解的精确度。设为BBAP解得的模型最优解,X为采用MCGAP方法求得的近似最优解,则为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 (3)
1.一种基于带宽自适应代码迁移的移动设备节能方法,在移动环境带宽不断变化的情况下,其特征在于,该移动设备节能方法通过下面步骤实现:
步骤1:构造加权对象关系图,具体是:首先,进行静态程序分析,根据程序的方法调用关系,构造程序初始的对象关系图,对象关系图中的各节点和边分别对应程序中的对象和对象间的调用关系;然后,通过动态程序分析获得对象关系图中各节点对象的运行时间以及每条边的通信数据量,得到加权对象关系图;
步骤2:基于加权对象关系图,将带宽作为一个变量,建立基于运行时间和耗电量的程序分割优化模型,具体是:令xi标识节点i的运行位置,xi=1和xi=0分别表示节点i在移动设备和服务器端运行,程序分割方案表示为X={x1,x2,…,xn},n为加权对象关系图中的节点个数,则程序分割优化模型的目标在于求得最优分割方案满足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)表示当前带宽为b时采用程序分割方案X的程序运行时间:
其中,tnli与tnsi分别表示节点i在移动设备与服务器端的运行时间;tnli为加权对象关系图中对应节点i的权重,设服务器计算速度是移动设备的k倍,则:tnsi=tnli/k;令Wij表示移动设备与服务器端的通信数据量,则带宽为b时节点i,j间数据传输时间tij为:tij=Wij/b;
E(X,b)表示当前带宽为b时采用程序分割方案X的程序耗电量:
其中,Ei表示节点i在移动设备上运行的耗电量,Ei=tnli×Pcpu;Eij表示节点i,j之间数据传输的耗电量,Eij=tij×Pw;Pcpu表示移动设备的CPU功率,Pw表示移动设备WiFi接口的数据通信功率;
所述的模型求解空间XP定义为:其中,带宽阈值bl为满足概率P(b≥bl)≥Pc的最大带宽值,Pc为所设定的概率阈值;为带宽bl下最优程序分割方案对应的优化模型值;经验常数a>0;
步骤3:进行带宽自适应程序分割,在节点个数n不超过200时,采用分支定界程序分割方法寻找最优分割方案,在节点个数n大于200时,采用基于最小割的贪心方法来寻找最优分割方案;
所述的分支定界程序分割方法基于分支定界深度优先搜索法,深度搜索的约束条件包括:1)程序分割方案在当前带宽b下对应的优化模型值小于当前保存的优化模型的最小值;2)程序分割方案在带宽阈值bl下的模型目标值不高于所设定模型上限值
所述的基于最小割的贪心方法,利用Stoer-Wagner最小割算法求得静态带宽为b和bl时对应的运行在移动设备的节点集合Cb和运行在服务器端的节点集合令待分割节点V表示加权对象关系图中的节点集合,对V'中节点进行分割,采用Stoer-Wagner最小割算法中的最大邻接值排序算法对节点进行排序,然后基于贪心策略,同时根据与分支定界程序分割方法中相同的深度搜索的约束条件选取最优分割方案;
步骤4:根据得到的最优分割方案,实现程序在移动设备和服务器间的代码迁移和分布式执行。
2.根据权利要求1所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,所述的概率阈值Pc设定为0.85。
3.根据权利要求1所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,所述的经验常数a设定为0.4。
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 |
---|---|---|---|
CN2012103678703 | 2012-09-28 | ||
CN201210367870 | 2012-09-28 | ||
CN201210367870.3 | 2012-09-28 | ||
CN201210421845.9A CN102968173B (zh) | 2012-09-28 | 2012-10-30 | 一种基于带宽自适应代码迁移的移动设备节能方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968173A CN102968173A (zh) | 2013-03-13 |
CN102968173B true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909449B (zh) * | 2017-01-11 | 2021-03-23 | 西可通信技术设备(河源)有限公司 | 一种移动终端程序的计算迁移方法与装置 |
CN109981546B (zh) * | 2017-12-28 | 2021-08-20 | 北京京东尚科信息技术有限公司 | 获取应用模块间的远程调用关系的方法和装置 |
Citations (2)
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 |
CN101473301A (zh) * | 2006-06-13 | 2009-07-01 | 微软公司 | 迭代静态和动态软件分析 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09179738A (ja) * | 1995-12-26 | 1997-07-11 | Hitachi Ltd | オブジェクト指向言語処理方法及び処理装置 |
US8429633B2 (en) * | 2008-11-21 | 2013-04-23 | International Business Machines Corporation | Managing memory to support large-scale interprocedural static analysis for security problems |
WO2012031165A2 (en) * | 2010-09-02 | 2012-03-08 | Zaretsky, Howard | System and method of cost oriented software profiling |
-
2012
- 2012-10-30 CN CN201210421845.9A patent/CN102968173B/zh not_active Expired - Fee Related
Patent Citations (2)
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 |
CN101473301A (zh) * | 2006-06-13 | 2009-07-01 | 微软公司 | 迭代静态和动态软件分析 |
Non-Patent Citations (1)
Title |
---|
《静动态结合的Java程序不变性分析方法》;于利前等;《计算机学报》;20100430;第33卷(第4期);正文第736-746页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102968173A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Niu et al. | Bandwidth-adaptive partitioning for distributed execution optimization of mobile applications | |
US20230035451A1 (en) | Resource usage prediction for deep learning model | |
Nguyen et al. | A smartphone perspective on computation offloading—A survey | |
Zarghami et al. | Integrating entropy theory and cospanning tree technique for redundancy analysis of water distribution networks | |
US20130254754A1 (en) | Methods and systems for optimizing the performance of software applications at runtime | |
WO2020248511A1 (zh) | 一种基于运行时模型实现对终端应用控制的方法 | |
US20160004518A1 (en) | Profile guided optimization in the presence of stale profile data | |
Chéour et al. | Evaluation of simulator tools and power‐aware scheduling model for wireless sensor networks | |
Ilager et al. | Artificial intelligence (ai)-centric management of resources in modern distributed computing systems | |
Jha et al. | Multiobjective deployment of data analysis operations in heterogeneous IoT infrastructure | |
Barrameda et al. | A novel statistical cost model and an algorithm for efficient application offloading to clouds | |
CN102968173B (zh) | 一种基于带宽自适应代码迁移的移动设备节能方法 | |
CN110598417B (zh) | 一种基于图挖掘的软件漏洞检测方法 | |
CN109753281B (zh) | 一种基于图形化编程的微电网能量管理策略可视化开发工具 | |
Kiran et al. | Execution time prediction of imperative paradigm tasks for grid scheduling optimization | |
CN102902804B (zh) | 一个高效的bpel服务动态更新方法 | |
Cai et al. | AutoMan: Resource-efficient provisioning with tail latency guarantees for microservices | |
Ciancone et al. | The KlaperSuite framework for model-driven reliability analysis of component-based systems | |
CN110058849A (zh) | 流程图的生成方法、装置、计算机设备以及存储介质 | |
CN114756211B (zh) | 模型训练方法、装置、电子设备和存储介质 | |
Lewerenz | A heuristic technique for an efficient decision support in context-aware service selection | |
Di Marco et al. | Model-driven approach to Agilla Agent generation | |
Morin et al. | Unifying runtime adaptation and design evolution | |
Denoyelle et al. | A topology-aware performance monitoring tool for shared resource management in multicore systems | |
Meng et al. | System dependency graph construction algorithm based on equivalent substitution |
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 |