Sari la conținutul principal

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
  • Doxygen (pentru generarea documentației API C), în funcție de OS:
    • dnf install doxygen pentru Linux (RHEL/CentOS/Rocky Linux și altele)
    • apt install doxygen pentru 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