Abstract

Reducing computational energy consumption is of growing importance, particularly at the extremes (i.e., mobile devices and datacentres). Despite the ubiquity of the Java virtual machine (JVM), very little work has been done to apply search-based software engineering (SBSE) to minimize the energy consumption of programs that run on it. We describe OPACITOR, a tool for measuring the energy consumption of JVM programs using a bytecode level model of energy cost. This has several advantages over timebased energy approximations or hardware measurements. It is 1) deterministic, 2) unaffected by the rest of the computational environment, 3) able to detect small changes in execution profile, making it highly amenable to metaheuristic search, which requires locality of representation. We show how generic SBSE approaches coupled with OPACITOR achieve substantial energy savings for three widely used software components. Multilayer perceptron implementations minimizing both energy and error were found, and energy reductions of up to 70% and 39.85% were obtained over the original code for Quicksort and object-oriented container classes, respectively. These highlight three important considerations for automatically reducing computational energy: tuning software to particular distributions of data; trading off energy use against functional properties; and handling internal dependencies that can exist within software that render simple sweeps over program variants sub-optimal. Against these, global search greatly simplifies the developer's job, freeing development time for other tasks.

Highlights

  • E NERGY consumption related to program execution is of growing importance at all scales, from mobile and embedded devices through to datacentres [1]–[3]

  • We describe OPACITOR, a tool implementing a new approach to measuring the energy consumption of applications running on a Java Virtual Machine (JVM)

  • Given the widespread use of Java, it is surprising that so little has been done to to apply the power of search-based software engineering (SBSE) to minimize the energy consumption programs written for the Java Virtual Machine (JVM)

Read more

Summary

INTRODUCTION

E NERGY consumption related to program execution is of growing importance at all scales, from mobile and embedded devices through to datacentres [1]–[3]. The ultimate goal is to obtain general methods that can reduce energy consumption, analogously to the familiar process of automatic compiler optimization for execution time This is an ideal application for Search-Based Software Engineering (SBSE), the use of search based optimisation for software engineering problems [9], with initial work in this area showing promising results [2], [10]–[14]. The results demonstrate that global search methods allow improvements in energy to be targeted to specific datasets, be traded off against other functionality, and can accommodate hard-to-determine interactions within the code All three of these would otherwise result in lengthy, repetitive exploration through large spaces of alternative designs.

RELATED WORK
OPACITOR
QUICKSORT
Experiments
Results and Discussion
MULTILAYER PERCEPTRON
GUAVA AND APACHE COMMONS COLLECTIONS
THREATS TO VALIDITY
Findings
VIII. CONCLUSION
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.