Energy Performance Analysis of Software Applications on Servers

The power cost of running a data center is a significant portion of its total annual operating budget. Although the hardware subsystems, namely, processors, memory, disk, and network interfaces of a server actually consume power, it is the software activities that drive the operations of the hardware subsystems leading to varying dynamic power cost. With the aim of reducing power bills of data centers, “Green Computing” has emerged with the primary goal of making software more energy efficient without compromising the performance. Developers play an important role in controlling the energy cost of data center software while writing code. Bearing green principles in mind during design and coding stages of the software life-cycle can have a great impact on the energy efficiency of the final software product. There are a number of ways to optimize application programs at their design stages but it is difficult for the developers to analyse their applications in terms of power cost on the real servers. Reading big data, moving large amount of data from one server to another, compressing data to gain storage space, and decompressing it back are some key operations that are performed extensively on large scale servers in data centers. In the first part of this thesis, we present the design of an automated test bench to measure the power cost of an application running on a server. We show how our test bench can be used by software developers to measure and improve the energy cost of two Java file access methods. Another benefit of our test bench has been demonstrated by comparing the energy footprint measurements of compression and decompression features provided by two popular Linux packages: 7z and rar. This information will be helpful in choosing a Green Software among others to perform a desired function. In the second part, we show how software developers can contribute to energy efficiency of servers by choosing energy efficient APIs (Application Programming Interface) with the optimal choice of parameters while implementing file reading, file copy, file compression and file decompression operations in Java. We performed extensive measurements of energy cost of those operations on a Dell Power Edge 2950 machine running Linux and Windows servers. Measurement results show that energy costs of various APIs for those operations are sensitive to the buffer size selection. The choice of a particular Java API for file reading with different buffer sizes has significant impact on the energy cost, giving an opportunity to save up to 76%. To save energy while copying files, it is important to use APIs with tunable buffer sizes, rather than APIs using fixed size buffers. In addition, there is a trade off between compression ratio and energy cost: because of higher compression ratio, xz compression API consumes more energy than zip and gzip compression APIs.

[1]  Shiao-Li Tsao,et al.  Minimizing Energy Consumption of Embedded Systems via Optimal Code Layout , 2012, IEEE Transactions on Computers.

[2]  Xiao Zhang,et al.  A high-level energy consumption model for heterogeneous data centers , 2013, Simul. Model. Pract. Theory.

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

[4]  William J. Kaiser,et al.  Investigating Energy and Security Trade-offs in the Classroom with the Atom LEAP Testbed , 2011, CSET.

[5]  Rajesh Gupta,et al.  Evaluating the effectiveness of model-based power characterization , 2011 .

[6]  William J. Kaiser,et al.  The Energy Endoscope: Real-Time Detailed Energy Accounting for Wireless Sensor Nodes , 2007, 2008 International Conference on Information Processing in Sensor Networks (ipsn 2008).

[7]  Christopher W. Fraser,et al.  Engineering a simple, efficient code-generator generator , 1992, LOPL.

[8]  Erez Zadok,et al.  Energy and performance evaluation of lossless file data compression on server systems , 2009, SYSTOR '09.

[9]  Daniel Schall,et al.  Enhancing energy efficiency of database applications using SSDs , 2010, C3S2E '10.

[10]  Sang-Ho Lee,et al.  Investigation for Software Power Consumption of Code Refactoring Techniques , 2014, SEKE.

[11]  Luigia Petre,et al.  Energy-Aware Middleware , 2008, 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ecbs 2008).

[12]  Daniel M. Germán,et al.  The Impact of User Choice on Energy Consumption , 2014, IEEE Software.

[13]  Haluk Demirkan,et al.  From Green Computing to Sustainable IT: Developing a Sustainable Service Orientation , 2010, 2010 43rd Hawaii International Conference on System Sciences.

[14]  Kshirasagar Naik A Survey of Software Based Energy Saving Methodologies for Handheld Wireless Communication Devices , 2010 .

