Approximate Oracles and Synergy in Software Energy Search Spaces

Reducing the energy consumption of software systems through optimisation techniques such as genetic improvement is gaining interest. However, efficient and effective improvement of software systems requires a better understanding of the code-change search space. One important choice practitioners have is whether to preserve the system's original output or permit approximation, with each scenario having its own search space characteristics. When output preservation is a hard constraint, we report that the maximum energy reduction achievable by the modification operators is 2.69 percent (0.76 percent on average). By contrast, this figure increases dramatically to 95.60 percent (33.90 percent on average) when approximation is permitted, indicating the critical importance of approximate output quality assessment for code optimisation. We investigate synergy, a phenomenon that occurs when simultaneously applied source code modifications produce an effect greater than their individual sum. Our results reveal that 12.0 percent of all joint code modifications produced such a synergistic effect, though 38.5 percent produce an antagonistic interaction in which simultaneously applied modifications are less effective than when applied individually. This highlights the need for more advanced search-based techniques.

[1]  Douglas L. Jones,et al.  Fast searches for effective optimization phase sequences , 2004, PLDI '04.

[2]  Rui Zhang,et al.  An Empirical Study of Practitioners' Perspectives on Green Software Engineering , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[3]  Claire Le Goues,et al.  A genetic programming approach to automated software repair , 2009, GECCO.

[4]  Moshe Sipper,et al.  Flight of the FINCH Through the Java Wilderness , 2011, IEEE Transactions on Evolutionary Computation.

[5]  Mark Harman,et al.  Genetic Improvement of Software: A Comprehensive Survey , 2018, IEEE Transactions on Evolutionary Computation.

[6]  Vittorio Zaccaria,et al.  Customization of OpenCL applications for efficient task mapping under heterogeneous platform constraints , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[7]  Jasbir S. Arora,et al.  Survey of multi-objective optimization methods for engineering , 2004 .

[8]  Mark D. Semon,et al.  POSTUSE REVIEW: An Introduction to Error Analysis: The Study of Uncertainties in Physical Measurements , 1982 .

[9]  Albert Cohen,et al.  A Practical Method for Quickly Evaluating Program Optimizations , 2005, HiPEAC.

[10]  M. H. van Emden,et al.  Interval arithmetic: From principles to implementation , 2001, JACM.

[11]  Westley Weimer,et al.  Automated program repair through the evolution of assembly code , 2010, ASE.

[12]  Michael F. P. O'Boyle,et al.  Milepost GCC: Machine Learning Enabled Self-tuning Compiler , 2011, International Journal of Parallel Programming.

[13]  Ding Li,et al.  Making web applications more energy efficient for OLED smartphones , 2014, ICSE.

[14]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[15]  Mark Harman,et al.  Search-based software engineering , 2001, Inf. Softw. Technol..

[16]  Ananta Tiwari,et al.  Auto-tuning for Energy Usage in Scientific Applications , 2011, Euro-Par Workshops.

[17]  Fan Long,et al.  An analysis of patch plausibility and correctness for generate-and-validate patch generation systems , 2015, ISSTA.

[18]  Bobby R. Bruce,et al.  Specialising Guava's Cache to Reduce Energy Consumption , 2015, SSBSE.

[19]  Cedric Nugteren,et al.  CLBlast: A Tuned OpenCL BLAS Library , 2017, IWOCL.

[20]  William B. Langdon,et al.  Optimising Quantisation Noise in Energy Measurement , 2016, PPSN.

[21]  Mark Harman,et al.  Using Genetic Improvement and Code Transplants to Specialise a C++ Program to a Problem Class , 2014, EuroGP.

[22]  John A. Clark,et al.  Searching for resource-efficient programs: low-power pseudorandom number generators , 2008, GECCO '08.

[23]  Frank Vahid,et al.  A highly configurable cache architecture for embedded systems , 2003, 30th Annual International Symposium on Computer Architecture, 2003. Proceedings..

[24]  Ding Li,et al.  Optimizing energy of HTTP requests in Android applications , 2015, DeMobile@SIGSOFT FSE.

