EnergyMon Python Bindings
This project provides Python bindings to energymon libraries.
Installation
The package is available on PyPI:
pip install energymon
and on Conda Forge:
conda install energymon
Getting Started
The energymon libraries should be installed to the system and on the library search path (e.g., LD_LIBRARY_PATH
on Linux/POSIX systems or DYLD_LIBRARY_PATH
on macOS systems).
The simplest and most Pythonic approach is to use the EnergyMon
context manager.
For example, to measure the energy consumption of a task using the energymon-default
library:
from energymon.context import EnergyMon
with EnergyMon() as em:
print('Energy source:', em.get_source())
uj_start = em.get_uj()
# do some non-trivial work (must take longer than the energy source's update interval)
uj_end = em.get_uj()
print('Energy (uJ):', uj_end - uj_start)
Specify the lib
and func_get
parameters when instantiating EnergyMon
to use other energymon libraries.
Direct C struct bindings are also available using the energymon
ctypes class.
See the README in the project source for a detailed example.