Interfaccia di gestione delle risorse quantistiche (QRMI)
La Quantum resource management interface (QRMI) è una libreria vendor-agnostic per sistemi di calcolo ad alte prestazioni (HPC) che consente di accedere, controllare e monitorare il comportamento delle risorse di calcolo quantistico. Funge da livello middleware leggero che astrae le complessità legate al controllo delle risorse quantistiche tramite un insieme di API semplici. Scritta in Rust, questa interfaccia espone anche API Python e C per facilitare l'integrazione in quasi qualsiasi ambiente computazionale.
Trova il codice sorgente per compilare e distribuire QRMI in questo repository GitHub.
Un tool a riga di comando opzionale task_runner per eseguire payload quantistici su hardware quantistico è incluso nel pacchetto Python. Trova la documentazione completa nel repository GitHub.
Compilazione delle librerie QRMI​
Questa sezione mostra come compilare QRMI per C e Python.
Requisiti​
QRMI supporta i seguenti sistemi operativi (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
Ambiente di compilazione​
- Compilatore Rust 1.91 o superiore
- Un compilatore C: ad esempio GCC (
gcc) su Linux e Clang (clang-tools-extra) per target sconosciuti Rust/compilazioni incrociate. QRMI è compatibile con un compilatore conforme allo standard C11 make/cmake(make/cmake RPM per OS compatibili con RHEL)openssl(openssl-devel RPM per OS compatibili con RHEL)zlib(zlib-devel RPM per OS compatibili con RHEL)- Python 3.11, 3.12 o 3.13 (per le API Python)
- Librerie e file di intestazione necessari per lo sviluppo Python (python3.1x-devel RPM per OS compatibili con RHEL):
- /usr/include/python3.1x
- /usr/lib64/libpython3.1x.so
- Librerie e file di intestazione necessari per lo sviluppo Python (python3.1x-devel RPM per OS compatibili con RHEL):
- Doxygen (per la generazione della documentazione dell'API C), in base all'OS:
dnf install doxygenper Linux (RHEL/CentOS/Rocky Linux e altri)apt install doxygenper Linux (Ubuntu e altri)brew install doxygenper MacOS
Ambiente di runtime​
- gcc (libgcc RPM per OS compatibili con RHEL)
- openssl (openssl-libs RPM per OS compatibili con RHEL)
- zlib (zlib RPM per OS compatibili con RHEL)
- Python 3.11, 3.12 o 3.13 (per le API Python)
- Librerie e file di intestazione necessari per lo sviluppo Python (python3.1x-devel RPM per OS compatibili con RHEL)
Compila la libreria Rust/C API con i seguenti comandi nella directory in cui hai salvato il repository QRMI.
. ~/.cargo/env
cargo clean
cargo build --release
Per compilare il pacchetto Python, configura prima un ambiente Python e installa le dipendenze richieste.
. ~/.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
Crea i file stub per il codice Python.
. ~/.cargo/env
cargo run --bin stubgen --features=pyo3
Infine, compila le wheel Python per la distribuzione sui tuoi host.
source ~/py312_qrmi_venv/bin/activate
CARGO_TARGET_DIR=./target/release/maturin maturin build --release
La wheel viene creata nella directory ./target/release/maturin/wheels. Puoi distribuirla e installarla sui tuoi host con pip install <wheel>.
Logging​
QRMI supporta il log crate per il logging. Puoi visualizzare i log di runtime dettagliati di QRMI specificando la variabile d'ambiente RUST_LOG con il livello di log. I livelli supportati sono error, warn, info, debug e trace. Il livello predefinito è warn.
Se specifichi trace, puoi visualizzare i log delle transazioni HTTP sottostanti.
RUST_LOG=trace <your QRMI executable>
Log di esempio:
[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 ...
Compilazione della documentazione API​
La documentazione dell'API Rust può essere creata eseguendo:
. ~/.cargo/env
cargo doc --no-deps --open
La documentazione dell'API C può essere creata usando doxygen:
doxygen Doxyfile
Verrà creato un documento HTML nella directory ./html, che puoi aprire in un browser web.
La documentazione dell'API Python viene generata con pydoc. Dopo aver attivato l'ambiente virtuale con il pacchetto QRMI installato, esegui i seguenti comandi:
python -m pydoc -p 8290
Server ready at http://localhost:8290/
Server commands: [b]rowser, [q]uit
server> b
Quindi, apri la seguente pagina nel tuo browser:
http://localhost:8290/qrmi.html
Ferma il server con:
server> q