文献标识码:A
文章编号: 0258-7998(2014)10-0138-04
0 引言
移动电话的普适性、便携性以及连通性使得它们成为连续感知应用的理想平台。移动电话含有多种传感器,可以在连续感知任务中感知用户不同类型的上下文[1]。移动电话采用电池供电,电池的容量决定着移动电话的使用时间。在连续移动感知应用中,如何节约电量的消耗从而提高连续感知应用的时间是最具研究挑战的内容之一[2-3]。
为了解决上述问题,研究人员提出在平台中加入低功耗处理器,用于控制移动设备的传感器。TI OMAP[4]平台中除了含有应用处理器内核,还包含芯片级的低功耗处理器内核。其基本原则是:低功耗处理器在活跃状态消耗很小的能量,并且从睡眠状态到活跃状态的唤醒开销几乎可以忽略不计,因此可以有效率地执行重复的感知任务。在感知任务中,应用处理器处于睡眠模式,低功耗处理器感知传感器的数据并在进行计算密集型任务时唤醒应用处理器。
Reflex平台[5]为用户在多处理器移动平台上提供了一种简单的编程体验。该平台通过共享内存技术将复杂的底层开发问题集成到低功耗处理器中,程序员可以使用标准的程序开发技术来设计应用。X等人提出了一种概念验证原型系统LittleRock[6],该系统强调了低功耗处理器在任务划分中的有效性。区别于上述两种方法,本文针对连续的感知应用提出了一种任务划分指导方法以及适当的运行环境设计原则。本文提出的方法可以在上述两个平台中实现,是对这两个平台的补充。为了将工作负载划分到异构的平台上,CUERVO E等人[7]和GORACAKO M等人[8]提出了基于整数线性规划的任务划分方法。前者研究任务在移动设备与云平台之间的划分,后者研究任务在两个处理器之间的划分。区别于上述两个工作,本文采用基于模拟的方法以得到更接近真实值的准确结果。
本文从能量有效的角度研究如何在应用处理器和低功耗处理器上进行任务的划分,对任务划分期间跨不同处理器的能源消耗和传输开销进行了量化,提出了一种应用组件分析方法,并基于该方法对组件进行最有效的划分。
1 能量消耗比例
在理想平台中,当应用程序的执行存在间隙时,系统进入休眠状态。然而在真实平台中,系统是否进入休眠状态取决于程序的运行间隙是否大于系统状态转换所需的时间[2,8]。给定P和A,为了量化真实能耗与理想能耗之间的差异,本文定义能量比例因子为:
2 处理器的能量消耗优化
2.1 假设前提
为了简化问题的分析,本文做如下假设:(1)假设感知应用通过传感器对数据进行抽样,并周期性的运行。(2)假设那些对输入数据进行计算的特殊任务片段的运行时间是常数,并不依赖于输入数据。实际上,一些特殊的输入数据,如全0输入,可能会简化计算,从而加快任务片段的运行,此处假设这种差别并不显著。(3)假设两个处理器间的通信开销相对于执行时间和采样周期可以忽略不计。在大多数处理器平台中,应用处理器和低功耗处理器在同一芯片中,因此通信开销很低。此外,即使应用处理器和低功耗处理器在不同的芯片中,也可以通过高速总线互联,从而大大降低它们之间的通信开销。(4)由于将感知负载转移到低功耗处理器上,本文假设低功耗处理器的休眠与活跃状态之间的状态转换开销和休眠时的空闲能耗相对于其他能耗可以忽略不计。(5)假设所有的任务片段在这两个处理器上都是可调度的。这意味着通过将任务片段划分在不同的处理器上,可以降低应用程序总的运行时间。
由于传感器的数据是连续的,而处理器处理的数据往往是离散的,采样方法作为基本的传感器数据处理方法不仅能很好地描述传感器数据,还可以大大压缩数据总量,因此假设(1)是合理的。假设(2)、(3)和(4)对问题的分析进行了简化,该假设会对分析结果产生微小的误差,在对系统的整体性能进行评估时,这些误差可以忽略不计。通过对应用程序的任务进行分配,可以使任务在不同的处理器间进行调度,因此假设(5)是合理的。
2.2 总的能量消耗
本文采用的符号的含义如表1所示。令应用程序的调用包含N个任务片段,并且部分任务片段可能重复多次运行,该应用程序的每个周期的持续时间为d。令M表示应用处理器,那么应用程序的理想能耗为:
事实上,应用处理器的状态转换能耗和休眠能耗并不能忽略不计,于是真实能耗为:
其中Etrans·K表示处理器模式转换的能耗。由于周期d远远大于应用程序运行时总共的模式转换时间,因此本文忽略了处理器状态的转换时间。
当平台中含有M和L两个处理器时,应用程序可以按照比例被分割为若干个连续的活跃能耗和模式转换能耗,于是能耗为:
由于将部分任务转移到L上运行,因此M上的模式转换次数K′与K不同。对比EMulti与EM,由于EMulti将部分任务转移到低功耗处理器L上运行,M上的模式转换次数K′减小了,因此式(1)定义的能量消耗比例减小了。
2.3 任务片段划分
为了确定最优的能量比例因子,本文应用了移动连续感知应用的一些典型的特征。在这些应用中,每个任务片段的输出率会随着计算管道明显的降低。例如,采样和缓冲任务片段在100 Hz频率下采集和缓冲传感器的采样数据,而对缓冲数据进行分类的操作会在更低的频率(如1 Hz)下工作。此外,管道开始的任务片段是轻量级的,往往进行简单的数据缓冲和过滤,而管道的后续任务片段往往是计算密集的。
在确定任务片段的处理器时,由于任务是可调度的,其唯一决定因素为两个处理器之间的相对能量消耗比例差异。如果i被划分到L上时,其能量消耗比例相对于M减少了,那么将任务片段i划分到L上。相对能量消耗比例差异Δi依赖于任务片段i的划分,其计算方法为:
应用式(6)可以得到一条曲线,曲线的横坐标为纵坐标为si。当坐标点落到曲线的右上方时,该任务在应用处理器上运行;当坐标点落到曲线的左下方时,该任务在低功耗处理器上运行。
3 实验设计与结果分析
3.1 模拟器设计
本文分析多个应用程序下所有应用的计算时间、模式转换次数以及程序的唤醒时间。为了对程序的性能更好地进行描述,进行细粒度的时间分析。图1为实验采用的模拟器的整体结构。本文采用基于事件的模拟器设计方法,采用3个输入文件。第一个输入文件包含系统的配置参数,如两个处理器的在每种状态下的能耗参数、CPU的运行频率、任务的调度策略以及状态转换能耗;第二个输入文件为应用程序配置文件,该文件描述应用程序的任务片段划分和连接结构;最后一个输入文件为多个应用程序的跟踪数据。模拟器计算出应用程序的整个执行路径,并将相关的统计信息输出,如处理器的能耗统计、执行时间和状态转换次数等。模拟器的应用处理器采用QSD8250精简指令集处理器,低功耗处理器采用MSP430。
3.2 性能评估
为了评价模拟器上任务划分的性能优化程度,实验采用了活动识别和参考文献[9]所提出的两个具有代表性的方法进行试验对比。活动识别包括两个阶段,第一阶段为读取加速计的采样数据并将其存储在缓冲中,第二阶段采用朴素贝叶斯方法对内存中累积的数据进行分类。SoundSense也是一种分类方法,其包括采样、FFT、MFCC和贝叶斯分类4个阶段。表2和3分别给出活动识别和SoundSense这两种应用的运行时间。
运行时间分析:为了评价优化算法的性能,实验分别在3种情况下实现了活动识别算法。第1种情况是两个任务分别运行在应用处理器上,记为AP;第2种情况是两个任务分别运行在低功耗处理器上,记为LP;第3种情况采用优化算法将任务划分在不同的处理器上,记为LP-AP。图2为活动识别算法在3种情况下的能量比例因子对比。在活动识别应用中,随着处理器频率的增加,能量比例因子逐渐降低,在4种处理器频率下LP-AP的能量比例因子都是最小的并且与LP相接近。此外,实验测试了SoundSense算法下的能量比例因子效率,结果如图3所示。在图3中,横轴表示SoundSense算法的不同阶段运行在不同的处理器上,纵轴为能量比例因子,分别将前k(k=0,1,2,3,4)个节点迁移到LP上运行。从图中可以看出,当k=2时,能量比例因子达到最小值,此后能量比例因子的变化很小。
4 结论
本文引入了低功耗处理器,并提出了应用程序在这两个处理器上的任务划分优化方法。应用处理器用于处理计算密集型任务,低功耗处理器用于周期性地感知外部环境的数据。模拟实验表明,由于将感知任务迁移到低功耗处理器上运行,本文提出的优化方法能大大提高移动设备的能量利用效率。
参考文献
[1] 王玉祥,乔秀全,李晓峰,等.上下文感知的移动社交网络服务选择机制研究[J].计算机学报,2010,33(11):2126-2135.
[2] LU H,YANG J,LIU Z,et al.The Jigsaw continuous sensing engine for mobile phone applications[C].Proceedings of the 8th ACM Conference on Embedded Networked Sensor Systems,ACM,2010:71-84.
[3] BALAN R K,GERGLE D,SATYANARAYANAN M,et al.Simplifying cyber foraging for mobile devices[C].Proceedings of the 5th International Conference on Mobile systems,Applications and Services,ACM,2007:272-285.
[4] 安健,桂小林,张文东,等.物联网移动感知中的社会关系认知模型[J].计算机学报,2012,35(6):1164-1174.
[5] RA M R,SHETH A,MUMMERT L,et al.Odessa:enabling interactive perception applications on mobile devices[C].Proceedings of the 9th International Conference on Mobile Systems,Applications and Services,ACM,2011:43-56.
[6] PRIYANTHA B,LYMBEROPOULOS D,LIU J.Littlerock: Enabling energy-efficient continuous sensing on mobile phones[J].Pervasive Computing,IEEE,2011,10(2):12-15.
[7] CUERVO E,BALASUBRAMANIAN A,CHO D,et al.MAUI:making smartphones last longer with code offload[C].Proceedings of the 8th International Conference on Mobile Systems,Applications and Services,ACM,2010:49-62.
[8] GORACZKO M,LIU J,LYMBEROPOULOS D,et al.Energyoptimal software partitioning in heterogeneous multiprocessor embedded systems[C].Proceedings of the 45th Annual Design Automation Conference,ACM,2008:191-196.
[9] NEWTON R,TOLEDO S,GIROD L,et al.Wishbone:Profile-based partitioning for sensornet applications[C].NSDI.2009,9:395-408.