Approximate Oracles and Synergy in Software Energy Search Spaces
@article{Bruce2019ApproximateOA, title={Approximate Oracles and Synergy in Software Energy Search Spaces}, author={Bobby R. Bruce and Justyna Petke and Mark Harman and Earl T. Barr}, journal={IEEE Transactions on Software Engineering}, year={2019}, volume={45}, pages={1150-1169} }
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…
Figures and Tables from this paper
24 Citations
Towards rigorous validation of energy optimisation experiments
- Computer ScienceGECCO
- 2020
This paper proposes a new validation approach called R3-validation which exercises software variants in a rotated-round-robin order and shows that it aligns best with actual platform behaviour.
Enhancing Genetic Improvement of Software with Regression Test Selection
- Computer Science2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE)
- 2021
The results of the empirical evaluation show that incorporation of RTS within GI significantly speeds up the whole GI process, making it up to 78% faster on the authors' benchmark set, being still able to produce valid software improvements.
Evaluation of genetic improvement tools for improvement of non-functional properties of software
- Computer ScienceGECCO Companion
- 2022
Survey and report on the existing GI tools for improvement of non-functional properties of software, and finds that ultimately only two ---Gin and PyGGI--- can be readily applied to new general software.
Genetic improvement of software efficiency: the curse of fitness estimation
- Computer ScienceGECCO Companion
- 2020
Some of the challenges in computing such fitness functions are illustrated and a synergy between in-vivo evaluation and machine learning approaches to overcome such issues are proposed.
Genetic Improvement of GPU Code
- Computer Science2019 IEEE/ACM International Workshop on Genetic Improvement (GI)
- 2019
GEVO (Gpu EVOlution), a tool for automatically tuning the performance of GPU kernels in the LLVM representation to meet desired criteria, uses population-based search to find edits to programs compiled to LLVM-IR that improve performance on desired criteria and retain required functionality.
Genetic improvement of software: from program landscapes to the automatic improvement of a live system
- Computer Science
- 2017
It is shown that software is generally not fragile and although fitness landscapes for GI are flat they are not impossible to search in, and this conclusion applies equally to bug fixing in small programs as well as execution time improvements.
Search-Based Software Engineering: 12th International Symposium, SSBSE 2020, Bari, Italy, October 7–8, 2020, Proceedings
- Computer ScienceSSBSE
- 2020
An empirical study that compares CPS model testing and verification, a search-based testing approach for compute-intensive CPS models that builds on a wellknown formal verification framework, and a technique to automatically generate formal environment assumptions for CPS models using search algorithms and genetic programming are presented.
A survey of genetic improvement search spaces
- Computer ScienceGECCO
- 2019
This paper summarises the work published on why genetic programming has been the most commonly applied search algorithm in GI and explores GI's mutation search space.
GEVO: GPU Code Optimization using Evolutionary Computation
- Computer ScienceACM Trans. Archit. Code Optim.
- 2020
GEVO (Gpu optimization using EVOlutionary computation) is a tool for automatically discovering optimization opportunities and tuning the performance of GPU kernels in the LLVM representation and improves performance on desired criteria while retaining required functionality.
Mind the gap – a distributed framework for enabling energy optimisation on modern smart-phones in the presence of noise, drift, and statistical insignificance
- Computer Science2019 IEEE Congress on Evolutionary Computation (CEC)
- 2019
This work presents a conceptual framework based on tournaments which is used to compare a range of test workloads on different combinations of phones and operating systems, and quantifies the number of trials required to resolve different variants to different levels of fidelity on arange of platforms.
References
SHOWING 1-10 OF 74 REFERENCES
SEEDS: a software engineer's energy-optimization decision support framework
- Computer Science, EngineeringICSE
- 2014
This paper describes the first known automated support for systematically optimizing the energy usage of applications by making code-level changes, and presents a general framework, SEEDS, as well as an instantiation of the framework that automatically optimizes Java applications by selecting the most energy-efficient library implementations for Java's Collections API.
Representations and operators for improving evolutionary software repair
- Computer ScienceGECCO '12
- 2012
This paper investigates representation and operator choices for source-level evolutionary program repair in the GenProg framework, focusing on: representation of individual variants, crossover design, mutation operators, and search space definition.
The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper)
- Computer Science2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
- 2012
An alternate vision for a new kind of software development environment inspired by recent results from Search Based Software Engineering is set out, freeing the designer to explore, to understand, to control and to decide rather than to construct.
Fast searches for effective optimization phase sequences
- Computer SciencePLDI '04
- 2004
This paper describes two complementary general approaches for achieving faster searches for effective optimization sequences when using a genetic algorithm, and modifies the search so fewer generations are required to achieve the same results.
Genetic Improvement of Software: A Comprehensive Survey
- Computer ScienceIEEE Transactions on Evolutionary Computation
- 2018
A comprehensive survey of this nascent field of research with a focus on the core papers in the area published between 1995 and 2015, identifying core publications including empirical studies, 96% of which use evolutionary algorithms (genetic programming in particular).
Post-compiler software optimization for reducing energy
- Computer ScienceASPLOS 2014
- 2014
Genetic Optimization Algorithm (GOA), which targets measurable non-functional aspects of software execution in programs that compile to x86 assembly, and shows average energy reductions of 20%, both for a large AMD system and a small Intel system, while maintaining program functionality on target workloads.
Evolutionary Improvement of Programs
- Computer ScienceIEEE Transactions on Evolutionary Computation
- 2011
This paper proposes a new approach that applies GP to improve existing software by optimizing its non-functional properties such as execution time, memory usage, or power consumption and discusses how best to combine and extend the existing evolutionary methods of GP, multiobjective optimization, and coevolution in order to improved existing software.
A genetic programming approach to automated software repair
- Computer ScienceGECCO
- 2009
The paper describes the method, reviews earlier experiments that repaired 11 bugs in over 60,000 lines of code, reports results on new bug repairs, and describes experiments that analyze the performance and efficacy of the evolutionary components of the algorithm.
Auto-tuning for Energy Usage in Scientific Applications
- Computer ScienceEuro-Par Workshops
- 2011
This work uses existing software and hardware facilities to tune applications to minimize for several combinations of power and performance and tunable parameters are explored via an offline search to find the parameter combinations that are optimal with respect to performance.
Search Based Software Engineering
- Computer ScienceLecture Notes in Computer Science
- 2013
This keynote address surveys recent success and momentum in the subfield of automated program repair and argues for the importance of human studies in automated software engineering and challenges the SBSE community to facilitate reproducible research and scientific advancement through benchmark creation.