Runtime Overview

The qBraid Runtime framework defines essential abstractions for sessions, providers, devices, jobs, and results, integrating them into a complete client-side software pipeline. Leveraging device and domain-specific requirements outlined by each provider, it generates coherent target “profiles,” program “specs,” and compilation “schemes”.

These elements, referred to as Universal Pipeline Components (UPCs), form the foundational building blocks for constructing scalable quantum software pipelines. Each UPC plays a unique and distinct role, utilizing quantum and/or classical resources. Collectively, these components optimize the management of the entire quantum job lifecycle—from defining quantum programs to dispatching jobs to remote servers to post-processing results—and ensure the efficient production of outputs for diverse computational tasks.

Runtime Architecture

Distinguishing itself through a streamlined and highly-configurable approach to cross-platform integration, qBraid Runtime does not adhere to a fixed circuit-building library, or quantum program representation. Instead, it empowers providers to dynamically register any desired input program type as the target based on their specific needs. This flexibility is extended by the framework’s modular pipeline, which facilitates any number of additional program validation, transpilation, and compilation steps.

Unlike existing runtime frameworks that focus their automation and abstractions primarily on quantum components—such as adapting the input quantum program to the supported operations and connectivity of the target device—qBraid Runtime adds an extra layer of functionalities. This layer considers the ultimate IR needed to encode the quantum program and securely submit it to a remote API. By addressing the full scope of client-side software requirements necessary for secure submission and management of quantum jobs, qBraid Runtime significantly streamlines the development process, enhancing the agility with which quantum hardware providers can construct a complete stack and facilitate access to their devices.

Building Pipelines

The qbraid.runtime module provides the following Universal Pipeline Components (UPCs):

  • TargetProfile: Specifies domain and device-specific runtime instructions to tailor quantum executions to particular hardware configurations.
  • QuantumProvider: Converts device metadata into accessible Python objects, facilitating interaction with diverse quantum computing resources.
  • QuantumDevice: Describes the unique parameters and operational settings necessary for executing quantum programs on specific hardware.
  • QuantumJob: Represents the transitional states of quantum programs, managing both ongoing and completed quantum computations.
  • QuantumJobResult: Captures and structures the output from quantum computations, including histograms and raw data, for analysis and interpretation.

In the subsequent sections, we will demonstrate how these UPCs enable quantum software and hardware providers to configure a comprehensive client-side quantum software pipeline using just three essential REST API endpoints:

  1. GET /devices (or similar) - To retrieve metadata about available quantum devices.
  2. POST /jobs (or similar) - To submit a quantum job for execution on a specified device.
  3. GET /jobs (or similar) - To retrieve the status and results of an executed quantum job.