cpupowerbench

CPUPowerBench is an automated benchmark to accurately generate a power model for single-board computers.

https://github.com/joular/cpupowerbench

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: sciencedirect.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

CPUPowerBench is an automated benchmark to accurately generate a power model for single-board computers.

Basic Info
  • Host: GitHub
  • Owner: joular
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 53.7 KB
Statistics
  • Stars: 9
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created over 3 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

Joular Project CPU Power Benchmark (CPUPowerBench)

License: GPL v3

CPUPowerBench is an automated benchmark to accurately generate a power model for single-board computers (Raspberry Pi, Asus TinkerBoard, BeagleBone, etc.).

Step 1: CPU Benchmark

:package: Automatic installation

Run the installer file: sh installer.sh in cpu-benchmark folder.

:floppy_disk: Manual Installation

First install dev tools: gcc, cmake, make, python 3, pip: sudo apt install python3 python3-pip gcc make cmake

Then install python requirements for CPU Load Generator: pip install -r requirements.txt

Then compile CPU Cycles program: cmake . make

:bulb: Usage

Connect your single-board device to a PowerSpy2 power meter.

Then, just run the benchmark script: sh start-benchmark.sh.

At the end of the experiment, two CSV files will be generated (cpucycles.csv and cpuload.csv). Finally, get the power meter data by using PowerSpy software and downloading the saved monitored data from the meter's internal memory, and rename the file to powerspy.csv.

Step 2: Power model generation

:package: Installation

Install python requirements: pip install -r requirements.txt in model-generation folder.

:bulb: Usage

Copy the 2 CSV files generated in the benchmark (cpucycles.csv and cpuload.csv) to the model-generation folder. Also, download power data CSV file from PowerSpy2, and copy it under the name powerspy.csv.

Then, just run the model generation script: python runModelGeneration.py in model-generation folder.

If you use a different powermeter or have a different CSV file structure for the power file, you can run the script with the powercsv option: python runModelGeneration.py powercsv. The option expects the CSV file to have two columns: timestamp and power consumption.

:bookmark_tabs: Cite this work

To cite our work in a research paper, please cite our paper in Sustainable Computing: Informatics and Systems journal.

  • Automated Power Modeling of Computing Devices: Implementation and Use Case for Raspberry Pis. Houssam Kanso, Adel Noureddine, and Ernesto Exposito. In Sustainable Computing: Informatics and Systems journal (SUSCOM). Volume 37. January 2023.

@article{KANSO2023100837, title = {Automated power modeling of computing devices: Implementation and use case for Raspberry Pis}, journal = {Sustainable Computing: Informatics and Systems}, volume = {37}, pages = {100837}, year = {2023}, issn = {2210-5379}, doi = {https://doi.org/10.1016/j.suscom.2022.100837}, url = {https://www.sciencedirect.com/science/article/pii/S2210537922001688}, author = {Houssam Kanso and Adel Noureddine and Ernesto Exposito}, keywords = {Power consumption, Performance, Measurement, Empirical experimentation, Automated software architecture} }

:newspaper: License

RPiPowerBench is licensed under the GNU GPL 3 license only (GPL-3.0-only).

Copyright (c) 2020-2023, Université de Pau et des Pays de l'Adour. All rights reserved. This program and the accompanying materials are made available under the terms of the GNU General Public License v3.0 only (GPL-3.0-only) which accompanies this distribution, and is available at: https://www.gnu.org/licenses/gpl-3.0.en.html

Authors : Houssam Kanso, Adel Noureddine

Owner

  • Name: The Joular Project
  • Login: joular
  • Kind: organization

The Joular project aims to advance knowledge in software energy efficiency throughout the life cycle of software, and across a variety of software systems

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite the research paper."
preferred-citation:
  type: article
  authors:
  - family-names: "Kanso"
    given-names: "Houssam"
    orcid: "https://orcid.org/0000-0002-4811-191X"
  - family-names: "Noureddine"
    given-names: "Adel"
    orcid: "https://orcid.org/0000-0002-8585-574X"
  - family-names: "Exposito"
    given-names: "Ernesto"
    orcid: "https://orcid.org/0000-0002-3543-2909"
  title: "Automated power modeling of computing devices: Implementation and use case for Raspberry Pis"
  year: 2023
  journal: 'Sustainable Computing: Informatics and Systems'
  volume: 37
  doi: 10.1016/j.suscom.2022.100837

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Dependencies

cpu-benchmark/cpuload/requirements.txt pypi
  • click *
  • matplotlib *
  • psutil *
model-generation/requirements.txt pypi
  • datetime *
  • matplotlib *
  • pandas *
  • plotly *
  • scikit-learn *
  • sklearn *