Automatically Exploring Tradeoffs between Software Output Fidelity and Energy Costs

Jonathan Dorn, Jeremy Lacomis, Westley Weimer, Stephanie Forrest

Research output: Contribution to journalArticlepeer-review

7 Scopus citations


Data centers account for a significant fraction of global energy consumption and represent a growing business cost. Most current approaches to reducing energy use in data centers treat it as a hardware, compiler, or scheduling problem. This article focuses instead on the software level, showing how to reduce the energy used by programs when they execute. By combining insights from search-based software engineering, mutational robustness, profile-guided optimization, and approximate computing, the Producing Green Applications Using Genetic Exploration (PowerGAUGE) algorithm finds variants of individual programs that use less energy than the original. We apply hardware, software, and statistical techniques to manage the complexity of accurately assigning physical energy measurements to particular processes. In addition, our approach allows, but does not require, relaxing output quality requirements to achieve greater non-functional improvements. PowerGAUGE optimizations are validated using physical performance measurements. Experimental results on PARSEC benchmarks and two larger programs show average energy reductions of 14% when requiring the preservation of original output quality and 41% when allowing for human-acceptable levels of error.

Original languageEnglish (US)
Article number8118155
Pages (from-to)219-236
Number of pages18
JournalIEEE Transactions on Software Engineering
Issue number3
StatePublished - Mar 1 2019


  • Power optimization
  • accurate energy measurement
  • genetic algorithms
  • optimizing noisy functions
  • profile-guided optimization
  • search-based software engineering

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'Automatically Exploring Tradeoffs between Software Output Fidelity and Energy Costs'. Together they form a unique fingerprint.

Cite this