Energy Consumption of Software β Using CPU Time or CPU Utilization as a Proxy
How good/bad is the usage of CPU time or CPU utilization as a proxy for energy consumption?
If used as a proxy for CPU energy consumption:
- usage of different CPU instructions may lead to different energy consumption
- frequency may change due to DVFS
- hyper-threading
- waiting time (stalled) is part of the CPU Utilization
If used as a proxy for the energy consumption of the whole machine:
- energy consumption of some components are independent of CPU activity (e.g. memory consumes energy all the time)
Experiment by Qiao et al. (2024)
Kepler
Sources / Design decisions for energy splitting Β· sustainable-computing-io/kepler Β· Discussion #548 Β· GitHub
The CPU's dynamic energy consumption is mainly determined by the operations it performs at a given voltage and temperature. The workload can cause the CPU to execute fewer or more instructions in a cycle (or time interval).
β Marcelo Carneiro do Amaral
I do fully agree that using CPU-Time is a problematic proxy for splitting the energy, because the value has limited absolute meaning nowadays with features like DVFS and also that waiting time in linux is often mal-attributed due to interconnect congestions.
β Arne Tarara