"Software Analysis and Development for Energy Efficiency in Mobile Devices"
Monday, April 24, 2017 at 12:00 Noon
Room 506 (CIT 5th Floor)
Smartphone and tablet users are sensitive to the impact on battery life due to energy-hungry applications running on their devices. A lower-than-expected battery life can lead to frustrated customers and negative publicity for a company. The major challenge is to increase the energy efficiency of mobile software. In this talk, I address this challenge by proposing techniques that facilitate software adaptation in light of energy savings.
I will first present the necessary elements to account for energy and to abstract functionality blocks from mobile applications so that developers can replace or augment energy-oblivious code with energy-aware code. Two immediate questions arise from energy-aware programming: (1) "Where are the opportunities for energy savings?" and (2) "How to find them?"
To answer the first question I will introduce Tamer, an execution controller for the Android OS that monitors software events, rewrites program binaries, and changes runtime behavior. Tamer can interpose the execution of user-invisible energy-hungry software events, thus preventing their continuation. Developers can use Tamer to perform what-if analysis on the impact of battery life arising from potential code changes. Through a selective application of rate-limiting policies to demanding apps, Tamer can effectively mitigate the excessive battery drain due to frequent wakeups of mobile tasks running in the background.
A Tamer policy specifies which software events to interpose and when actuation should occur. Developers willing to write effective policies must first understand which events are worth interposing. My second contribution is Meerkat, an analysis tool that correlates software-execution logs with power traces. Meerkat leverages sequential-rule mining, a data-mining technique used to discover the interestingness of sequential patterns, to associate energy consumption with event bundles. Developers can use Meerkat to discover sequences of function calls that draw the most power and use these sequences as input to write effective Tamer policies. In the final part of this talk, I will elaborate on Meerkat's effectiveness in the domain of networked and I/O-intensive mobile applications.
The insights stemming from these contributions help speed up the investigation on software energy efficiency. Given appropriate tool support, developers can better understand how to improve smartphone battery life by using combinations of software-adaptation strategies.
Host: Rodrigo Fonseca