Is software "green"? Application development environments and energy efficiency in open source applications

Context: The energy efficiency of IT systems, also referred to as Green IT, is attracting more and more attention. While several researchers have focused on the energy efficiency of hardware and embedded systems, the role of application software in IT energy consumption still needs investigation. Objective: This paper aims to define a methodology for measuring software energy efficiency and to understand the consequences of abstraction layers and application development environments for the energy efficiency of software applications. Method: We first develop a measure of energy efficiency that is appropriate for software applications. We then examine how the use of application development environments relates to this measure of energy efficiency for a sample of 63 open source software applications. Results: Our findings indicate that a greater use of application development environments - specifically, frameworks and external libraries - is more detrimental in terms of energy efficiency for larger applications than for smaller applications. We also find that different functional application types have distinctly different levels of energy efficiency, with text and image editing and gaming applications being the most energy inefficient due to their intense use of the processor. Conclusion: We conclude that different designs can have a significant impact on the energy efficiency of software applications. We have related the use of software application development environments to software energy efficiency suggesting that there may be a trade-off between development efficiency and energy efficiency. We propose new research to further investigate this topic.

[1]  Albert Ma,et al.  Way Memoization to Reduce Fetch Energy in Instruction Caches , 2001 .

[2]  Mahmut T. Kandemir,et al.  Designing energy-efficient software , 2002, Proceedings 16th International Parallel and Distributed Processing Symposium.

[3]  Nagarajan Kandasamy,et al.  Self-optimization in computer systems via on-line control: application to power management , 2004 .

[4]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[5]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[6]  Ralf H. Reussner,et al.  Component-Oriented Programming , 2007, ECOOP Workshops.

[7]  Gregory Kulczycki,et al.  Performance specification of software components , 2001, SSR '01.

[8]  Kalle Lyytinen,et al.  A comparative review of CASE shells: A preliminary framework and research outcomes , 1993, Inf. Manag..

[9]  Massoud Pedram,et al.  Low power design methodologies , 1996 .

[10]  Chiara Francalanci,et al.  A Survey on Firms' Participation in Open Source Community Projects , 2009, OSS.

[11]  Jack Greenfield,et al.  Software factories: assembling applications with patterns, models, frameworks and tools , 2004, OOPSLA '03.

[12]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[13]  Kevin Crowston,et al.  The Perils and Pitfalls of Mining SourceForge , 2004, MSR.

[14]  Chiara Francalanci,et al.  An Empirical Study on the Relationship among Software Design Quality , Development Effort , and Governance in Open Source Projects , 2008 .

[15]  Martin Fowler A Survey of Object Oriented Analysis and Design Methods , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[16]  Francesco Merlo,et al.  Green IT: Everything starts from the software , 2009, ECIS.

[17]  Josef Haid,et al.  The Standard Power Estimation Interface for Software Components , 2001 .

[18]  Luca Benini,et al.  System-level power optimization: techniques and tools , 1999, Proceedings. 1999 International Symposium on Low Power Electronics and Design (Cat. No.99TH8477).

[19]  Susanne Albers,et al.  Energy-efficient algorithms for flow time minimization , 2006, STACS.

[20]  Danilo Ardagna,et al.  A cost-oriented methodology for the design of web based IT architectures , 2002, SAC '02.

[21]  Chiara Francalanci,et al.  The Impact of MIS Software on IT Energy Consumption , 2010, ECIS.

[22]  Salim Hariri,et al.  A component-based programming model for autonomic applications , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[23]  Soheil Ghiasi,et al.  Efficient and Scalable Compiler-Directed Energy Optimization for Realtime Applications , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[24]  Gordon B. Davis,et al.  Software Development Practices, Software Complexity, and Software Maintenance Performance: a Field Study , 1998 .

[25]  Ralph Johnson,et al.  Design Patterns CD: Elements of Reusable Object-Oriented Software, (CD-ROM) , 1998 .

[26]  Reinhold Weiss,et al.  Framework for power aware remote processing: design and implementation of a dynamic power estimation unit , 2001, Proceedings Fifth International Symposium on Wearable Computers.

[27]  Sam Malek,et al.  A framework for estimating the energy consumption induced by a distributed system's architectural style , 2009, SAVCBS '09.

[28]  Jack Greenfield Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools , 2004, SPLC.

[29]  Sam Malek,et al.  Component-Level Energy Consumption Estimation for Distributed Java-Based Software Systems , 2008, CBSE.

[30]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[31]  Cristina Silvano,et al.  Power estimation of embedded systems: a hardware/software codesign approach , 1998, IEEE Trans. Very Large Scale Integr. Syst..

[32]  Ricardo Bianchini,et al.  Power and energy management for server systems , 2004, Computer.

[33]  Chen Ding,et al.  The energy impact of aggressive loop fusion , 2004, Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004..

[34]  Anshul Kumar,et al.  Impact of intercluster communication mechanisms on ILP in clustered VLIW architectures , 2007, TODE.

[35]  Eric S. Raymond,et al.  The Cathedral and the Bazaar , 2000 .

[36]  Elaine J. Weyuker,et al.  Experience with Performance Testing of Software Systems: Issues, an Approach, and Case Study , 2000, IEEE Trans. Software Eng..

[37]  Anthony I. Wasserman,et al.  A Framework for Evaluating Managerial Styles in Open Source Projects , 2008, OSS.

[38]  Claude E. Shannon,et al.  Prediction and Entropy of Printed English , 1951 .

[39]  DONALD MICHIE,et al.  “Memo” Functions and Machine Learning , 1968, Nature.

[40]  Bernhard Steffen,et al.  Full Life-Cycle Support for End-to-End Processes , 2007, Computer.

[41]  Alexander Chatzigeorgiou,et al.  Energy Metric for Software Systems , 2002, Software Quality Journal.