Skip to main content
IBM Quantum Platform

Referencia de la API de Quantum Elements Orbit

  • Qiskit Functions

    Qiskit Functions — Las herramientas preconfiguradas creadas por organizaciones colaboradoras — abstraen partes del flujo de trabajo de desarrollo de software para simplificar y acelerar el descubrimiento de algoritmos y el desarrollo de aplicaciones a escala industrial. Haz clic aquí para consultar la guía de esta función de Qiskit.

Quantum Elements Orbit es una función de Qiskit que prepara circuitos cuánticos para un backend seleccionado de IBM Quantum®, inserta desacoplamiento dinámico (DD) en las ventanas de inactividad programadas y ejecuta la carga de trabajo resultante mediante una primitiva de IBM Quantum. Orbit acepta PUB de muestreo y estimación, y devuelve un estándar PrimitiveResult con metadatos específicos de Orbit adjuntos al resultado de nivel superior y a cada resultado de bloque unificado primitivo ( PUB ).

Comportamiento predeterminado

Si backend_name se omite, Orbit selecciona el backend de « IBM Quantum » menos ocupado y que cumpla los requisitos, disponible para el servicio de computación « IBM Quantum ». Si options se omite o se especifica None, Orbit utiliza sus valores predeterminados integrados: transpilar y programar los circuitos, insertar la estrategia DD predeterminada, enviarlo al servicio y adjuntar los metadatos de la inserción de DD al resultado.


Entradas

La llamada típica envía PUB, selecciona una primitiva, selecciona opcionalmente un backend y, también de forma opcional, pasa opciones específicas de Orbit:

job = orbit.run(
    primitive="sampler",
    pubs=[pub, pub, pub],
    backend_name="ibm_boston",
    options={
        "pub_options": [
            {"mode": "raw"},
            {"mode": "orbit"},
            {
                "mode": "custom",
                "dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
                "transpilation_mode": "optimize",
                "mem": True,
            },
        ]
    },
)
result = job.result()

pubs proporciona los circuitos y las entradas primitivas necesarios para su funcionamiento. primitive selecciona el contrato primitivo « IBM Quantum ». backend_name selecciona el backend « IBM Quantum », o bien puede omitirse para que Orbit elija el backend menos ocupado. options controla la inserción de DD en Orbit, las opciones de Quantum Compute, el comportamiento de la vista previa y el simulador, y las funciones de metadatos. A continuación se detallan todos los datos relativos a cada entrada.

pubs

Tipo: Iterable[SamplerPubLike] or Iterable[EstimatorPubLike]

Uno o varios PUB que coincidan con la primitiva seleccionada.

  • Obligatorio: Sí
  • Tipos de entrada válidos: iterable de objetos similares a Sampler PUB o iterable de objetos similares a Estimator PUB

Cada « PUB » debe coincidir con el contrato de entrada de la primitiva seleccionada.

  • primitive="sampler"Para cada PUB, se sigue la forma del Sampler PUB, como por ejemplo (circuit, parameter_values, shots).
  • primitive="estimator"Para cada PUB, se sigue la forma del estimador PUB, como por ejemplo (circuit, observables, parameter_values, precision).
  • No es necesario que los circuitos sean circuitos ISA en la ruta predeterminada options.transpilation_mode="optimize" ; Orbit los transpilúa y los programa internamente.

primitive

Tipo: str

Selecciona qué primitiva de « IBM Quantum » utiliza Orbit para la ejecución.

  • Obligatorio: Sí
  • Tipos de entrada válidos: str

La primitiva determina qué debe contener cada « PUB » y qué datos de resultado devuelve cada PubResult una de ellas.

  • Opciones: "sampler" / "estimator"
  • Utilízalo "sampler" para datos de cadenas de bits muestreadas.
  • Utiliza "estimator" para los valores esperados y los errores estándar.

backend_name

Tipo: str or None

Valor predeterminado: None

Nombre del backend de « IBM Quantum » en el que se va a ejecutar.

  • Obligatorio: No

  • Valor predeterminado: None

  • Tipos de entrada válidos: str o None

  • Cuando se omite o None, Orbit determina un backend operativo válido que no sea un simulador mediante least_busy().

  • Ejemplo:"ibm_boston"

options

Tipo: dict or None

Valor predeterminado: None

Opciones específicas de cada función que controlan el comportamiento de ejecución de Orbit.

  • Obligatorio: No
  • Valor predeterminado: None
  • Tipos de entrada válidos: dict o None

