Pular para o conteúdo principal

Interface de gerenciamento de recursos quânticos (QRMI)

A Interface de gerenciamento de recursos quânticos (QRMI) é uma biblioteca agnóstica de fornecedor para sistemas de computação de alto desempenho (HPC) acessarem, controlarem e monitorarem o comportamento de recursos computacionais quânticos. Ela atua como uma camada intermediária leve que abstrai as complexidades associadas ao controle de recursos quânticos por meio de um conjunto de APIs simples. Escrita em Rust, essa interface também expõe APIs em Python e C para facilitar a integração em praticamente qualquer ambiente computacional.

Encontre o código-fonte para compilar e implantar o QRMI neste repositório GitHub.

Uma ferramenta de linha de comando opcional task_runner para executar cargas úteis quânticas em hardware quântico está incluída no pacote Python. Encontre a documentação completa no repositório GitHub.

Compilar as bibliotecas QRMI

Esta seção mostra como compilar o QRMI para C e Python.

Requisitos

O QRMI oferece suporte aos seguintes sistemas operacionais (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

Ambiente de compilação

  • Compilador Rust 1.91 ou superior
  • Um compilador C: por exemplo, GCC (gcc) no Linux e Clang (clang-tools-extra) para alvos desconhecidos do Rust/compilações cruzadas. O QRMI é compatível com compiladores conformes ao padrão C11
  • make/cmake (RPM make/cmake para SO compatíveis com RHEL)
  • openssl (RPM openssl-devel para SO compatíveis com RHEL)
  • zlib (RPM zlib-devel para SO compatíveis com RHEL)
  • Python 3.11, 3.12 ou 3.13 (para a API Python)
    • Bibliotecas e arquivos de cabeçalho necessários para o desenvolvimento em Python (RPM python3.1x-devel para SO compatíveis com RHEL):
      • /usr/include/python3.1x
      • /usr/lib64/libpython3.1x.so
  • Doxygen (para geração de documentação da API C), dependendo do SO:
    • dnf install doxygen para Linux (RHEL/CentOS/Rocky Linux e outros)
    • apt install doxygen para Linux (Ubuntu e outros)
    • brew install doxygenpara MacOS

Ambiente de execução

  • gcc (RPM libgcc para SO compatíveis com RHEL)
  • openssl (RPM openssl-libs para SO compatíveis com RHEL)
  • zlib (RPM zlib para SO compatíveis com RHEL)
  • Python 3.11, 3.12 ou 3.13 (para a API Python)
    • Bibliotecas e arquivos de cabeçalho necessários para o desenvolvimento em Python (RPM python3.1x-devel para SO compatíveis com RHEL)

Compile a biblioteca Rust/API C com os seguintes comandos no local onde você salvou o repositório QRMI.

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

Para compilar o pacote Python, primeiro configure um ambiente Python e instale as dependências necessárias.

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

Crie os arquivos stub para o código Python.

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

Por fim, compile os wheels Python para distribuição nos seus hosts.

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

O wheel é criado no diretório ./target/release/maturin/wheels. Você pode distribuir e instalar nos seus hosts com pip install <wheel>.

Registro de logs

O QRMI oferece suporte ao log crate para registro de logs. Você pode encontrar os logs detalhados de execução do QRMI especificando a variável de ambiente RUST_LOG com o nível de log desejado. Os níveis suportados são error, warn, info, debug e trace. O nível padrão é warn.

Se você especificar trace, poderá encontrar os logs de transações HTTP subjacentes.

RUST_LOG=trace <your QRMI executable>

Exemplos de logs:

[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 a documentação da API

A documentação da API Rust pode ser criada executando

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

A documentação da API C pode ser criada usando o doxygen:

doxygen Doxyfile

Isso criará um documento HTML no diretório ./html, que você pode abrir em um navegador web.

A documentação da API Python é gerada com pydoc. Após entrar no ambiente virtual com o QRMI instalado, execute os seguintes comandos:

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

Em seguida, abra a seguinte página no seu navegador:

http://localhost:8290/qrmi.html

Pare o servidor com:

server> q