Перейти до основного вмісту

Інтерфейс управління квантовими ресурсами (QRMI)

Інтерфейс управління квантовими ресурсами (QRMI) — це незалежна від постачальника бібліотека для систем високопродуктивних обчислень (HPC), що забезпечує доступ, контроль і моніторинг квантових обчислювальних ресурсів. Він функціонує як тонкий проміжний шар, що абстрагує складнощі управління квантовими ресурсами за допомогою простого набору API. Написаний на Rust, цей інтерфейс також надає API для Python і C для легкої інтеграції практично в будь-яке обчислювальне середовище.

Знайди вихідний код для збірки та розгортання QRMI в цьому репозиторії GitHub.

До пакета Python включено опційний інструмент командного рядка task_runner для виконання квантових завдань на квантовому обладнанні. Повну документацію знайди в репозиторії GitHub.

Збірка бібліотек QRMI

Цей розділ показує, як зібрати QRMI для C і Python.

Вимоги

QRMI підтримує такі операційні системи (ОС):

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

Середовище компіляції

  • Компілятор Rust 1.91 або новіший
  • Компілятор C: наприклад, GCC (gcc) для Linux і Clang (clang-tools-extra) для невідомих цілей Rust / крос-компіляцій. QRMI сумісний із компілятором, що відповідає стандарту C11
  • make/cmake (RPM make/cmake для ОС, сумісних з RHEL)
  • openssl (RPM openssl-devel для ОС, сумісних з RHEL)
  • zlib (RPM zlib-devel для ОС, сумісних з RHEL)
  • Python 3.11, 3.12 або 3.13 (для Python API)
    • Бібліотеки та заголовні файли, необхідні для розробки на Python (RPM python3.1x-devel для ОС, сумісних з RHEL):
      • /usr/include/python3.1x
      • /usr/lib64/libpython3.1x.so
  • Doxygen (для генерації документації C API), залежно від ОС:
    • dnf install doxygen для Linux (RHEL/CentOS/Rocky Linux та інші)
    • apt install doxygen для Linux (Ubuntu та інші)
    • brew install doxygenдля MacOS

Середовище виконання

  • gcc (RPM libgcc для ОС, сумісних з RHEL)
  • openssl (RPM openssl-libs для ОС, сумісних з RHEL)
  • zlib (RPM zlib для ОС, сумісних з RHEL)
  • Python 3.11, 3.12 або 3.13 (для Python API)
    • Бібліотеки та заголовні файли, необхідні для розробки на Python (RPM python3.1x-devel для ОС, сумісних з RHEL)

Збери бібліотеку Rust/C API за допомогою таких команд у директорії, де збережено репозиторій QRMI.

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

Щоб зібрати пакет Python, спочатку налаштуй середовище Python і встанови необхідні залежності.

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

Створи файли-заглушки для коду Python.

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

Нарешті, збери Python wheels для розповсюдження на твої хости.

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

Wheel створюється в директорії ./target/release/maturin/wheels. Ти можеш розповсюджувати його та встановлювати на своїх хостах за допомогою pip install <wheel>.

Журналювання

QRMI підтримує log crate для журналювання. Ти можеш переглянути детальні журнали виконання QRMI, задавши змінну середовища RUST_LOG з рівнем журналювання. Підтримувані рівні: error, warn, info, debug та trace. Рівень за замовчуванням — warn.

Якщо задати trace, можна переглянути базові журнали HTTP-транзакцій.

RUST_LOG=trace <your QRMI executable>

Приклад журналів:

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

Збірка документації API

Документацію Rust API можна створити, виконавши:

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

Документацію C API можна створити за допомогою doxygen:

doxygen Doxyfile

Це створить HTML-документ у директорії ./html, який ти можеш відкрити у веб-браузері.

Документація Python API генерується за допомогою pydoc. Після входу у віртуальне середовище зі встановленим пакетом QRMI виконай такі команди:

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

Потім відкрий таку сторінку у своєму браузері:

http://localhost:8290/qrmi.html

Зупини сервер за допомогою:

server> q