https://github.com/powerapi-ng/jouleit
A repository of scripts that can be used to monitor energy consumption.
https://github.com/powerapi-ng/jouleit
bash energy energy-consumption energy-scripts intel-rapl rapl
Last synced: 3 months ago
JSON representation
A repository of scripts that can be used to monitor energy consumption.
- Host: GitHub
- URL: https://github.com/powerapi-ng/jouleit
- Owner: powerapi-ng
- Created: 2020-05-07T11:20:08.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-06T08:20:25.000Z (7 months ago)
- Last Synced: 2025-06-02T08:19:32.093Z (4 months ago)
- Topics: bash, energy, energy-consumption, energy-scripts, intel-rapl, rapl
- Language: Shell
- Homepage:
- Size: 157 KB
- Stars: 16
- Watchers: 7
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Citation: CITATION.cff
Awesome Lists containing this project
README
# jouleit
A repository of scripts that can be used to monitor energy consumption for any program.# Requirements
- *Linux*:
Right now **jouleit** uses the Intel "_Running Average Power Limit_" (RAPL) technology that estimates power consumption of the CPU, ram and integrated GPU.
This technology is available on Intel CPU since the [Sandy Bridge generation](https://fr.wikipedia.org/wiki/Intel#Historique_des_microprocesseurs_produits)(2010).# How to use
sudo ./jouleit.sh cmd
**jouleit** offers a set of options to help benchmarking and testing programs. The avialable options are
## Flags and options
| **Flag** | **Description** | **Default value** |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------: |
| -g | print the details of all sockets instead of the aggregation | False |
| -b | print the results in the format of *KEY1:VALUE1;KEY2:VALUE2.. | False |
| -l | list all the available domains (CPU, DRAM, etc.) and print them in the form of a header of CSV | |
| -c | print only the values in CSV format (value1;value2;value3). We recommend using this after running **jouleit** with the -l flag to see the order of the measured values | false |
| -s **s0**,**s1**,.. | measure only the energy of the component in the sockets **s1,s2...** | all the available sockets |
| -o **ofilename** | redirect the output and the log of the executed program to the file `ofilename` | |
| -n **N** | run the program **N** times and record the measured values in `jfilename` file | |
| -j **jfilename** | redirect the csv formatted output of repeated runs to file `jfilename` file | date##########.csv |
| -h | display the help message | |# Examples
we want to measure a Python script called `work.py`
instead of running it like this
python work.py
we run it with **jouleit** like this
sudo ./jouleit.sh python work.py
if we want to aggregate the results we can use the flag `-g`sudo ./jouleit.sh -g python work.py
