[PDF]

Energy-Efficient Code


Dylan Mingay

08/05/2025

Supervised by Frank C Langbein; Moderated by Bailin Deng

We wish to investigate the energy consumption of algorithms running on various hardware platforms. By understanding the factors that influence energy usage, we aim to develop techniques to optimize code for improved energy efficiency and the impact on other performance measures such as traditional time, memory and I/O requirements. This is linked to specific hardware platforms and measuring their energy usage, even if the focus is on code and algorithms.

The first task is to find a way to estimate the power usage and select a suitable hardware platform (CPUs from x86 via arm to RISC-V, GPUs, NPUs, TPUs, ...). Power estimates may be obtained via measuring the total power usage via registers (e.g. see RAPL MSR) or possibly via measuring the energy via the power rails. The accuracy and precision of these tools may have to be validated.

The next task is to select a suitable problem or benchmark to compare codes on the chosen hardware. This could link to energy usage over different programming languages, e.g. what is the difference of a web application running on C vs PHP vs Python. Or comparing different algorithms performing the same task (e.g. memory intensive vs. computation intensive approaches). Of particular interest here is also machine learning and GPUs.

Then a range of algorithms and variations to optimize energy performance should be explored, including algorithm modifications, compiler optimizations, and hardware-specific optimizations. Finally the performance results should be analysed, compared and reported suitably. More advanced, one could also try to explore predictive modelling of the energy consumption based on algorithm, etc. choices and other performance metrics (that may be simpler to collect than energy usage).

This project requires some understanding of computer hardware and electronics as well as statistics and data analysis, besides suitable programming experience for the chosen task.

Ideally, the code would be made available under the AGPL v3 or compatible license to integrate with our other code.


Initial Plan (03/02/2025) [Zip Archive]

Final Report (08/05/2025) [Zip Archive]

Publication Form