Characterizing a source code model with energy measurements

Energy consumption is a critical point when developing applications. Either for battery-saving purposes, for lowering the cost of data-centers, or simply for the sake of having an eco-friendly program, reducing the energy needed to run a software becomes mandatory. Model-Driven Engineering has shown great results when it comes to program understanding and refactoring. Modeling the source code along with its energy consumption could be a powerful asset to programmers in order to develop greener code. For that purpose, this paper presents an approach for modeling energy consumption inside a source code model. Energy metrics are gathered at runtime, modeled using the standard Structured Metrics Meta-model, and associated to the source code model, enabling model-driven techniques for energy analysis and optimizations.

[1]  Abram Hindle,et al.  What Do Programmers Know about Software Energy Consumption? , 2016, IEEE Software.

[2]  Jácome Cunha,et al.  The Influence of the Java Collection Framework on Overall Energy Consumption , 2016, International Workshop on Green and Sustainable Software.

[3]  Sparsh Mittal,et al.  A survey of techniques for improving energy efficiency in embedded computing systems , 2014, Int. J. Comput. Aided Eng. Technol..

[4]  Jordi Cabot,et al.  NeoEMF: a Multi-database Model Persistence Framework for Very Large Models , 2016, D&P@MoDELS.

[5]  Jean Bézivin,et al.  On the unification power of models , 2005, Software & Systems Modeling.

[6]  W. D. D. Silva,et al.  Evaluation of the impact of code refactoring on embedded software efficiency , 2010 .

[7]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

[8]  Giuseppe Procaccianti,et al.  Empirical evaluation of two best practices for energy-efficient software development , 2016, J. Syst. Softw..

[9]  Christoforos E. Kozyrakis,et al.  JouleSort: a balanced energy-efficiency benchmark , 2007, SIGMOD '07.

[10]  Richard E. Brown,et al.  United States Data Center Energy Usage Report , 2016 .

[11]  Jordi Cabot,et al.  MoDisco: a generic and extensible framework for model driven reverse engineering , 2010, ASE.

[12]  Gustavo Pinto,et al.  Refactoring for Energy Efficiency: A Reflection on the State of the Art , 2015, 2015 IEEE/ACM 4th International Workshop on Green and Sustainable Software.

[13]  Branko Perisic,et al.  Sirius: A rapid development of DSM graphical editor , 2014, IEEE 18th International Conference on Intelligent Engineering Systems INES 2014.

[14]  Lori L. Pollock,et al.  SEEDS: a software engineer's energy-optimization decision support framework , 2014, ICSE.

[15]  Romain Rouvoy,et al.  Process-level power estimation in VM-based systems , 2015, EuroSys.

[16]  Gustavo Pinto,et al.  Data-Oriented Characterization of Application-Level Energy Optimization , 2015, FASE.

[17]  Huazhe Zhang,et al.  A Quantitative Evaluation of the RAPL Power Control System , 2014 .

[18]  Jesús Sánchez Cuadrado,et al.  Morsa: a scalable approach for persisting and accessing large models , 2011, MODELS'11.

[19]  Romain Rouvoy,et al.  PowerAPI: A Software Library to Monitor the Energy Consumed at the Process-Level , 2013, ERCIM News.

[20]  Dan Grossman,et al.  EnerJ: approximate data types for safe and general low-power computation , 2011, PLDI '11.

[21]  Romain Rouvoy,et al.  Unit testing of energy consumption of software libraries , 2014, SAC.