Energy-Languages-PowerCap
Trading Runtime for Energy Efficiency: Leveraging Power Caps to Save Energy Across Programming Languages
1. Authors:
- Simão Cunha (a93262@alunos.uminho.pt)
- Luís Silva (pg50564@alunos.uminho.pt)
- João Saraiva (saraiva@di.uminho.pt)
- João Paulo Fernandes (jpf9731@nyu.edu)
Requirements
- Debian-based Linux distributions (needs to work with RAPLCap)
- Intel processor
- Non containerized environment
Directory Structure
benchmarks/
- Contains benchmark tests (see benchmarks/README.md for more details), including:
- Dacapo
- Nofib
- PyPerformance
inputs/
- Required input files for specific problem executions.
Languages/
- Folder with all the languages and problems used for evaluations.
NoteBooks/
- Jupyter notebooks with graphs and calculations used in the paper.
RAPL/
- C program for measuring and limiting CPU power.
Required Libraries
- RAPL
- lm-sensors
- Powercap
- Raplcap
These libraries can be installed with the following command:
sudo sh raplLibrariesSetup.sh
Setup
To install all the required language compilers, interpreters and libraries, execute the script:
sudo sh languagesSetup.sh
Note: This setup was not fully tested and might require manual interaction (such as accepting permissions).
Generate the input files:
sudo sh gen-input.sh
Execute the script to generate the CSV file (this script iterates all the Languages and all of the programs):
sh measure.sh
Note: You might need to update some of the compilers' paths since the script uses default installation paths from the authors' machine. These paths are defined on config.env.
Meaning of the CSV file columns
Column | Meaning |
---|---|
Language | Programming language of the sorting algorithm |
ProgramName | Name of the sorting algorithm |
Package | Energy consumption of the entire socket - all cores consumption, GPU, and external core components |
Core | Energy consumption by all cores and caches |
GPU | Energy consumption by the GPU |
DRAM | Energy consumption by the RAM |
Time | Algorithm's execution time (in ms) |
Temperature | Mean temperature in all cores (in Celsius degrees) |
Memory | Total physical memory assigned to the algorithm execution (in KBytes) |
PowerLimit | Power cap of the cores (in Watts) |
ACM Reference Format
Simão Cunha, Luís Silva, João Saraiva, and João Paulo Fernandes. 2024. Trading Runtime for Energy Efficiency: Leveraging Power Caps to Save Energy Across Programming Languages. In Proceedings of the 17th ACM SIGPLAN International Conference on Software Language Engineering (SLE '24), October 20–21, 2024, Pasadena, CA, USA. ACM, New York, NY, USA, 13 pages. https://doi.org/10.1145/3687997.3695638
Funding
CERCIRAS: Connecting Education and Research Communities for an Innovative Resource Aware Society
Coordenação de Aperfeicoamento de Pessoal de Nível Superior
Find out more...