[15]  Krisztina Erdelyi,et al.  Special factors of development of green software supporting eco sustainability , 2013, 2013 IEEE 11th International Symposium on Intelligent Systems and Informatics (SISY).

[16]  Feng Zhao,et al.  Fine-grained energy profiling for power-aware application design , 2008, PERV.

[17]  F. Kiamilev,et al.  Towards power reduction through improved software design , 2012, 2012 IEEE Energytech.

[18]  Nattachart Ia-Manee,et al.  Reducing Engergy Consumption in Programs Using Cohesion Technique , 2013 .

[19]  Alan L. Cox,et al.  The Hadoop distributed filesystem: Balancing portability and performance , 2010, 2010 IEEE International Symposium on Performance Analysis of Systems & Software (ISPASS).

[20]  Wei Chen,et al.  Empowering Designers to Estimate Function-Level Power for Developing Green Applications , 2013, 2013 International Conference on Cloud and Service Computing.

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

[22]  Amin Vahdat,et al.  ECOSystem: managing energy as a first class operating system resource , 2002, ASPLOS X.

[23]  Mani B. Srivastava,et al.  Low-cost estimation of sub-system power , 2012, 2012 International Green Computing Conference (IGCC).

[24]  Sagar Naik,et al.  Software Implementation Strategies for Power-Conscious Systems , 2001, Mob. Networks Appl..

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

[26]  Romain Rouvoy,et al.  A preliminary study of the impact of software engineering on GreenIT , 2012, 2012 First International Workshop on Green and Sustainable Software (GREENS).

[27]  Abhishek Agrawal,et al.  Green IS , 2013, Wirtschaftsinf..

[28]  Mingyu Chen,et al.  A fine-grained component-level power measurement method , 2011, 2011 International Green Computing Conference and Workshops.

[29]  Mary Jane Irwin,et al.  Techniques for low energy software , 1997, Proceedings of 1997 International Symposium on Low Power Electronics and Design.

[30]  Jack W. Davidson,et al.  Memory access coalescing: a technique for eliminating redundant memory accesses , 1994, PLDI '94.

[31]  Joost Visser,et al.  Seflab: A lab for measuring software energy footprints , 2013, 2013 2nd International Workshop on Green and Sustainable Software (GREENS).

[32]  David J. Brown,et al.  Toward Energy-Efficient Computing , 2010, ACM Queue.

[33]  Margaret Martonosi,et al.  Runtime power monitoring in high-end processors: methodology and empirical data , 2003, Proceedings. 36th Annual IEEE/ACM International Symposium on Microarchitecture, 2003. MICRO-36..

[34]  Romain Rouvoy,et al.  A review of energy measurement approaches , 2013, OPSR.

[35]  Chiara Francalanci,et al.  Is software "green"? Application development environments and energy efficiency in open source applications , 2012, Inf. Softw. Technol..

[36]  Kshirasagar Naik,et al.  Client-centric data streaming on smartphones: An energy perspective , 2013, 2013 International Conference on Selected Topics in Mobile and Wireless Networking (MoWNeT).

[37]  Luca Ardito,et al.  Introducing Energy Efficiency into SQALE , 2013 .

[38]  Kshirasagar Naik,et al.  Automation of Energy Performance Evaluation of Software Applications on Servers , 2014 .

[39]  Dong Li,et al.  PowerPack: Energy Profiling and Analysis of High-Performance Systems and Applications , 2010, IEEE Transactions on Parallel and Distributed Systems.

[40]  W.J. Kaiser,et al.  The low power energy aware processing (LEAP) embedded networked sensor system , 2006, 2006 5th International Conference on Information Processing in Sensor Networks.

[41]  Dipankar Sarma,et al.  Energy-aware task and interrupt management in Linux , 2009 .

[42]  Sam Malek,et al.  An energy consumption framework for distributed java-based systems , 2007, ASE.

[43]  Zichen Xu Building a power-aware database management system , 2010, IDAR '10.

[44]  Mani B. Srivastava,et al.  Energy-aware wireless systems with adaptive power-fidelity tradeoffs , 2005, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.