An Energy Consumption Framework for Distributed Java-Based Software

In this paper we define and evaluate a framework for estimating the energy consumption of Java-based software systems. Our primary objective in devising the framework is to enable an engineer to make informed decisions when adapting a system's architecture, such that the energy consumption on hardware devices with a finite battery life is reduced, and the lifetime of the system's key software services increases. Our framework explicitly takes a component-based perspective, which renders it well suited for a large class of today's distributed, dynamic, and mobile applications. The framework allows the engineer to estimate the software system's energy consumption at construction time and refine it at runtime. In a large number of distributed application scenarios, the framework showed very good precision on the whole, giving results that were within 5% (and often less) of the actually measured power losses incurred by executing the software. While our empirical evidence suggests that the framework is broadly applicable as-is, our work to date has highlighted a number of future enhancements.

[1]  Sébastien Lafond,et al.  An Energy Consumption Model for an Embedded Java Virtual Machine , 2006, ARCS.

[2]  Marija Mikic-Rakic,et al.  A Decentralized Redeployment Algorithm for Improving the Availability of Distributed Systems , 2005, Component Deployment.

[3]  Sam Malek,et al.  Improving Availability in Large, Distributed Component-Based Systems Via Redeployment , 2005, Component Deployment.

[4]  Sarfraz Khurshid,et al.  Generalizing symbolic execution to library classes , 2005, PASTE '05.

[5]  Marija Mikic-Rakic,et al.  A style-aware architectural middleware for resource-constrained, distributed systems , 2005, IEEE Transactions on Software Engineering.

[6]  Niraj K. Jha,et al.  Energy macromodeling of embedded operating systems , 2005, TECS.

[7]  Mahmut T. Kandemir,et al.  Studying energy trade offs in offloading computation/compilation in Java-enabled mobile devices , 2004, IEEE Transactions on Parallel and Distributed Systems.

[8]  Suresh Singh,et al.  Energy Consumption of TCP in Ad Hoc Networks , 2004, Wirel. Networks.

[9]  Sarfraz Khurshid,et al.  Test input generation with java PathFinder , 2004, ISSTA '04.

[10]  Mahadev Satyanarayanan,et al.  Managing battery lifetime with energy-aware adaptation , 2004, TOCS.

[11]  Suresh Singh,et al.  Computational energy cost of TCP , 2004, IEEE INFOCOM 2004.

[12]  Lizy Kurian John,et al.  Run-time modeling and estimation of operating system power consumption , 2003, SIGMETRICS '03.

[13]  Cheng Wang,et al.  Impact of data compression on energy consumption of wireless-networked handheld devices , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[14]  Sarfraz Khurshid,et al.  Generalized Symbolic Execution for Model Checking and Testing , 2003, TACAS.

[15]  Mahadev Satyanarayanan,et al.  Balancing performance, energy, and quality in pervasive computing , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[16]  Sang Lyul Min,et al.  An Accurate Instruction-Level Energy Consumption Model for Embedded RISC Processors , 2001, OM '01.

[17]  James F. Power,et al.  Platform independent dynamic Java virtual machine analysis: the Java Grande Forum benchmark suite , 2001, JGI '01.

[18]  Mahmut T. Kandemir,et al.  Energy Behavior of Java Applications from the Memory Perspective , 2001, Java Virtual Machine Research and Technology Symposium.

[19]  Martin Nilsson,et al.  Investigating the energy consumption of a wireless network interface in an ad hoc networking environment , 2001, Proceedings IEEE INFOCOM 2001. Conference on Computer Communications. Twentieth Annual Joint Conference of the IEEE Computer and Communications Society (Cat. No.01CH37213).

[20]  Narayanan Vijaykrishnan,et al.  Java Runtime Systems: Characterization and Architectural Implications , 2001, IEEE Trans. Computers.

[21]  Jason Flinn,et al.  Quantifying the energy consumption of a pocket computer and a Java virtual machine , 2000, SIGMETRICS '00.

[22]  Mike Tien-Chien Lee,et al.  Power analysis of a 32-bit embedded microcontroller , 1995, Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.

[23]  Andrew Wolfe,et al.  Power Analysis Of Embedded Software: A First Step Towards Software Power Minimization , 1994, IEEE/ACM International Conference on Computer-Aided Design.

[24]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[25]  Sébastien Lafond,et al.  An Opcode Level Energy Consumption Model for a Java Virtual Machine , 2004, Virtual Machine Research and Technology Symposium.

[26]  Thanos Stouraitis,et al.  SOFLOPO: Towards Systematic Software Exploitation for Low-Power Designs , 2000 .