Abram Hindle's Blog

Software is Hard

Energy Ratings for Apps

http://www.commitstrip.com/en/2014/06/05/the-applications-that-completely-drain-your-phones-battery/

My student Gregory Burlet sent me that comic. His research interests are in Guitar transcription, machine learning and computer music. At the end of the comic the artist suggests that app stores need some kind of energy certification.

My student Chenlei, Daniel German, and I had the vision that this should occur. It is documented in our IEEE Software article that Chenlei primarily wrote where we argue for SAECER, a software specific certification like energy star whereby apps are tested against tasks and ranked against other apps based on their energy effeciency for completing a task.

In fact, Microsoft awarded me a SEIF award to research just that. I wrote at the time:

Green-Star / SAECER:

Consumers cannot control the power consumption profile of their mobile device, or its operating system, but they do influence power consumption through their own use of applications and the tasks they execute on their mobile device. Ultimately the consumer is responsible for the battery-life of their device based on their own choices. Unfortunately users of mobile devices usually lack the skills and time necessary to understand, measure, or estimate the impact of their behaviour in terms of power consumption. Furthermore when confronted with two different apps, which fulfill the same task, they lack the knowledge to compare these apps based on their power profile. Thus we propose helping the consumer by rating applications based on the power consumption efficiency of tasks that the user wishes to be fulfilled. This kind of rating would allow end-users to optimize their own app use in terms of power, as well this rating could aid consumers making app purchasing decisions. Thus we propose a benchmark for apps that allows us to rank apps by their power consumption efficiency with respect a task.

Limited battery-life is a fact of life for smart-phone and mobile device users. Battery-life limits the availability and reliability of the consumer’s device; if a smart-phone has no battery left it cannot even be used to make calls. What can consumers do? In most cases they have already purchased a mobile device and they are stuck with that hardware. They can update the OS but they do not have a lot of control on the system side.

But what they can do is alter their behaviour or their choice in applications. For instance watching a video or reading a PDF in a feature complete client can use more power than a minimalist application or an application focused on power consumption performance, thus the user could opt for the application that uses power when they are in a power limited context (such as during transit or at a cafe). Unfortunately if the user is going to optimize their own power consumption of their mobile device they are going to have to either measure their own applications or find measurements of their own applications. Already in both cases, this is beyond the abilities of the majority of smart-phone users. Thus we suspect we will have to provide this information to the user so they can make a decision themselves. Thus we want to be able to rate apps based on their power performance. This can be done by benchmarking tasks and then comparing the power consumption of the same task run across multiple against each other. We can implement a naive implementation of task-fulfilling app and use that as a base-line for the app-tests. In order to execute this kind of testing we will leverage our work on the the effect of software change on software power consumption.

Thus we propose to apply Green Mining [10], the power consumption analysis of software repositories (version control) and versioning via dynamic analysis (use-case tests), to software on mobile platforms, such as Windows Phone and apps associated with that platform. Mobile platforms have different characteristics compared to desktop computers and laptops, thus they need special attention. Battery life-time is also a serious concern for mobile platforms as it limits availability, a quality very important in a phone. In this proposal we plan to get samples of multiple kinds of mobile applications, produce test cases to exercise these mobile applications and then run and measure these test cases, thus allowing apps to be ranked by efficiency. By doing so we can create an Energy Star style rating for apps, allowing consumers to make decision in times of dire battery levels, or during their app purchase process. This work has a potential environmental impact: deployed software will consume less resources and thus have a direct reduction on the CO 2 emissions [3]. This work is industrially relevant because vendors, such as Microsoft, Intel, and IBM, have already begun investing in power-management educational documentation [5] and tools [7] [15] [14].

We expect that this kind of user-facing task-oriented power consumption bench-marking will benefit consumers and pressure 3rd party vendors to produce applications that are power-consumption aware. If consumers can choose, they can make smart decisions in terms of the power consumption of their applications.

[3] S. M. Easterbrook. Climate change: a grand software challenge. In Proceedings of the Workshop on Future of Software Engineering Research, FoSER 2010, at the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2010, Santa Fe, NM, USA, November 7-11, 2010, pages 99–104. ACM, 2010.

[5] C. Gray. Performance Considerations for Windows Phone 7. http://create.msdn.com/downloads/ ?id=636, 2010.

[7] A. Gupta, T. Zimmermann, C. Bird, N. Naggapan, T. Bhat, and S. Emran. Energy Consumption in Windows Phone. Technical Report MSR-TR-2011-106, Microsoft Research, 2011.

[10] A. Hindle. Green mining: Investigating power consumption across versions. In Proceedings, ICSE: NIER Track. IEEE Computer Society, 2012. http://ur1.ca/84vh4.

[14] IBM. IBM Active Energy Manager. http://www.ibm.com/systems/management/director/about/ director52/extensions/actengmrg.html, 2011.

[15] Intel. LessWatts.org – Saving Power on Intel systems with Linux. http://www.lesswatts.org, 2011.