Deep Green: Modelling Time-Series of Software Energy Consumption

Inefficient mobile software kills battery life. Yet, developers lack the tools necessary to detect and solve energy bugs in software. In addition, developers are usually tasked with the creation of software features and triaging existing bugs. This means that most developers do not have the time or resources to research, build, or employ energy debugging tools.We present a new method for predicting software energy consumption to help debug software energy issues. Our approach enables developers to align traces of software behavior with traces of software energy consumption. This allows developers to match run-time energy hot spots to the corresponding execution. We accomplish this by applying recent neural network models to predict time series of energy consumption given a software's behavior. We compare our time series models to prior state-of-the-art models that only predict total software energy consumption. We found that machine learning based time series based models, and LSTM based time series based models, can often be more accurate at predicting instantaneous power use and total energy consumption.

[1]  Jie Liu,et al.  Mobile Apps: It's Time to Move Up to CondOS , 2011, HotOS.

[2]  Gabriele Bavota,et al.  Mining energy-greedy API usage patterns in Android apps: an empirical study , 2014, MSR 2014.

[3]  Eleni Stroulia,et al.  The power of system call traces: predicting the software energy consumption impact of changes , 2014, CASCON.

[4]  Ramesh Govindan,et al.  Calculating source line level energy information for Android applications , 2013, ISSTA.

[5]  Ratul Mahajan,et al.  Proceedings of the sixth international workshop on MobiArch , 2011, MobiSys 2011.

[6]  Xiao Ma,et al.  From Word Embeddings to Document Similarities for Improved Information Retrieval in Software Engineering , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[7]  Martin White,et al.  Toward Deep Learning Software Repositories , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[8]  Abhik Roychoudhury,et al.  Detecting energy bugs and hotspots in mobile apps , 2014, SIGSOFT FSE.

[9]  Gustavo Pinto,et al.  Mining questions about software energy consumption , 2014, MSR 2014.

[10]  Narseo Vallina-Rodriguez,et al.  ErdOS: achieving energy savings in mobile OS , 2011, MobiArch '11.

[11]  Abram Hindle,et al.  GreenMiner: a hardware based mining software repositories software energy consumption framework , 2014, MSR 2014.

[12]  Andrea De Lucia,et al.  Software-based energy profiling of Android apps: Simple, efficient and reliable? , 2017, 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[13]  Abram Hindle,et al.  Client-Side Energy Efficiency of HTTP/2 for Web and Mobile App Developers , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[14]  Guigang Zhang,et al.  Deep Learning , 2016, Int. J. Semantic Comput..

[15]  Abram Hindle,et al.  GreenScaler: Automatically training software energy models with big data , 2016, PeerJ Prepr..

[16]  Gaël Varoquaux,et al.  Scikit-learn: Machine Learning in Python , 2011, J. Mach. Learn. Res..

[17]  Ming Zhang,et al.  Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof , 2012, EuroSys '12.

[18]  Jürgen Schmidhuber,et al.  Deep learning in neural networks: An overview , 2014, Neural Networks.

[19]  Ding Li,et al.  Making web applications more energy efficient for OLED smartphones , 2014, ICSE.

[20]  Simon Hay,et al.  Decomposing power measurements for mobile devices , 2010, 2010 IEEE International Conference on Pervasive Computing and Communications (PerCom).

[21]  Ding Li,et al.  An Empirical Study of the Energy Consumption of Android Applications , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[22]  Erich Elsen,et al.  Deep Speech: Scaling up end-to-end speech recognition , 2014, ArXiv.

[23]  Abram Hindle,et al.  GreenOracle: Estimating Software Energy Consumption with Energy Measurement Corpora , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[24]  Quoc V. Le,et al.  Sequence to Sequence Learning with Neural Networks , 2014, NIPS.

[25]  Lin Zhong,et al.  Demo: sesame: self-constructive system energy modeling for battery-powered mobile systems , 2011, MobiSys '11.

[26]  Gabriele Bavota,et al.  Optimizing energy consumption of GUIs in Android apps: a multi-objective approach , 2015, ESEC/SIGSOFT FSE.

[27]  Feng Xia,et al.  A Review on mobile application energy profiling: Taxonomy, state-of-the-art, and open research issues , 2015, J. Netw. Comput. Appl..

[28]  Narseo Vallina-Rodriguez,et al.  Energy Management Techniques in Modern Mobile Handsets , 2013, IEEE Communications Surveys & Tutorials.

[29]  Lei Yang,et al.  Accurate online power estimation and automatic battery behavior based power model generation for smartphones , 2010, 2010 IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[30]  Chong Wang,et al.  Deep Speech 2 : End-to-End Speech Recognition in English and Mandarin , 2015, ICML.

[31]  Eran Yahav,et al.  Code completion with statistical language models , 2014, PLDI.

[32]  Ramesh Govindan,et al.  Estimating mobile application energy consumption using program analysis , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[33]  Lin Zhong,et al.  Self-constructive high-rate system energy modeling for battery-powered mobile systems , 2011, MobiSys '11.