PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools

Status:: 🟩
Links::

Metadata

Authors:: Noureddine, Adel
Title:: PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools
Date:: 2022
URL:: https://ieeexplore.ieee.org/document/9826760/
DOI:: 10.1109/IE54923.2022.9826760

Bibliography

Noureddine, A. (2022). PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools. 2022 18th International Conference on Intelligent Environments (IE), 1–4. https://doi.org/10.1109/IE54923.2022.9826760

Zotero

Type:: #zotero/conferencePaper
Zotero::

Keywords:: [⏳, Measurement, Energy Efficiency]

Relations

Abstract

Monitoring the power consumption of applications and source code is an important step in writing green software. In this paper, we propose PowerJoular and JoularJX, our software power monitoring tools. We aim to help software developers in understanding and analyzing the power consumption of their programs, and help system administrators and automated tools in monitoring the power consumption of large numbers of heterogeneous devices.

Notes & Annotations

πŸ“‘ Annotations (imported on 2023-12-19#20:59:28)

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 2)

To help bridge the gap, we present, in this paper, PowerJoular and JoularJX, our multi-platform software power monitoring tools. PowerJoular monitors the power consumption of CPU and GPU for PCs, servers and single-board computers (such as Raspberry Pi). JoularJX uses the power data provided by PowerJoular to monitor the power consumption of methods and source code in Java applications.

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 2)

In contrast, we aim with our approach, to provide a multiplatform power monitoring tool (starting with x86 64 servers and ARM single-board devices), and help software developers with up-to-date and easy-to-use tools to analyze the power consumption of software.

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 2)

PowerJoular is written in Ada in order to provide a low-impact tool as Ada is constantly ranked among the most energy efficient programming languages [8], while also improving code maintainability and safety in particular as we also target monitoring singleboard computers and embedded devices.

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 3)

For the CPU, PowerJoular uses the Intel RAPL power data through the Linux powercap interface by reading the appropriate system files.

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 3)

Finally, PowerJoular aggregates power readings from all supported components to provide an overall power consumption. For instance, if both Intel RAPL and NVIDIA SMI are supported, the tool will provide an aggregated power value for both CPU and GPU.

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 3)

In addition to monitoring the power consumption of hardware components (CPU, GPU), PowerJoular can monitor the CPU power consumption of an individual process by providing its PID on runtime.

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 3)

Finally, PowerJoular provides a systemd service 5 that can be enabled and run automatically on Linux boot. The service monitors the computer’s power consumption and stores data in a CSV file (with overwrite mode) in /tmp folder. This allows continuous and automated monitoring of servers and devices, and provides accurate runtime power data.

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 4)

Java is among the top 10 of the most energy-efficient languages [8] with its modern on-the-fly optimizations in the JVM, ranking even fifth in the normalized global results for energy.

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 4)

CPU utilization is then monitored every second for every Java thread and power consumption is allocated accordingly. A second monitoring loop detects, for every thread, which method is currently being executed for every 10 milliseconds (by observing the first method in the thread stacktrace), and then power consumption is allocated statistically to each method.

noureddine.2022.powerjoularjoularjxmultiplatform (pg. 5)

Our tools are aimed towards software developers in helping them understand and analyze the power footprint of their software and source code, across multiple platforms and devices. It can also be used by system administrators and automated tools to monitor, in real time, a large number of devices (such as through a dashboard), and use the power data to take energyaware decisions.