Quantum Resource Management Interface (QRMI)
Die Quantum Resource Management Interface (QRMI) ist eine herstellerunabhängige Bibliothek für Hochleistungsrechensysteme (HPC), mit der du Quantenrechenressourcen nutzen, steuern und überwachen kannst. Sie fungiert als schlanke Middleware-Schicht, die die Komplexität der Steuerung von Quantenressourcen durch eine Reihe einfacher APIs abstrahiert. Die in Rust geschriebene Schnittstelle stellt außerdem Python- und C-APIs bereit, um die Integration in nahezu jede Rechenumgebung zu erleichtern.
Den Quellcode zum Erstellen und Bereitstellen von QRMI findest du in diesem GitHub-Repository.
Das Python-Paket enthält das optionale Befehlszeilenwerkzeug task_runner, mit dem du Quanten-Payloads gegen Quantenhardware ausführen kannst. Die vollständige Dokumentation findest du im GitHub-Repository.
QRMI-Bibliotheken erstellen
Dieser Abschnitt zeigt, wie du QRMI für C und Python erstellst.
Voraussetzungen
QRMI unterstützt die folgenden Betriebssysteme (OS):
AlmaLinux 9, Amazon Linux 2023, CentOS Stream 9, CentOS Stream 10,
RedHat Enterprise Linux 8, RedHat Enterprise Linux 9,
RedHat Enterprise Linux 10, Rocky Linux 8, Rocky Linux 9, SuSE 15,
Ubuntu 22.04, Ubuntu 24.04, MacOS Sequoia 15.1 or above
Kompilierungsumgebung
- Rust-Compiler 1.91 oder höher
- Ein C-Compiler: zum Beispiel GCC (
gcc) unter Linux und Clang (clang-tools-extra) für unbekannte Rust-Ziele / Cross-Compilierungen. QRMI ist mit einem Compiler kompatibel, der dem C11-Standard entspricht make/cmake(make/cmake RPM für RHEL-kompatible OS)openssl(openssl-devel RPM für RHEL-kompatible OS)zlib(zlib-devel RPM für RHEL-kompatible OS)- Python 3.11, 3.12 oder 3.13 (für die Python-API)
- Bibliotheken und Header-Dateien für die Python-Entwicklung (python3.1x-devel RPM für RHEL-kompatible OS):
- /usr/include/python3.1x
- /usr/lib64/libpython3.1x.so
- Bibliotheken und Header-Dateien für die Python-Entwicklung (python3.1x-devel RPM für RHEL-kompatible OS):
- Doxygen (zum Generieren der C-API-Dokumentation), je nach OS:
dnf install doxygenfür Linux (RHEL/CentOS/Rocky Linux und andere)apt install doxygenfür Linux (Ubuntu und andere)brew install doxygenfür MacOS
Laufzeitumgebung
- gcc (libgcc RPM für RHEL-kompatible OS)
- openssl (openssl-libs RPM für RHEL-kompatible OS)
- zlib (zlib RPM für RHEL-kompatible OS)
- Python 3.11, 3.12 oder 3.13 (für die Python-API)
- Bibliotheken und Header-Dateien für die Python-Entwicklung (python3.1x-devel RPM für RHEL-kompatible OS)
Erstelle die Rust/C-API-Bibliothek mit den folgenden Befehlen in dem Verzeichnis, in dem du das QRMI-Repository gespeichert hast.
. ~/.cargo/env
cargo clean
cargo build --release
Um das Python-Paket zu erstellen, richte zunächst eine Python-Umgebung ein und installiere die erforderlichen Abhängigkeiten.
. ~/.cargo/env
cargo clean
python3.12 -m venv ~/py312_qrmi_venv
source ~/py312_qrmi_venv/bin/activate
pip install --upgrade pip
pip install -r requirements-dev.txt
Erstelle die Stub-Dateien für den Python-Code.
. ~/.cargo/env
cargo run --bin stubgen --features=pyo3
Erstelle abschließend die Python-Wheels für die Verteilung auf deine Hosts.
source ~/py312_qrmi_venv/bin/activate
CARGO_TARGET_DIR=./target/release/maturin maturin build --release
Das Wheel wird im Verzeichnis ./target/release/maturin/wheels erstellt. Du kannst es verteilen und auf deinen Hosts mit pip install <wheel> installieren.
Logging
QRMI unterstützt die log crate für das Logging. Detaillierte QRMI-Laufzeitprotokolle erhältst du, indem du die Umgebungsvariable RUST_LOG mit dem gewünschten Log-Level setzt. Unterstützte Levels sind error, warn, info, debug und trace. Der Standard-Level ist warn.
Wenn du trace angibst, kannst du die zugrunde liegenden HTTP-Transaktionsprotokolle einsehen.
RUST_LOG=trace <your QRMI executable>
Beispielprotokolle:
[2025-08-16T03:47:38Z DEBUG request::connect] starting new connection: https://iam.cloud.ibm.com/
[2025-08-16T03:47:38Z DEBUG direct_access_api::middleware::auth] current token ...
API-Dokumentation erstellen
Die Rust-API-Dokumentation kann mit folgendem Befehl erstellt werden:
. ~/.cargo/env
cargo doc --no-deps --open
Die C-API-Dokumentation kann mit doxygen erstellt werden:
doxygen Doxyfile
Dadurch wird ein HTML-Dokument im Verzeichnis ./html erstellt, das du in einem Webbrowser öffnen kannst.
Die Python-API-Dokumentation wird mit pydoc generiert. Nachdem du die virtuelle Umgebung mit dem installierten QRMI-Paket aktiviert hast, führe folgende Befehle aus:
python -m pydoc -p 8290
Server ready at http://localhost:8290/
Server commands: [b]rowser, [q]uit
server> b
Öffne dann die folgende Seite in deinem Browser:
http://localhost:8290/qrmi.html
Stoppe den Server mit:
server> q