Estimating the Energy Footprint of Software Systems: a Primer
Fernando Castor
TL;DR
This paper tackles the problem of estimating the energy footprint of software running on diverse hardware, formalizing the distinction between energy $E$, power $P$, and time $t$ to guide Green Software Development. It surveys two main approaches—measurement and modeling—and explains their trade-offs, then demonstrates a practical workflow through an illustrative benchmark (Fannkuch Redux) to highlight experimental design, data collection, and reporting challenges. It discusses three estimation strategies—hardware performance counters with software (e.g., RAPL, powermetrics, NVML), external measurement hardware, and analytical models that separate platform-dependent and application-dependent contributions—emphasizing sampling rate, overhead, tail-power effects, and applicability. The paper provides actionable guidance for designing reproducible energy experiments and reporting results, aiming to accelerate adoption of energy-aware software development practices and enable meaningful comparisons across solutions and platforms.
Abstract
In Green Software Development, quantifying the energy footprint of a software system is one of the most basic activities. This documents provides a high-level overview of how the energy footprint of a software system can be estimated to support Green Software Development. We introduce basic concepts in the area, highlight methodological issues that must be accounted for when conducting experiments, discuss trade-offs associated with different estimation approaches, and make some practical considerations. This document aims to be a starting point for researchers who want to begin conducting work in this area.
