Python tooling to run benchmark suites on multiple remote devices, collect energy/thermal data through an APCape power board, and generate per-test CSVs and plots.
main.pyiterates over the configs defined inconfigs.py, runs each test suite on the target devices via SSH, and streams power readings from the APCape (defaultAPCape8L).- Power/temperature/frequency samples are written to CSV, then matplotlib produces summary plots for each test and a combined view.
- Each config in
all_configs/defines the commands to run, upload/delete rules, and the devices involved.
- APCape power board reachable at the configured server/port (defaults are in each config, e.g.
beaglebone.local:6526andAPCape8L). - SSH access to the target devices defined under
all_configs/(key-based auth recommended). - Python 3.10+ with the packages in
requirements.txt(pip install -r requirements.txt). pmlibserver running on the APCape host.
- (Optional) Create a virtualenv:
python -m venv .venv .\\.venv\\Scripts\\activate
- Install deps:
pip install -r requirements.txt
- Review device settings in
all_configs/devices.pyand the individual config files. Update IPs, usernames, and temp thresholds to match your lab. - Enable/disable suites by editing the
configsmapping inconfigs.py(remove entries you don’t want to run).
python main.pyResults land under all_configs/results/<run-group>/<config-name>-<config-test-name>/ with:
*.csvpower/temp/frequency snapshotsplots/PNG summaries (per test and aggregate)stdout/folders if enabled by the config
Copy an existing file in all_configs/, adjust the tests dict and devices, then add it to configs in configs.py.
MIT License. See LICENSE.