Saltar al contenido principal

Interfaz de gestión de recursos cuánticos (QRMI)

La interfaz de gestión de recursos cuánticos (QRMI) es una biblioteca independiente del proveedor para que los sistemas de computación de alto rendimiento (HPC) accedan, controlen y supervisen el comportamiento de los recursos computacionales cuánticos. Actúa como una capa de middleware ligera que abstrae las complejidades asociadas al control de recursos cuánticos mediante un conjunto de APIs sencillas. Escrita en Rust, esta interfaz también expone APIs de Python y C para facilitar la integración en prácticamente cualquier entorno computacional.

Encuentra el código fuente para compilar e implementar QRMI en este repositorio de GitHub.

En el paquete de Python se incluye una herramienta de línea de comandos opcional task_runner para ejecutar cargas de trabajo cuánticas en hardware cuántico. Consulta la documentación completa en el repositorio de GitHub.

Compilar las bibliotecas QRMI

Esta sección muestra cómo compilar QRMI para C y Python.

Requisitos

QRMI es compatible con los siguientes sistemas operativos (SO):

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

Entorno de compilación

  • Compilador de Rust 1.91 o superior
  • Un compilador de C: por ejemplo, GCC (gcc) en Linux y Clang (clang-tools-extra) para destinos desconocidos de Rust o compilaciones cruzadas. QRMI es compatible con compiladores que cumplan el estándar C11
  • make/cmake (RPM make/cmake para SO compatibles con RHEL)
  • openssl (RPM openssl-devel para SO compatibles con RHEL)
  • zlib (RPM zlib-devel para SO compatibles con RHEL)
  • Python 3.11, 3.12 o 3.13 (para la API de Python)
    • Bibliotecas y archivos de cabecera necesarios para el desarrollo en Python (RPM python3.1x-devel para SO compatibles con RHEL):
      • /usr/include/python3.1x
      • /usr/lib64/libpython3.1x.so
  • Doxygen (para generar la documentación de la API de C), según el SO:
    • dnf install doxygen para Linux (RHEL/CentOS/Rocky Linux y otros)
    • apt install doxygen para Linux (Ubuntu y otros)
    • brew install doxygenpara MacOS

Entorno de ejecución

  • gcc (RPM libgcc para SO compatibles con RHEL)
  • openssl (RPM openssl-libs para SO compatibles con RHEL)
  • zlib (RPM zlib para SO compatibles con RHEL)
  • Python 3.11, 3.12 o 3.13 (para la API de Python)
    • Bibliotecas y archivos de cabecera necesarios para el desarrollo en Python (RPM python3.1x-devel para SO compatibles con RHEL)

Compila la biblioteca de la API de Rust/C con los siguientes comandos en el directorio donde hayas guardado el repositorio de QRMI.

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

Para compilar el paquete de Python, primero configura un entorno de Python e instala las dependencias necesarias.

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

Crea los archivos stub para el código de Python.

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

Por último, compila los wheels de Python para distribuirlos en tus hosts.

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

El wheel se crea en el directorio ./target/release/maturin/wheels. Puedes distribuirlo e instalarlo en tus hosts con pip install <wheel>.

Registro de eventos

QRMI es compatible con el log crate para el registro de eventos. Puedes consultar los registros detallados del tiempo de ejecución de QRMI especificando la variable de entorno RUST_LOG con el nivel de registro. Los niveles admitidos son error, warn, info, debug y trace. El nivel predeterminado es warn.

Si especificas trace, podrás ver los registros de las transacciones HTTP subyacentes.

RUST_LOG=trace <your QRMI executable>

Ejemplo de registros:

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

Compilar la documentación de la API

La documentación de la API de Rust se puede generar ejecutando

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

La documentación de la API de C se puede generar usando doxygen:

doxygen Doxyfile

Esto creará un documento HTML en el directorio ./html, que puedes abrir en un navegador web.

La documentación de la API de Python se genera con pydoc. Tras activar el entorno virtual con el paquete QRMI instalado, ejecuta los siguientes comandos:

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

Luego, abre la siguiente página en tu navegador:

http://localhost:8290/qrmi.html

Detén el servidor con:

server> q