Energy-Aware Adaptation for Mobile Applications Aida Vosoughi Britt Antley
Conserving Energy in Mobile Devices There has always been a desire to conserve energy in devices reliant on their battery First approaches dealt with purely hardware solutions Soon realized that this would not be enough OS needed to interact with hardware to achieve more efficient energy usage Needed to consider higher level approach and thus software solutions began to be explored
Adaptive Disk Spin-Down Monitors the spin-down threshold and adjusts it to keep a balance between energy consumption and unacceptable spin-ups. Wireless Communication Suspension Transport Layer Protocol (TLP) that conserves power by choosing short periods of time to suspend communications Collaboration between TLP and mobile host to enable queuing of data when communication is suspended Up to 83% communication power savings, resulting in overall savings of 6-9% in laptops and 40% mobile device
Energy-Aware Adaptation for Mobile Applications The idea is to modify the applications' behavior dynamically to conserve energy. According to the energy supply and demand a decision is made: Use less energy if energy is scarce Use more energy otherwise (better user experience) OS is monitoring the energy and guide the applications to yield a battery-life of interest
Odyssey Introduced in 1997 by B. D. Noble et al. A software platform which supports adaptation for a broad range of mobile applications. Integrated into Linux as a new file system, along with a set of API extensions. Monitors resources such as bandwidth, CPU cycles, battery power, etc… & makes tradeoffs Adaptation is achieved by trading of data quality for resource consumption. Fidelity: the degree to which data presented at a client matches the reference copy at a server. Fidelity is type-specific Odyssey allows each application to specify the fidelity levels it supports. For example, a client playing full-color video data from a server could switch to black and white video when bandwidth drops, rather than suffering lost frames. Similarly, a map application might fetch maps with less detail rather than suffering long transfer delays for full-quality maps. Fidelity has many dimensions. Other dimensions of fidelity depend on the type of data in question. For example, video data has at least two additional dimensions: frame rate and image quality of individual frames. Spatial data, such as topographical maps, has dimensions of minimum feature size or resolution.
Odyssey Architecture Viceroy: Responsible for monitoring the availability of resources and managing their use. Wardens: Encapsulate type-specific functionality. There is one warden for each data type. Odyssey supports concurrent adaptation by diverse applications. The client architecture providing this support is shown in Figure 3. Odyssey is conceptually part of the operating system, even though it is implemented in user space for simplicity. The initial Odyssey prototype only supported network bandwidth adaptation. The work reported here extends Odyssey to support energy adaptation. [1] [1] J. Flinn and M. Satyanarayanan. Energy-aware adaptation for mobile applications.
PowerScope Introduced in 1999 by J. Flinn et al. A tool for profiling energy usage by applications. A sample energy profile: combines hardware instrumentation to measure current level with kernel software support to perform statistical sampling of system activity. Postprocessing software maps the sample data to program structure and produces a profile of energy usage by process and procedure. PowerScope uses statistical sampling to profile the energy usage of a computer system. profiles are generated in two stages. During the data collection stage, shown in right figure, the tool samples power consumption as well as the program counter (PC) and process identifier (PID) of the code executing on the profiling computer. A digital multimeter samples the current drawn by the profiling computer through its external power input. The output of this stage consists of a sequence of current level samples and a correlated sequence of PC/PID samples. In a later off-line stage, PowerScope combines these sequences with symbol table information from binaries and shared libraries on the profiling computer. The result is an energy profile such as that shown in left figure. [2] [2] J. Flinn and M. Satyanarayanan, "PowerScope: a tool for profiling the energy usage of mobile applications” [2]
Experiments Question: Does lowering data fidelity lead to better energy savings?
QuickTime Video Speech Recognition 35% reduction through hardware management, compression, and reduced window size Speech Recognition 69-80% reduction mainly through lower fidelity and turning off screen & network
Map Viewer 46-70% reduction by hardware filtering (most efficient by removing minor and secondary roads) & cropping Web Browser 29-34% reduction by hardware fidelity reduction
Zoned Backlighting Selectively control lighting on parts of screen Break screen into multiple "zones" which can be lit or not based on need Theoretical power savings of up to 50%
Goal-Directed Energy Adaptation Determine the residual energy A mobile user has an estimate of how long a battery needs to last. Goals: To ensure that Odyssey meets the specified time duration. To provide the best user experience possible. Two requirements: Applications should offer as high a fidelity as possible at all times The user should not be jarred by frequent adaptations. Predict future energy demand A mobile user often has a reasonable estimate of how long a battery needs to last—for example, the expected duration of a flight, commute, or meeting. Decide if applications should change fidelity
Odyssey: Predicting future energy demand Exponential smoothing function: new = (1-α)(this sample)+(α)(old). History-based prediction: Empirical approach to predict energy consumption of a specific application as a function of fidelity Application-specific logging/training: randomly sample the fidelity space and recording energy consumption at each sample point Offline/Online learning: using machine learning algorithms Simplest such predictor is linear. (E= c0 + c1S+ c2fS, where S is a constant = e.g. size of image and f is fidelity)
Odyssey: Triggering Adaptation Predicted demand > Residual energy: Up-calls so that applications can adapt to reduce energy usage. Residual energy > Predicted demand: Applications are notified to increase data fidelity. Level of hysteresis in Odyssey’s adaptation strategy Bias toward stability when energy is plentiful and toward agility when it is scarce. Odyssey caps fidelity improvements at a maximum rate of once every 15 seconds. When multiple applications are executing concurrently, Odyssey must decide which to notify. The amount by which supply must exceed demand to trigger fidelity improvement is indicative of the level of hysteresis in Odyssey’s adaptation strategy. This value is the sum of two components: a variable component, currently 5% of residual energy, and a constant component, currently 1% of the initial energy available. The variable component reflects our bias toward stability when energy is plentiful and toward agility when it is scarce; the constant component biases against fidelity improvements when residual energy is low. As a guard against excessive adaptation due to energy transients, Odyssey caps fidelity improvements at a maximum rate of once every 15 seconds. When multiple applications are executing concurrently, Odyssey must decide which to notify. A simple scheme based on user-specified priorities is used for this. Odyssey always tries to degrade a lower-priority application before degrading a higher-priority one — upgrades occur in the reverse order. Priorities are currently static, but we are implementing an interface to allow users to change priority dynamically, thus offering better control over adaptation.
Example of Goal-Directed Adaptation Application priorities: Web browser Map viewer Video player Speech recognizer
Modern Implementations Focus on uses in modern mobile OS
Energy Management in Mobile Devices with the Cinder Operating System Controlling energy allocation is crucial feature for mobile OS's Introduces abstraction of reserves and taps Modification of HiStar OS running on ARM processor (Android G1) Used to achieve 3 properties of control Isolation Delegation Subdivision
Power Guru: Implementing Smart Energy Management on the Android Platform Implement smart power management app on Android Monitor all apps and their power use Give user suggestion on which apps to kill to optimize battery life Apps are given Power Rating based on their CPU utilization and hardware usage User can Prioritize certain apps to not be killed and other apps are ranked based on Power Rating
Context-aware Battery Management for Mobile Phones Battery meter/ “battery low” audio signals are not enough anymore… CABMAN Problem: Will the battery last until the next charging opportunity is encountered? Next charging opportunity? Call time requirements? “Discharge speedup factor”? This de facto user interface standard has remained relatively unchanged for a number of years. Convergence is leading to more multi-functional computing devices with the always-on expectation of phones. The opportunities for charging should be predicted to allow devices to determine if they have scarce or plentiful energy, instead of using absolute battery level as the guide
Summary The main goal is to converse energy without affecting usability High level solutions are effective Fidelity adaptation Context-aware battery management Application energy allotment Giving user suggestions for power savings
References [1] Jason Flinn and M. Satyanarayanan. 1999. Energy-aware adaptation for mobile applications. In Proceedings of the seventeenth ACM symposium on Operating systems principles (SOSP '99). ACM, New York, NY, USA, 48-63. [2] Flinn, J.; Satyanarayanan, M.; , "PowerScope: a tool for profiling the energy usage of mobile applications," Mobile Computing Systems and Applications, 1999. Proceedings. WMCSA '99. Second IEEE Workshop on , vol., no., pp.2-10, 25-26 Feb 1999 [3] Kravets, Robin; Krishnan, P., "Power Management Techniques for Mobile Communication," MobiCom 1998. pp. 157-168. [4] Arjun Roy; Stephen M. Rumble; Ryan Stutsman; Philip Levis; David Mazières; Nickolai Zeldovich; "Energy Management in Mobile Devices with the Cinder Operating System," EuroSys '11. April 10-13 2011. [5] Ravi, N.; Scott, J.; Lu Han; Iftode, L.; , "Context-aware Battery Management for Mobile Phones," Pervasive Computing and Communications, 2008. PerCom 2008. Sixth Annual IEEE International Conference on , vol., no., pp.224-233, 17-21 March 2008 [6] D. Narayanan, J. Flinn, and M. Satyanarayanan. 2000. Using history to improve mobile application adaptation. In Proceedings of the Third IEEE Workshop on Mobile Computing Systems and Applications (WMCSA'00) (WMCSA '00). IEEE Computer Society, Washington, DC, USA [7] Brian Noble, M. Satyanarayanan, and Morgan Price. 1995. A Programming Interface for Application-Aware Adaptation in Mobile Computing. In Proceedings of the 2nd Symposium on Mobile and Location-Independent Computing (MLICS '95). USENIX Association, Berkeley, CA, USA, 57-66. [8] Brian D. Noble, M. Satyanarayanan, Dushyanth Narayanan, James Eric Tilton, Jason Flinn, and Kevin R. Walker. 1997. "Agile application-aware adaptation for mobility". SIGOPS Oper. Syst. Rev. 31, 5 (October 1997) [9] Unelsroed, Hans Fredrik; Roeine, Per Christian; Ghani, Fahad. "Power Guru: Implementing Smart Power Management on the Android Platform."