[25]  Claire Le Goues,et al.  Representations and operators for improving evolutionary software repair , 2012, GECCO '12.

[26]  Henry Hoffmann,et al.  Dynamic knobs for responsive power-aware computing , 2011, ASPLOS XVI.

[27]  Keith D. Cooper,et al.  Adaptive Optimizing Compilers for the 21st Century , 2002, The Journal of Supercomputing.

[28]  Abhik Roychoudhury,et al.  Detecting energy bugs and hotspots in mobile apps , 2014, SIGSOFT FSE.

[29]  Markus Wagner,et al.  Deep parameter optimisation on Android smartphones for energy minimisation: a tale of woe and a proof-of-concept , 2017, GECCO.

[30]  Abram Hindle,et al.  GreenMiner: a hardware based mining software repositories software energy consumption framework , 2014, MSR 2014.

[31]  Westley Weimer,et al.  Post-compiler software optimization for reducing energy , 2014, ASPLOS.

[32]  HoffmannHenry,et al.  Dynamic knobs for responsive power-aware computing , 2011 .

[33]  John A. Clark,et al.  Evolutionary Improvement of Programs , 2011, IEEE Transactions on Evolutionary Computation.

[34]  Ramesh Govindan,et al.  Calculating source line level energy information for Android applications , 2013, ISSTA.

[35]  Kenneth A. De Jong,et al.  On Using Genetic Algorithms to Search Program Spaces , 1987, ICGA.

[36]  John A. Clark,et al.  The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper) , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[37]  J. Koomey Worldwide electricity used in data centers , 2008 .

[38]  Jason Landsborough,et al.  Removing the Kitchen Sink from Software , 2015, GECCO.

[39]  Mark Harman,et al.  Improving 3D medical image registration CUDA software with genetic programming , 2014, GECCO.

[40]  Justyna Petke,et al.  Deep Parameter Optimisation for Face Detection Using the Viola-Jones Algorithm in OpenCV , 2016, SSBSE.

[41]  Petr Tuma,et al.  Benchmark Precision and Random Initial State , 2005 .

[42]  Mark Harman,et al.  Evolving a CUDA kernel from an nVidia template , 2010, IEEE Congress on Evolutionary Computation.

[43]  Fan Wu,et al.  Deep Parameter Optimisation , 2015, GECCO.

[44]  Alexander E. I. Brownlee,et al.  Object-Oriented Genetic Improvement for Improved Energy Consumption in Google Guava , 2015, SSBSE.

[45]  Mark Harman,et al.  The Oracle Problem in Software Testing: A Survey , 2015, IEEE Transactions on Software Engineering.

[46]  M. Berenbaum What is synergy? , 1989, Pharmacological reviews.

[47]  Mark Harman,et al.  A theoretical & empirical analysis of evolutionary testing and hill climbing for structural test data generation , 2007, ISSTA '07.

[48]  Ding Li,et al.  An Empirical Study of the Energy Consumption of Android Applications , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

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

[50]  Lukás Sekanina,et al.  Evolutionary Approximation of Software for Embedded Systems: Median Function , 2015, GECCO.

[51]  Melanie Mitchell,et al.  The royal road for genetic algorithms: Fitness landscapes and GA performance , 1991 .

[52]  Qiang Yang,et al.  A Survey on Transfer Learning , 2010, IEEE Transactions on Knowledge and Data Engineering.

[53]  Justyna Petke,et al.  Reducing Energy Consumption Using Genetic Improvement , 2015, GECCO.

[54]  Mark Harman,et al.  Ieee Transactions on Evolutionary Computation 1 , 2022 .

[55]  Christian Bienia,et al.  Benchmarking modern multiprocessors , 2011 .

[56]  Berenbaum Mc What is synergy? , 1989, Pharmacological reviews.

[57]  John R. Taylor Introduction to Error Analysis, the Study of Uncertainties in Physical Measurements, 2nd Edition , 1997 .

[58]  Jason Lawrence,et al.  Genetic programming for shader simplification , 2011, ACM Trans. Graph..

[59]  Judith Gurney BP Statistical Review of World Energy , 1985 .