Las opciones controlan la transpilación, la inserción de DD, las opciones de Quantum Compute, el modo de vista previa, el modo de simulador, la exportación de información del backend y la mitigación de errores de medición.

  • Las teclas de opción desconocidas se rechazan.
  • Introduce None, {}, u omite options para utilizar todos los valores predeterminados.
  • Ejemplo:
{
    "pub_options": [
        {"mode": "raw"},
        {"mode": "orbit"},
        {
            "mode": "custom",
            "dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
            "transpilation_mode": "optimize",
            "mem": True
        }
    ]
}

Lista de opciones

preview

Tipo: bool

Valor predeterminado: False

Si Orbit devuelve un informe de inserción de DD sin enviar un trabajo de computación cuántica.

  • Obligatorio: No

  • Valor predeterminado: False

  • Tipos de entrada válidos: bool

  • TrueEn ese caso, no se utiliza tiempo de la QPU; Orbit se limita a preprocesar los circuitos y pubs proporciona un informe de inserción.

  • Cuando False (valor por defecto), se envía y se procesa un trabajo de computación cuántica con circuitos modificados por Orbit.

  • Si tanto preview como simulator son True, prevalece el modo de vista previa y se ignora la ejecución del simulador.

debug_return_circuits

Tipo: bool

Valor predeterminado: False

Si el modo de vista previa incluye el circuito post-Orbit preparado para cada PUB en los metadatos.

  • Obligatorio: No

  • Valor predeterminado: False

  • Tipos de entrada válidos: bool

  • Se utiliza únicamente cuando preview=True.

  • Cada informe de True PUB incluye debugCircuit.circuit, debugCircuit.usedQubits, y el recuento de operaciones. También incluye el enfoque de «mejor esfuerzo» debugCircuit.qasm cuando Qiskit puede exportar el circuito.

  • Deja esta opción desactivada en las ejecuciones normales, ya que las cargas útiles de los circuitos pueden ser grandes.

transpilation_mode

Tipo: string

Valor predeterminado: optimize

Cómo prepara Orbit los circuitos de « PUB » antes de la inserción de los dispositivos DD.

  • Obligatorio: No

  • Valor predeterminado: "optimize"

  • Valores válidos: "optimize", "prepare", o "validate"

  • "optimize" ejecuta repetidamente la transpilación de Qiskit optimization_level=2 y selecciona la opción con la menor profundidad de dos qubits tanto para circuitos estáticos como dinámicos.

  • "prepare" se encarga de la preparación de Qiskit optimization_level=0 y de la programación de ALAP. Si physical_layout se proporciona, Orbit primero materializa el circuito en esos índices de cables físicos y utiliza el método de diseño «trivial» de Qiskit.

  • "validate" considera que el circuito de entrada ya está preparado físicamente. Orbit comprueba la compatibilidad del backend siempre que sea posible, no reasigna, redirige, optimiza ni repara la programación antes de la inserción del DD, y lo ignora physical_layout mostrando una advertencia.

physical_layout

Tipo: object or null

Valor predeterminado: None

Asignación opcional de qubits lógicos a físicos.

  • Obligatorio: No
  • Valor predeterminado: None
  • Tipos de entrada válidos: objeto con claves y valores enteros no negativos, o None

Ejemplo: {"0": 85, "1": 89} asigna el qubit lógico 0 al qubit físico 85 y el qubit lógico 1 al qubit físico 89. Python Los usuarios pueden utilizar claves de tipo entero; las claves de los objetos JSON son cadenas de caracteres.

  • En "optimize" este modo, esto se pasa como valor inicial de la disposición y la asignación final puede variar durante la optimización o el enrutamiento.
  • En "prepare" este modo, Orbit materializa el circuito en estos índices de cables físicos y, a continuación, utiliza una preparación de tipo « level-0 » con layout_method="trivial". Los SWAP de enrutamiento explícito pueden seguir desplazando el estado cuántico durante la ejecución.
  • En "validate" el modo, se dan prioridad a los cables del circuito suministrados, por lo que physical_layout se ignora y se muestra una advertencia.
num_transpilation_steps

Tipo: int

Valor predeterminado: 300

Número de semillas de transpilación estocástica y de intentos de Orbit en transpilation_mode="optimize".

  • Obligatorio: No
  • Valor predeterminado: 300
  • Tipos de entrada válidos: número entero positivo
mem

Tipo: bool or None

Valor predeterminado: None

