Interfejs zarządzania zasobami kwantowymi (QRMI)
Interfejs zarządzania zasobami kwantowymi (QRMI) to niezależna od dostawcy biblioteka dla systemów wysokowydajnych (HPC), umożliwiająca dostęp do kwantowych zasobów obliczeniowych, ich kontrolę i monitorowanie. Pełni rolę cienkiej warstwy pośredniczącej, która ukrywa złożoność związaną z kontrolowaniem zasobów kwantowych poprzez zestaw prostych interfejsów API. Napisany w języku Rust, interfejs udostępnia również API dla Pythona i C, co ułatwia integrację niemal z każdym środowiskiem obliczeniowym.
Kod źródłowy do budowania i wdrażania QRMI znajdziesz w tym repozytorium GitHub.
Opcjonalne narzędzie wiersza poleceń task_runner do wykonywania ładunków kwantowych na sprzęcie kwantowym jest dołączone do pakietu Python. Pełną dokumentację znajdziesz w repozytorium GitHub.
Budowanie bibliotek QRMI
Ta sekcja pokazuje, jak zbudować QRMI dla C i Pythona.
Wymagania
QRMI obsługuje następujące systemy operacyjne:
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
Środowisko kompilacji
- Kompilator Rust 1.91 lub nowszy
- Kompilator C: na przykład GCC (
gcc) dla systemu Linux i Clang (clang-tools-extra) dla nieznanych celów Rust/kompilacji skrośnej. QRMI jest zgodne z kompilatorem spełniającym standard C11 make/cmake(pakiet RPM make/cmake dla systemów kompatybilnych z RHEL)openssl(pakiet RPM openssl-devel dla systemów kompatybilnych z RHEL)zlib(pakiet RPM zlib-devel dla systemów kompatybilnych z RHEL)- Python 3.11, 3.12 lub 3.13 (dla API Pythona)
- Biblioteki i pliki nagłówkowe potrzebne do programowania w Pythonie (pakiet RPM python3.1x-devel dla systemów kompatybilnych z RHEL):
- /usr/include/python3.1x
- /usr/lib64/libpython3.1x.so
- Biblioteki i pliki nagłówkowe potrzebne do programowania w Pythonie (pakiet RPM python3.1x-devel dla systemów kompatybilnych z RHEL):
- Doxygen (do generowania dokumentacji API C), w zależności od systemu operacyjnego:
dnf install doxygendla Linux (RHEL/CentOS/Rocky Linux i inne)apt install doxygendla Linux (Ubuntu i inne)brew install doxygendla MacOS
Środowisko uruchomieniowe
- gcc (pakiet RPM libgcc dla systemów kompatybilnych z RHEL)
- openssl (pakiet RPM openssl-libs dla systemów kompatybilnych z RHEL)
- zlib (pakiet RPM zlib dla systemów kompatybilnych z RHEL)
- Python 3.11, 3.12 lub 3.13 (dla API Pythona)
- Biblioteki i pliki nagłówkowe potrzebne do programowania w Pythonie (pakiet RPM python3.1x-devel dla systemów kompatybilnych z RHEL)
Zbuduj bibliotekę Rust/C API za pomocą następujących poleceń w miejscu, gdzie zapisałeś repozytorium QRMI.
. ~/.cargo/env
cargo clean
cargo build --release
Aby zbudować pakiet Python, najpierw skonfiguruj środowisko Python i zainstaluj wymagane zależności.
. ~/.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
Utwórz pliki stub dla kodu Python.
. ~/.cargo/env
cargo run --bin stubgen --features=pyo3
Na koniec zbuduj pliki wheel Pythona do dystrybucji na hosty.
source ~/py312_qrmi_venv/bin/activate
CARGO_TARGET_DIR=./target/release/maturin maturin build --release
Plik wheel jest tworzony w katalogu ./target/release/maturin/wheels. Możesz go dystrybuować i instalować na hostach poleceniem pip install <wheel>.
Logowanie
QRMI obsługuje log crate do rejestrowania zdarzeń. Szczegółowe logi środowiska uruchomieniowego QRMI możesz wyświetlić, ustawiając zmienną środowiskową RUST_LOG z odpowiednim poziomem logowania. Obsługiwane poziomy to error, warn, info, debug i trace. Domyślny poziom to warn.
Jeśli ustawisz trace, zobaczysz szczegółowe logi transakcji HTTP.
RUST_LOG=trace <your QRMI executable>
Przykładowe logi:
[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 ...
Budowanie dokumentacji API
Dokumentację Rust API można wygenerować, uruchamiając:
. ~/.cargo/env
cargo doc --no-deps --open
Dokumentację C API można wygenerować przy użyciu doxygen:
doxygen Doxyfile
Spowoduje to utworzenie dokumentu HTML w katalogu ./html, który możesz otworzyć w przeglądarce internetowej.
Dokumentacja Python API jest generowana za pomocą pydoc. Po wejściu do środowiska wirtualnego z zainstalowanym pakietem QRMI uruchom następujące polecenia:
python -m pydoc -p 8290
Server ready at http://localhost:8290/
Server commands: [b]rowser, [q]uit
server> b
Następnie otwórz w przeglądarce następującą stronę:
http://localhost:8290/qrmi.html
Zatrzymaj serwer poleceniem:
server> q