Interfața de gestionare a resurselor cuantice (QRMI)
Interfața de gestionare a resurselor cuantice (QRMI) este o bibliotecă independentă de furnizor pentru sistemele de calcul de înaltă performanță (HPC), care permite accesarea, controlul și monitorizarea comportamentului resurselor de calcul cuantic. Aceasta acționează ca un strat intermediar ușor, care abstractizează complexitățile asociate controlului resurselor cuantice printr-un set de API-uri simple. Scrisă în Rust, această interfață expune de asemenea API-uri Python și C pentru a facilita integrarea în aproape orice mediu de calcul.
Găsește codul sursă pentru a construi și implementa QRMI în acest repository GitHub.
Un instrument opțional de linie de comandă task_runner pentru a executa sarcini cuantice pe hardware cuantic este inclus în pachetul Python. Găsește documentația completă în repository-ul GitHub.
Construiește bibliotecile QRMI
Această secțiune arată cum să construiești QRMI pentru C și Python.
Cerințe
QRMI suportă următoarele sisteme de operare (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
Mediu de compilare
- Compilator Rust 1.91 sau mai nou
- Un compilator C: de exemplu, GCC (
gcc) pe Linux și Clang (clang-tools-extra) pentru targeturi Rust necunoscute/compilări încrucișate. QRMI este compatibil cu un compilator conform standardului C11 make/cmake(RPM-ul make/cmake pentru OS-uri compatibile RHEL)openssl(RPM-ul openssl-devel pentru OS-uri compatibile RHEL)zlib(RPM-ul zlib-devel pentru OS-uri compatibile RHEL)- Python 3.11, 3.12 sau 3.13 (pentru API-ul Python)
- Biblioteci și fișiere antet necesare pentru dezvoltarea Python (RPM-ul python3.1x-devel pentru OS-uri compatibile RHEL):
- /usr/include/python3.1x
- /usr/lib64/libpython3.1x.so
- Biblioteci și fișiere antet necesare pentru dezvoltarea Python (RPM-ul python3.1x-devel pentru OS-uri compatibile RHEL):
- Doxygen (pentru generarea documentației API C), în funcție de OS:
dnf install doxygenpentru Linux (RHEL/CentOS/Rocky Linux și altele)apt install doxygenpentru Linux (Ubuntu și altele)brew install doxygenpentru MacOS
Mediu de execuție
- gcc (RPM-ul libgcc pentru OS-uri compatibile RHEL)
- openssl (RPM-ul openssl-libs pentru OS-uri compatibile RHEL)
- zlib (RPM-ul zlib pentru OS-uri compatibile RHEL)
- Python 3.11, 3.12 sau 3.13 (pentru API-ul Python)
- Biblioteci și fișiere antet necesare pentru dezvoltarea Python (RPM-ul python3.1x-devel pentru OS-uri compatibile RHEL)
Construiește biblioteca API Rust/C cu următoarele comenzi în directorul în care ai salvat repository-ul QRMI.
. ~/.cargo/env
cargo clean
cargo build --release
Pentru a construi pachetul Python, configurează mai întâi un mediu Python și instalează dependențele necesare.
. ~/.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
Creează fișierele stub pentru codul Python.
. ~/.cargo/env
cargo run --bin stubgen --features=pyo3
În final, construiește wheel-urile Python pentru distribuire pe hosturi.
source ~/py312_qrmi_venv/bin/activate
CARGO_TARGET_DIR=./target/release/maturin maturin build --release
Wheel-ul este creat în directorul ./target/release/maturin/wheels. Îl poți distribui și instala pe hosturi cu pip install <wheel>.
Jurnalizare
QRMI suportă log crate pentru jurnalizare. Poți găsi jurnalele detaliate de execuție QRMI specificând variabila de mediu RUST_LOG cu nivelul de jurnalizare. Nivelurile suportate sunt error, warn, info, debug și trace. Nivelul implicit este warn.
Dacă specifici trace, poți găsi jurnalele tranzacțiilor HTTP de nivel inferior.
RUST_LOG=trace <your QRMI executable>
Exemple de jurnale:
[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 ...
Construiește documentația API
Documentația API Rust poate fi creată rulând
. ~/.cargo/env
cargo doc --no-deps --open
Documentația API C poate fi creată folosind doxygen:
doxygen Doxyfile
Aceasta va crea un document HTML în directorul ./html, pe care îl poți deschide într-un browser web.
Documentația API Python este generată cu pydoc. După ce ai intrat în mediul virtual cu pachetul QRMI instalat, rulează următoarele comenzi:
python -m pydoc -p 8290
Server ready at http://localhost:8290/
Server commands: [b]rowser, [q]uit
server> b
Apoi, deschide următoarea pagină în browserul tău:
http://localhost:8290/qrmi.html
Oprește serverul cu:
server> q