Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Quarch Plugin

This plugin measures disk power consumption using a Quarch Power Analysis Module. It provides real-time power monitoring in watts and is designed to work with Grid'5000 nodes (e.g., yeti-4 in Grenoble) or any other devices connected to a Quarch Module.

Requirements

Hardware

  1. A Quarch Power Analysis Module.
  2. If you want to use it on Grid'5000:
    • Have an account on Grid'5000.
    • Use a Grenoble node (Quarch module is physically installed on yeti-4 node).

Software

  • A working quarchpy installation (Python package)
  • A Java runtime (configured in java_bin, provided by quarchpy).

Metrics

The plugin exposes the following metric:

NameTypeUnitDescriptionResourceResourceConsumerAttributesMore Information
disk_power_WF64WDisk power consumption in Wattslocal_machinelocal_machine-Sample is controlled via poll_interval

Sampling rate is controlled via the plugin configuration (sample, poll_interval).

Configuration

Here is a configuration example of the plugin. It's part of the Alumet configuration file (e.g., alumet-config.toml).

[plugins.quarch]
# --- Quarch connection configuration ---
quarch_ip = "1.2.3.4" # IP address of the module, e.g., "172.17.30.102" for Grenoble Grid'5000
quarch_port = 9760 # Default if unchanged on your module
qis_port = 9780 # Default if unchanged on your module
java_bin = "path_to_java" # Installed with quarchpy: ".../lib/python3.11/site-packages/quarchpy/connection_specific/jdk_jres/lin_amd64_jdk_jre/bin/java"
qis_jar_path = "path_to_qis" # Installed with quarchpy: ".../lib/python3.11/site-packages/quarchpy/connection_specific/QPS/win-amd64/qis/qis.jar"

# --- Measurement configuration ---
poll_interval = "150ms" # Interval between two reported measurements
flush_interval = "1500ms" # Interval between flushing buffered data

Notes:

  • poll_interval controls how often Alumet queries the Quarch module.
  • flush_interval controls how often buffered measurements are sent downstream.
  • Ensure java_bin and qis_jar_path are correct (installed with quarchpy).
Sample~Hardware Windowpoll_interval (recommended)flush_interval (recommended)
320.13 ms200 µs2 ms
640.25 ms300 µs3 ms
1280.5 ms500 µs5 ms
2561 ms1 ms10 ms
5122 ms2 ms20 ms
1K (1024)4.1 ms5 ms50 ms
2K (2048)8.2 ms10 ms100 ms
4K (4096)16.4 ms20 ms200 ms
8K (8192)32.8 ms50 ms500 ms
16K (16384)65.5 ms100 ms1 s
32K (32768)131 ms150 ms1500 ms

Notes:

  • Choosing poll_interval < hardware window (min 0.13 ms) may result in repeated identical readings.
  • Choosing poll_interval > hardware window (max 131 ms) may skip some module measurements, which is acceptable depending on your experiment duration. For example, if you want 1 poll per second, poll_interval= 1s will work.

Usage

To isolate quarchpy, create a Python virtual environment:

$ python3 -m venv /root/<Name_Virtual_Environnement> && \
/root/<Name_Virtual_Environnement>/bin/pip install --upgrade pip && \
/root/<Name_Virtual_Environnement>/bin/pip install --upgrade quarchpy
$ source /root/<Name_Virtual_Environnement>/bin/activate

Commands

# Run a command while measuring disk power
$ alumet-agent --plugins quarch exec <COMMAND_TO_EXEC>

# Run alumet with continuous measurements
$ alumet-agent --plugins quarch run

# Save results to CSV (with another plugin)
$ alumet-agent --output-file "measurements-quarch.csv" --plugins quarch,csv run

Usage on Grid'5000

  • The Quarch Module is physically installed on yeti-4 (Grenoble).
  • You can access it from any Grenoble node.
  • Example configuration for G5K:
quarch_ip = "172.17.30.102"
quarch_port = 9760
qis_port = 9780

Outputs examples

Alumet:

...
[2025-09-01T10:45:40Z INFO  alumet::agent::builder] Plugin startup complete.
    🧩 1 plugins started:
        - quarch v0.1.0

    ⭕ 24 plugins disabled: ...
    📏 1 metric registered:
        - disk_power: F64 (W)
    📥 1 source, 🔀 0 transform and 📝 0 output registered.
...

With csv plugin:

metrictimestampvalueresource_kindresource_idconsumer_kindconsumer_id__late_attributes
disk_power_W2025-09-01T10:45:41.757250914Z9.526866534local_machinelocal_machine
disk_power_W2025-09-01T10:45:42.723658463Z9.526885365local_machinelocal_machine
disk_power_W2025-09-01T10:45:43.723659913Z9.528410676local_machinelocal_machine
disk_power_W2025-09-01T10:45:44.723650353Z9.528114186local_machinelocal_machine

Troubleshooting

  • No metrics appear: check quarch_ip / ports, and ensure module is powered on.
  • Java errors: verify java_bin path from your quarchpy install.
  • QIS not found: update qis_jar_path to the correct installed JAR.

License

Copyright 2025 Marie-Line DA COSTA BENTO.

Alumet project is licensed under the European Union Public Licence (EUPL). See the LICENSE file for more details.

More information

Quarch module commands are based on the SCPI specification.

Commands formats come from the technical manual of the power analysis module. Here is an excerpt:

RECord:AVEraging [rate]
RECord:AVEraging?
RECord:AVEraging:GROup [#number] [rate]
RECord:AVEraging:[#number]?

By default, the module collects samples at a rate of 250,000 samples per second. This can be reduced by averaging across multiple measurements to give a longer recorded period.

For further details, please check the Quarch Github.