Si Orbit aplica la mitigación de errores de medición «solo con muestreador» mediante M3.

  • Obligatorio: No

  • Valor predeterminado: None

  • Tipos de entrada válidos: bool o None

  • Cuando Truese aplica la mitigación de errores de medición a las tomas de sampler.

  • Cuando False, no realiza el posprocesamiento de las tomas.

  • NoneEn el modo Orbit, se activa la función MEM para los PUB del Sampler ejecutados, mientras que en los modos «raw» y «custom» se omite la función MEM, salvo que se haya configurado lo contrario.

  • «Explicit» True requiere primitive="sampler", preview=False, y simulator=False.

  • Se conservan los recuentos del muestreador sin procesar y los recuentos ajustados se adjuntan a los metadatos de Orbit.

  • Si la mitigación falla durante el posprocesamiento, Orbit conserva el resultado sin procesar y registra el fallo de la mitigación en los metadatos.

pub_options

Tipo: list[dict] or None

Valor predeterminado: None

Modos de ejecución y anulaciones de «per- PUB ».

  • Obligatorio: No

  • Valor predeterminado: None

  • Tipos de entrada válidos: list[dict] o None

  • Se transmite una entrada a todos los PUB; en caso contrario, se envía una entrada por cada PUB.

  • {"mode": "raw"} utiliza una única pasada de transpilación y programación de Qiskit optimization_level=0 para circuitos estáticos o dinámicos, y omite la optimización de Orbit, Orbit DD, DD dinámico y MEM.

  • {"mode": "orbit"} utiliza los valores predeterminados de Orbit.

  • {"mode": "custom"} puede anular transpilation_mode, physical_layout, dd_qubits, dd_strategy, dynamic_dd_seq, y mem para ese « PUB ».

  • El modo «Raw» siempre utiliza transpilation_mode="prepare" con physical_layout=None, omite Orbit DD e ignora las opciones de preparación globales.

  • Orbit y los PUB personalizados heredan los valores globales transpilation_mode y physical_layout a menos que los sobrescriban según PUB.

  • Utiliza PUB duplicados con pub_options para comparar los datos sin procesar, los valores predeterminados de Orbit y una estrategia DD personalizada en un mismo trabajo de Quantum Compute. Para una línea de base CPMG sencilla, utilízala dentro {"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1} del archivo « PUB » personalizado dd_strategy.

En el caso de los circuitos preparados por el usuario, utiliza transpilation_mode="validate" para los PUB compatibles con Orbit:

options = {
    "pub_options": [
        {"mode": "raw"},
        {"mode": "orbit", "transpilation_mode": "validate"},
        {
            "mode": "custom",
            "transpilation_mode": "validate",
            "dd_qubits": None,
            "dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
            "mem": False,
        },
    ]
}
dd_strategy

Tipo: list[list[dict]]

Estrategias de DD ordenadas para aplicarlas a circuitos de tipo « PUB ».

  • Obligatorio: No

  • Valor predeterminado: [[{"dd_sequence": "auto", "pulse_density": 0.25, "dd_reps": 1}]]

  • Tipos de entrada válidos: list[list[dict]]

  • Opciones: Lista externa no vacía de listas de estrategias no vacías.

  • La lista externa indexa los PUB o circuitos. Si solo se proporciona una estrategia, Orbit la difunde a todos los PUB.

  • Cada lista interna se aplica ronda tras ronda al mismo circuito.

  • Cada ronda requiere dd_sequence; pulse_density el valor por defecto es 0.25; dd_reps el valor por defecto es 1.

dd_strategy campos redondos

Tipo: str or dict or list

  • Campo: dd_sequence Secuencia que se debe insertar para una ronda de DD.
  • Obligatorio: Sí
  • Tipos de entrada válidos: str, dict, o grupo de pulsos personalizado list
  • Opciones: "auto", un nombre de secuencia integrado, un diccionario de variantes como {"name": "ur", "variant": "8"}, o una lista personalizada de grupos de pulsos como [[0.0], ["Y"], ["Xb", 0.5]].
  • Nombres fijos incorporados, organizados por ranuras de pulso: las secuencias de dos ranuras son "CPMG", "pureY", y "superHahn"; las de cuatro ranuras son "XY4" y "superCPMG"; las de ocho ranuras son "XY8"; las de dieciséis ranuras son "superEuler"; y las de veinte ranuras son "KDD".
  • Familias integradas parametrizadas: "CDD-n" con un número entero n >= 1 ("CDD-1" es equivalente a "XY4" y la secuencia crece de forma recursiva); "UR-n" o "URn" con un número entero par n >= 4 (por ejemplo, "UR-8" o "URn8"); y "T-n" o "Tn" con un número entero par n >= 2 (por ejemplo, "T-8" o "Tn8").
  • Variantes integradas de RGA: "RGA-2x", "RGA-4", "RGA-4p", "RGA-8a" "RGA-8c", "RGA-16a",, "RGA-16b", "RGA-32a", "RGA-32c", "RGA-64a", "RGA-64c", y "RGA-256a".
  • Los nombres de secuencias integrados no distinguen entre mayúsculas y minúsculas e ignoran los separadores, como los guiones y los guiones bajos. Por ejemplo, "RGA-8a" y "rga8a" son equivalentes, al igual que "UR-n-8" y "UR8".
  • Las entradas numéricas personalizadas son fases expresadas en unidades de pi para rotaciones de pi en el plano xy. 0.0 es +X y 0.5 es +Y.
  • Los alias de cadenas personalizados incluyen "X", "Y", "Xb", y "Yb".

Tipo: float

  • Campo: pulse_density Fracción de cada intervalo de inactividad disponible para los pulsos DD de esta ronda.
  • Obligatorio: No
  • Valor predeterminado: 0.25
  • Tipos de entrada válidos: float o int
  • Opciones: Deslizarse desde 0.0 hasta 1.0
  • 0.0 deja huecos sin rellenar en esa ronda. 1.0 envía los pulsos con la mayor densidad que permite la sincronización de la secuencia.

Tipo: int

Valor predeterminado: 1

  • Campo: dd_reps Número de repeticiones de la secuencia DD de esta ronda dentro de cada intervalo de inactividad válido.
  • Obligatorio: No
  • Valor predeterminado: 1
  • Tipos de entrada válidos: int
  • Opciones: Número entero >= 1
dynamic_dd_seq

Tipo: str or dict or list or None

Valor predeterminado: XY8

Secuencia DD utilizada para la inserción DD de avance directo de circuito dinámico de Orbit.

  • Obligatorio: No

  • Valor predeterminado: "XY8"

  • Tipos de entrada válidos: str, dict, grupo list de pulsos personalizado o None

  • Opciones: Se utilizan las mismas formas de secuencia que dd_strategy[].dd_sequence, o None para desactivar la etapa de inserción dinámica por avance.

  • Se aplica cuando Orbit detecta lógica condicional o flujo de control y utiliza la canalización DD de circuito dinámico.

  • Primero se ejecuta la pasada normal dd_strategy y, a continuación, Orbit aplica esta secuencia a las regiones dinámicas de alimentación directa etiquetadas.

dd_qubits

Tipo: list[int] or None

Valor predeterminado: None

Lista global de índices de qubits admitidos para su inserción en Orbit DD.

  • Obligatorio: No

  • Valor predeterminado: None

  • Tipos de entrada válidos: list[int] o None

  • Opciones: None o una lista de números enteros >= 0

  • None solo se aplica a los qubits activos o tocados.

  • Una lista puede incluir qubits que solo están inactivos y excluye los qubits que no figuran en ella.

  • pub_options[i].dd_qubits Se puede anular este valor en orbit las entradas de o custom PUB.

  • Solo se pueden proporcionar listas de permitidos explícitas para los PUB compatibles con Orbit cuya dirección resuelta transpilation_mode sea "validate", de modo que el autor de la llamada sea el propietario de los índices de los qubits físicos. Los PUB sin procesar omiten Orbit DD y no aceptan dd_qubits.

save_backend_info

Tipo: bool

Valor predeterminado: False

Si Orbit guarda las propiedades de calibración del backend tras la ejecución de un trabajo de Quantum Compute.

  • Obligatorio: No

  • Valor predeterminado: False

  • Tipos de entrada válidos: bool

  • Opciones: True / False

  • service.job(job_id).properties()Cuando está activada, Orbit consulta las propiedades del backend, las guarda en formato serializado en la ruta /dataindicada e incluye la ruta de almacenamiento en los metadatos de Orbit.

  • Los errores se notifican como advertencias y no invalidan los resultados de las primitivas que, por lo demás, se han ejecutado correctamente.

default_shots

Tipo: int

Valor predeterminado: 4096

Imágenes predeterminadas que se utilizan para los PUB de Sampler en los que no se especifican imágenes de forma explícita.

  • Obligatorio: No

  • Valor predeterminado: 4096

  • Tipos de entrada válidos: int

  • Opciones: Número entero > 0

  • Se aplica únicamente a primitive="sampler".

default_precision

Tipo: float

Valor predeterminado: 0.015625

Precisión predeterminada utilizada para los PUB del estimador que no especifican la precisión de forma explícita.

  • Obligatorio: No

  • Valor predeterminado: 0.015625

  • Tipos de entrada válidos: float o int

  • Opciones: Float > 0

  • Se aplica únicamente a primitive="estimator".

runtime_options

Tipo: dict

IBM Quantum opciones primitivas que se transmiten a la primitiva subyacente SamplerV2 o EstimatorV2.

  • Obligatorio: No

  • Valor predeterminado: {"resilience_level": 0, "dynamical_decoupling": {"enable": false}}

  • Tipos de entrada válidos: dict

  • Se admiten diccionarios de opciones anidados, incluidas las opciones avanzadas y experimentales para la primitiva seleccionada.

  • El desacoplamiento dinámico en tiempo de ejecución está desactivado por defecto, por lo que la inserción de DD de Orbit es la única pasada de DD, a menos que el usuario decida activarla.

Por ejemplo, los usuarios avanzados de Sampler pueden activar los campos de depuración de circuitos dinámicos:

options = {
    "runtime_options": {
        "experimental": {
            "execution": {
                "scheduler_timing": True,
                "stretch_values": True,
            }
        }
    }
}
  • Advertencia: Por lo tanto, hay que modificar este valor con precaución, activando manualmente funciones específicas como el «twirling», sin dejar de excluir DD.

resilience_level

Tipo: int or None

Valor predeterminado: 0

Nivel de resiliencia en tiempo de ejecución del estimador.

  • Obligatorio: No

  • Valor predeterminado: 0

  • Tipos de entrada válidos: int o None

  • Opciones: 0 / 1 / 2 / None

  • Se aplica a primitive="estimator".

  • Utiliza None para dejar la opción «Runtime» sin configurar.

  • Si se configura en primitive="sampler", Orbit lo ignora y añade una advertencia a los metadatos de Orbit.

dynamical_decoupling

Tipo: dict

Opciones de desacoplamiento dinámico transmitidas a Quantum Compute.

  • Obligatorio: No
  • Valor predeterminado: {"enable": false}
  • Tipos de entrada válidos: dict

enable

Tipo: bool

Valor predeterminado: False

Si se debe habilitar qiskit-ibm-runtime DD además de la inserción de Orbit DD.

  • Obligatorio: No

  • Valor predeterminado: False

  • Tipos de entrada válidos: bool

  • Opciones: True / False

  • Cuando está activado, Orbit muestra una advertencia, ya que la aplicación conjunta de Runtime DD y Orbit DD puede provocar un comportamiento inesperado.

sequence_type

Tipo: str or None

Valor predeterminado: None

Tipo de secuencia DD opcional en tiempo de ejecución.

  • Obligatorio: No
  • Valor predeterminado: None
  • Tipos de entrada válidos: str o None

Se transfirió a Quantum Compute cuando se facilitó.

scheduling_method

Tipo: str or None

Valor predeterminado: None

Método opcional de programación de DD en tiempo de ejecución.

  • Obligatorio: No
  • Valor predeterminado: None
  • Tipos de entrada válidos: str o None

Se transfirió a Quantum Compute cuando se facilitó.

extra_slack_distribution

Tipo: str or None

Valor predeterminado: None

Distribución opcional de Runtime DD con margen adicional.

  • Obligatorio: No
  • Valor predeterminado: None
  • Tipos de entrada válidos: str o None

Se transfirió a Quantum Compute cuando se facilitó.

skip_reset_qubits

Tipo: bool or None

Valor predeterminado: None

Configuración opcional de Runtime DD que determina si se omiten los qubits de reinicio.

  • Obligatorio: No
  • Valor predeterminado: None
  • Tipos de entrada válidos: bool o None

Se transfirió a Quantum Compute cuando se facilitó.

max_execution_time

Tipo: int or None

Valor predeterminado: None

Límite flexible del tiempo máximo de ejecución del trabajo de computación cuántica.

  • Obligatorio: No
  • Valor predeterminado: None
  • Tipos de entrada válidos: int o None

El valor se especifica en segundos.

  • Opciones: None o un número entero > 0
  • Cuando None, se utiliza el valor predeterminado de Runtime.
simulator

Tipo: bool

Valor predeterminado: False

Si Orbit ejecuta la carga de trabajo en un simulador Aer local en lugar de en una QPU real.

  • Obligatorio: No
  • Valor predeterminado: False
  • Tipos de entrada válidos: bool

El simulador se ejecuta dentro del contenedor de funciones.

  • Opciones: True / False
  • Se ignora cuando preview es True.
  • Se devuelve un objeto «normal» PrimitiveResult con los metadatos de Orbit adjuntos.
simulator_noise

Tipo: str

Valor predeterminado: backend

Modelo de ruido utilizado cuando simulator es True.

  • Obligatorio: No

  • Valor predeterminado: "backend"

  • Tipos de entrada válidos: str

  • Opciones: "backend" / "ideal"

  • "backend" utiliza AerSimulator.from_backend(backend) , siempre que sea posible.

  • AerSimulator``"ideal" utiliza un archivo sin ruido.

gate_dur

Tipo: int or None

Valor predeterminado: None

Duración de una puerta o pulso DD.

  • Obligatorio: No

  • Valor predeterminado: None

  • Tipos de entrada válidos: int o None

  • Advertencia: Utiliza un valor explícito únicamente en pruebas controladas o cuando exista una razón específica y justificada relacionada con el backend.

  • El valor utiliza las mismas unidades que el backend emplea para los retrasos, normalmente dt.

  • Opciones: None o un número entero > 0

  • Cuando None Orbit resuelve un valor que tiene en cuenta el backend a partir de backend.target utilizando la duración más larga calibrada de la puerta X o de la puerta sqrt(X).


Resultados

La función devuelve un Qiskit PrimitiveResult que contiene un PubResult PUB por cada entrada. Orbit conserva los datos de resultados normales de la primitiva seleccionada y añade metadatos de Orbit en quantum_elements_orbit.

Tipo: PrimitiveResult

Estándar, PrimitiveResult con metadatos de Orbit adjuntos.

  • Cada uno de primitive="sampler" ellos PubResult.data contiene datos de resultados del muestreador, como matrices de bits de registro clásico.
  • Cada PubResult.data uno primitive="estimator" de ellos contiene datos de los resultados de los estimadores, como los valores esperados y los errores estándar.
  • En el modo de vista previa, cada uno PubResult.data está vacío porque no se ha enviado ninguna primitiva « IBM Quantum ».

Metadatos de primer nivel

metadata["quantum_elements_orbit"]

Tipo: dict[str, Any]

Informe de Orbit agregado para la llamada de función completa.

functionVersion

Tipo: str

Versión principal de Orbit que generó el resultado.

preview

Tipo: bool

Si el resultado se generó en modo de vista previa.

simulator

Tipo: bool

Si se solicitó el modo simulador.

simulatorNoise

Tipo: str

Modo de ruido del simulador: "backend" o "ideal".

primitive

Tipo: str

Primitiva seleccionada: "sampler" o "estimator".

ddStrategy

Tipo: list[list[dict]]

Estrategia DD normalizada utilizada en la simulación.

pubOptions

Tipo: list[dict[str, Any]]

Se han resuelto los modos de ejecución y las sustituciones por « PUB ». ddStrategy``transpilationModeCada entrada incluye el índice « PUB », el modo, «resolved», physicalLayout mem, orbitEnabled, ddQubits, dynamicDdSeq,, y, cuando proceda, el valor «resolved» por « PUB ».

dynamicDdSeq

Tipo: str or dict or list or None

Secuencia DD de alimentación directa con circuito dinámico utilizada para la ejecución.

ddQubits

Tipo: list[int] or None

Lista de qubits DD permitidos a nivel global utilizada por defecto en la ejecución. Los informes de «Per- PUB » incluyen la lista de direcciones autorizadas ya resuelta para cada « PUB ».

runtimeOptions

Tipo: dict[str, Any]

Opciones de tiempo de ejecución que Orbit intentó aplicar, entre ellas resilienceLevel y dynamicalDecoupling.

transpilationMode

Tipo: string

Se ha solicitado el modo de preparación de circuitos global para los PUB compatibles con Orbit.

physicalLayout

Tipo: dict or None

Se solicita una correspondencia global entre el diseño lógico y el físico para los PUB compatibles con Orbit.

numTranspilationSteps

Tipo: int

Número de semillas de transpilación estocástica configuradas para una transpilación optimizada.

backendInfo

Tipo: dict[str, Any]

Estado de la exportación de la calibración del backend. Incluye enabled, saved, y, cuando estén disponibles, el nombre del backend, el ID del trabajo, la ruta de guardado y las advertencias.

warnings

Tipo: list[str]

Advertencias relacionadas con el nivel de ejecución, como que la vista previa anule el modo simulador, que DD en tiempo de ejecución esté habilitado junto con Orbit DD, o que Sampler ignore resilience_level.

pubs

Tipo: list[dict[str, Any]]

Un informe de inserción en órbita por cada PUB de entrada.

metadata["resource_usage"]

Tipo: dict[str, dict[str, float]]

Uso de recursos por fase, con entradas correspondientes a la optimización del hardware, la espera de la QPU, la ejecución en la QPU y el posprocesamiento.

  • Las fases son RUNNING: OPTIMIZING_FOR_HARDWARE, RUNNING: WAITING_FOR_QPU, RUNNING: EXECUTING_QPU, y RUNNING: POST_PROCESSING.
  • RUNNING: EXECUTING_QPU incluye QPU_TIME.

Metadatos de la órbita de Per- PUB

Cada uno PubResult.metadata["quantum_elements_orbit"] contiene el informe de inserción correspondiente a ese « PUB ».

pubIndex

Tipo: int

Índice de la « PUB » en la carga de trabajo enviada.

mode

Tipo: str

Modo de ejecución resuelto por PUB : "raw", "orbit", o "custom".

orbitEnabled

Tipo: bool

Si se había activado la inserción de Orbit DD para el PUB.

transpilationMode

Tipo: string

Se ha resuelto el modo de preparación del circuito para este PUB.

physicalLayout

Tipo: dict or None

Se ha resuelto la correspondencia entre el diseño lógico y el físico para este PUB. En validate este modo, este valor se ignora y se muestra una advertencia.

mem

Tipo: bool or None

Se ha resuelto el problema relacionado con la configuración para mitigar los errores de medición en este PUB.

dynamicDdSeq

Tipo: str or dict or list or None

Secuencia DD de alimentación directa con circuito dinámico resuelta para este PUB.

ddQubits

Tipo: list[int] or None

Se ha definido la lista de qubits DD permitidos para este PUB.

status

Tipo: str

Estado de la inserción de DD para este « PUB », es decir, si se ha aplicado el DD o se ha omitido.

numRounds

Tipo: int

Número de rondas de la estrategia DD aplicadas a la « PUB ».

warnings

Tipo: list[str]

PUB - Advertencias relacionadas con la inserción de DD y la gestión de la compatibilidad.

insertionSummary

Tipo: dict[str, Any]

Resumen general de la inserción de DD para este PUB. Incluye el estado, el recuento de huecos iniciales y rellenados, el número de secuencias DD añadidas, el recuento de puertas añadidas, la duración de las puertas, la profundidad y el tamaño del circuito antes y después de la inserción, así como las advertencias de inserción.

perRoundSummaries

Tipo: list[dict[str, Any]]

Resúmenes de la inserción de DD por ronda. Cada entrada incluye el índice de la ronda, la secuencia, la densidad de pulsos, las repeticiones, el número de intervalos, el número de puertas añadidas, la duración de las puertas, la profundidad y el tamaño del circuito antes y después de esa ronda, así como las advertencias.

measurementErrorMitigation

Tipo: dict[str, Any]

Aparece cuando la función MEM está activada para al menos un « PUB ». Indica si la medida de mitigación « M3 » se ha aplicado, se ha aplicado parcialmente, se ha omitido o ha fallado. Las entradas «Per- PUB » conservan los recuentos sin mitigar e incluyen los recuentos mitigados cuando la mitigación se lleva a cabo con éxito.

Profundidad del circuito tras el DD

DD inserta pulsos reales y subretardos en las ventanas de inactividad programadas, por lo que la profundidad y el tamaño del circuito indicados suelen aumentar. La inserción mantiene la duración prevista de la ventana de inactividad; no intenta mantener la profundidad de la puerta.

Vista previa del resultado

Cuando es options.preview True, Orbit devuelve un objeto que contiene únicamente metadatos PrimitiveResult. No se ha enviado ningún trabajo de computación cuántica, no se han rellenado los recuentos del muestreador ni los valores del estimador, y el tiempo de la QPU se indica como 0.0. Utiliza el modo de vista previa para revisar los informes de inserción de DD antes de ejecutarlos en el hardware.

Resultados del simulador

Cuando options.simulator es True y options.preview es False, Orbit ejecuta la carga de trabajo posterior a DD con un simulador Aer local dentro del contenedor de funciones. PrimitiveResultEl resultado sigue siendo un Orbit normal; los registros simulator=True de Orbit y el modo seleccionado simulatorNoise en los metadatos de nivel superior.

Resultado de la mitigación de errores de medición

Cuando se habilita el MEM resuelto para al menos un « PUB », Orbit adjunta measurementErrorMitigation los metadatos. Cuando MEM tiene éxito, el método del get_counts() registro Sampler devuelve el histograma corregido por MEM. Las cifras de tiempo de ejecución sin ajustar siguen estando disponibles como measurementErrorMitigation["rawCounts"].

Entre las entradas de mitigación exitosas relacionadas con « PUB » se incluyen:

  • enabled
  • method
  • status
  • register
  • rawCounts
  • quasiDistribution
  • mitigatedCounts
  • measurementMapping
  • mappingSource
  • rawCountsPreserved

En el caso de los circuitos dinámicos, Orbit aplica MEM a la cadena de bits de salida devuelta como posprocesamiento del histograma. Orbit no determina si cada bit procede de una medición en el terminal o de una medición en el medio del circuito, y no modifica, ni de forma retroactiva ni en tiempo real, las ramificaciones condicionales que utilizaron resultados de medición sin mitigar. Este tratamiento es adecuado para cadenas de bits destinadas a servir como salidas de circuitos, pero los usuarios no deben interpretarlo como una corrección del flujo de control dinámico que generó dichas salidas.

Si la mitigación falla, Orbit conserva el resultado sin procesar y registra el estado de fallo y el mensaje de error en los metadatos.


Manejo de errores

Orbit genera errores estructurados qiskit_serverless.ServerlessError en caso de fallos graves. codeCada error incluye una carga útil, message, y details . Orbit asigna los errores a las categorías de códigos de error existentes de IBM Quantum siempre que sea posible; los errores de validación utilizan el código 1221. Los errores específicos de órbita utilizan el rango 4700 de códigos reservado para QE hasta 4709 cuando no hay ningún código de « IBM Quantum » existente que se ajuste mejor. Consulte la referencia de códigos de error IBM Quantum para obtener orientación general sobre los códigos de error.

Errores graves habituales

Comprueba primero los campos details «error» message y «». Identifican el campo no válido, el backend, el índice de PUB o el fallo de Quantum Compute en la fase previa, siempre que Orbit pueda determinarlo.

  • Los errores de validación de datos de entrada utilizan el código 1221. dd_strategy``pubsEntre ellos se incluyen tipos de opción no válidos, claves de opción desconocidas, valores vacíos, no válidos, longitud no pub_options válida, dd_qubits con resolución transpilation_mode distinta de "validate", circuitos preparados por el llamante que no son compatibles con el destino de backend seleccionado, valores no physical_layout válidos y solicitudes MEM incompatibles, como mem=True con primitive="estimator", preview=True, o simulator=True.
  • Los errores de primitivas no admitidas utilizan el código 1211. Orbit solo primitive="sampler" acepta y primitive="estimator".
  • Los errores relacionados con la selección del backend o con la capacidad del backend utilizan el código 1007 o 1009. Entre ellos se incluyen nombres de backends no disponibles, la ausencia de un backend con menor carga que cumpla los requisitos o un backend que carezca de la información temporal necesaria para la inserción de DD.
  • Los errores de inserción de DD y de ida y vuelta de QASM utilizan el código 1003. Esto puede ocurrir cuando un circuito no se puede transpilar, programar, convertir o rellenar de forma coherente para el backend y la estrategia DD seleccionados.
  • Los errores en el envío de tareas de computación cuántica se identifican con el código 1245; las tareas que fallan antes de generar un resultado se identifican con el código 5203. Orbit conserva el código de error de Quantum Compute procedente de una etapa anterior cuando se detecta uno, junto con el código de reserva de Orbit en details.
  • Los fallos inesperados específicos de la órbita se notifican como errores estructurados en el rango reservado de QE (4700--4709) cuando no se aplica ningún código de error existente de « IBM Quantum ».

Las condiciones no fatales se notifican como advertencias, en lugar de provocar el fallo de la tarea, cuando Orbit puede conservar el resultado de forma segura. Las advertencias de nivel de ejecución aparecen en metadata["quantum_elements_orbit"]["warnings"]; PUB -level las advertencias aparecen en cada informe de PUB. Los eventos de advertencia recuperables utilizan el código 1300 cuando el entorno Qiskit Functions acepta eventos de advertencia. Algunos ejemplos son: que tenga preview=True prioridad sobre simulator=True, que DD qiskit-ibm-runtime esté activado junto con Orbit DD, que Sampler ignore runtime_options.resilience_level, o que falle la exportación de la calibración del backend aunque el resultado primitivo esté disponible.

Los fallos en la mitigación de errores de medición tampoco son graves. Si no es posible aplicar una mitigación de « M3 », Orbit conserva el resultado sin procesar del Sampler y lo registra measurementErrorMitigation.status="failed" junto con un mensaje de error en los metadatos de Orbit.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.