Přeskočit na hlavní obsah

Rozhraní pro správu kvantových zdrojů (QRMI)

Rozhraní pro správu kvantových zdrojů (QRMI) je na dodavateli nezávislá knihovna pro systémy vysoce výkonných výpočtů (HPC), která umožňuje přistupovat ke kvantovým výpočetním prostředkům, řídit je a sledovat jejich chování. Funguje jako tenká middleware vrstva, která abstrahuje složitosti spojené s ovládáním kvantových prostředků prostřednictvím sady jednoduchých API. Toto rozhraní je napsáno v jazyce Rust a pro snadnou integraci do téměř jakéhokoli výpočetního prostředí zpřístupňuje také Python a C API.

Zdrojový kód pro sestavení a nasazení QRMI najdeš v tomto repozitáři GitHub.

Součástí balíčku pro Python je volitelný nástroj příkazové řádky task_runner pro spouštění kvantových úloh na kvantovém hardwaru. Úplnou dokumentaci najdeš v repozitáři GitHub.

Sestavení knihoven QRMI

Tato část ukazuje, jak sestavit QRMI pro C a Python.

Požadavky

QRMI podporuje následující operační systémy (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

Prostředí pro kompilaci

  • Kompilátor Rust 1.91 nebo novější
  • Kompilátor C: například GCC (gcc) pro Linux a Clang (clang-tools-extra) pro neznámé cíle Rustu / křížové kompilace. QRMI je kompatibilní s kompilátorem odpovídajícím standardu C11
  • make/cmake (RPM balíček make/cmake pro OS kompatibilní s RHEL)
  • openssl (RPM balíček openssl-devel pro OS kompatibilní s RHEL)
  • zlib (RPM balíček zlib-devel pro OS kompatibilní s RHEL)
  • Python 3.11, 3.12 nebo 3.13 (pro Python API)
    • Knihovny a hlavičkové soubory potřebné pro vývoj v Pythonu (RPM balíček python3.1x-devel pro OS kompatibilní s RHEL):
      • /usr/include/python3.1x
      • /usr/lib64/libpython3.1x.so
  • Doxygen (pro generování dokumentace C API), v závislosti na OS:
    • dnf install doxygen pro Linux (RHEL/CentOS/Rocky Linux a další)
    • apt install doxygen pro Linux (Ubuntu a další)
    • brew install doxygenpro MacOS

Prostředí pro spuštění

  • gcc (RPM balíček libgcc pro OS kompatibilní s RHEL)
  • openssl (RPM balíček openssl-libs pro OS kompatibilní s RHEL)
  • zlib (RPM balíček zlib pro OS kompatibilní s RHEL)
  • Python 3.11, 3.12 nebo 3.13 (pro Python API)
    • Knihovny a hlavičkové soubory potřebné pro vývoj v Pythonu (RPM balíček python3.1x-devel pro OS kompatibilní s RHEL)

Knihovnu Rust/C API sestav pomocí následujících příkazů v adresáři, kam jsi uložil/a repozitář QRMI.

. ~/.cargo/env
cargo clean
cargo build --release

Pro sestavení balíčku Python nejprve nastav prostředí Python a nainstaluj požadované závislosti.

. ~/.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

Vytvoř stub soubory pro kód v Pythonu.

. ~/.cargo/env
cargo run --bin stubgen --features=pyo3

Nakonec sestav Python wheels pro distribuci na tvé hostitele.

source ~/py312_qrmi_venv/bin/activate
CARGO_TARGET_DIR=./target/release/maturin maturin build --release

Wheel soubor se vytvoří v adresáři ./target/release/maturin/wheels. Můžeš jej distribuovat a nainstalovat na svých hostitelích pomocí pip install <wheel>.

Logování

QRMI podporuje log crate pro logování. Podrobné logy běhu QRMI zjistíš zadáním proměnné prostředí RUST_LOG s úrovní logování. Podporované úrovně jsou error, warn, info, debug a trace. Výchozí úroveň je warn.

Pokud zadáš trace, najdeš logy základních HTTP transakcí.

RUST_LOG=trace <your QRMI executable>

Ukázkové logy:

[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 ...

Sestavení dokumentace API

Dokumentaci Rust API lze vytvořit spuštěním

. ~/.cargo/env
cargo doc --no-deps --open

Dokumentaci C API lze vytvořit pomocí doxygen:

doxygen Doxyfile

Tímto se vytvoří HTML dokument v adresáři ./html, který lze otevřít ve webovém prohlížeči.

Dokumentace Python API se generuje pomocí pydoc. Po vstupu do virtuálního prostředí s nainstalovaným balíčkem QRMI spusť následující příkazy:

python -m pydoc -p 8290
Server ready at http://localhost:8290/
Server commands: [b]rowser, [q]uit
server> b

Poté otevři v prohlížeči následující stránku:

http://localhost:8290/qrmi.html 

Server zastav pomocí:

server> q