MAGPIE: Machine Automated General Performance Improvement via Evolution of Software

08/04/2022
by   Aymeric Blot, et al.
0

Performance is one of the most important qualities of software. Several techniques have thus been proposed to improve it, such as program transformations, optimisation of software parameters, or compiler flags. Many automated software improvement approaches use similar search strategies to explore the space of possible improvements, yet available tooling only focuses on one approach at a time. This makes comparisons and exploration of interactions of the various types of improvement impractical. We propose MAGPIE, a unified software improvement framework. It provides a common edit sequence based representation that isolates the search process from the specific improvement technique, enabling a much simplified synergistic workflow. We provide a case study using a basic local search to compare compiler optimisation, algorithm configuration, and genetic improvement. We chose running time as our efficiency measure and evaluated our approach on four real-world software, written in C, C++, and Java. Our results show that, used independently, all techniques find significant running time improvements: up to 25 algorithm configuration, and 61 improvement. We also show that up to 10 obtained with partial combinations of the variants found by the different techniques. Furthermore, the common representation also enables simultaneous exploration of all techniques, providing a competitive alternative to using each technique individually.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/13/2017

A Search for Improved Performance in Regular Expressions

The primary aim of automated performance improvement is to reduce the ru...
research
12/09/2015

Partial Reinitialisation for Optimisers

Heuristic optimisers which search for an optimal configuration of variab...
research
06/11/2021

Automated Configuration of Genetic Algorithms by Tuning for Anytime Performance

Finding the best configuration of algorithms' hyperparameters for a give...
research
07/11/2017

Hot-Rodding the Browser Engine: Automatic Configuration of JavaScript Compilers

Modern software systems in many application areas offer to the user a mu...
research
10/16/2017

MultiRefactor: Automated Refactoring To Improve Software Quality

In this paper, a new approach is proposed for automated software mainten...
research
07/19/2023

VAPI: Vectorization of Algorithm for Performance Improvement

This study presents the vectorization of metaheuristic algorithms as the...
research
10/17/2016

Evolving the Structure of Evolution Strategies

Various variants of the well known Covariance Matrix Adaptation Evolutio...

Please sign up or login with your details

Forgot password? Click here to reset