Referencia de la API de Quantum Elements Orbit
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.
Guía de órbitas de Quantum Elements
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 ).
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
SamplerPUB o iterable de objetos similares aEstimatorPUB
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:
stroNone -
Cuando se omite o
None, Orbit determina un backend operativo válido que no sea un simulador medianteleast_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:
dictoNone
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 omiteoptionspara 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 ypubsproporciona 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
previewcomosimulatorsonTrue, 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
TruePUB incluyedebugCircuit.circuit,debugCircuit.usedQubits, y el recuento de operaciones. También incluye el enfoque de «mejor esfuerzo»debugCircuit.qasmcuando 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 Qiskitoptimization_level=2y 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 Qiskitoptimization_level=0y de la programación de ALAP. Siphysical_layoutse 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 ignoraphysical_layoutmostrando 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 » conlayout_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 quephysical_layoutse 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:
booloNone -
Cuando
Truese aplica la mitigación de errores de medición a las tomas desampler. -
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»
Truerequiereprimitive="sampler",preview=False, ysimulator=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]oNone -
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 Qiskitoptimization_level=0para 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 anulartranspilation_mode,physical_layout,dd_qubits,dd_strategy,dynamic_dd_seq, ymempara ese « PUB ». -
El modo «Raw» siempre utiliza
transpilation_mode="prepare"conphysical_layout=None, omite Orbit DD e ignora las opciones de preparación globales. -
Orbit y los PUB personalizados heredan los valores globales
transpilation_modeyphysical_layouta menos que los sobrescriban según PUB. -
Utiliza PUB duplicados con
pub_optionspara 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 » personalizadodd_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_densityel valor por defecto es0.25;dd_repsel valor por defecto es1.
dd_strategy campos redondos
Tipo: str or dict or list
- Campo:
dd_sequenceSecuencia que se debe insertar para una ronda de DD. - Obligatorio: Sí
- Tipos de entrada válidos:
str,dict, o grupo de pulsos personalizadolist - 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 enteron >= 1("CDD-1"es equivalente a"XY4"y la secuencia crece de forma recursiva);"UR-n"o"URn"con un número entero parn >= 4(por ejemplo,"UR-8"o"URn8"); y"T-n"o"Tn"con un número entero parn >= 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.0es +X y0.5es +Y. - Los alias de cadenas personalizados incluyen
"X","Y","Xb", y"Yb".
Tipo: float
- Campo:
pulse_densityFracció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:
floatoint - Opciones: Deslizarse desde
0.0hasta1.0 0.0deja huecos sin rellenar en esa ronda.1.0envía los pulsos con la mayor densidad que permite la sincronización de la secuencia.
Tipo: int
Valor predeterminado: 1
- Campo:
dd_repsNú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, grupolistde pulsos personalizado oNone -
Opciones: Se utilizan las mismas formas de secuencia que
dd_strategy[].dd_sequence, oNonepara 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_strategyy, 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]oNone -
Opciones:
Noneo una lista de números enteros >= 0 -
Nonesolo 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_qubitsSe puede anular este valor enorbitlas entradas de ocustomPUB. -
Solo se pueden proporcionar listas de permitidos explícitas para los PUB compatibles con Orbit cuya dirección resuelta
transpilation_modesea"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 aceptandd_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:
floatoint -
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:
intoNone -
Opciones:
0/1/2/None -
Se aplica a
primitive="estimator". -
Utiliza
Nonepara 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:
stroNone
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:
stroNone
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:
stroNone
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:
booloNone
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:
intoNone
El valor se especifica en segundos.
- Opciones:
Noneo 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
previewesTrue. - Se devuelve un objeto «normal»
PrimitiveResultcon 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"utilizaAerSimulator.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:
intoNone -
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:
Noneo un número entero > 0 -
Cuando
NoneOrbit resuelve un valor que tiene en cuenta el backend a partir debackend.targetutilizando 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"ellosPubResult.datacontiene datos de resultados del muestreador, como matrices de bits de registro clásico. - Cada
PubResult.dataunoprimitive="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.dataestá 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, yRUNNING: POST_PROCESSING. RUNNING: EXECUTING_QPUincluyeQPU_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.
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:
enabledmethodstatusregisterrawCountsquasiDistributionmitigatedCountsmeasurementMappingmappingSourcerawCountsPreserved
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.
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 nopub_optionsválida,dd_qubitscon resolucióntranspilation_modedistinta de"validate", circuitos preparados por el llamante que no son compatibles con el destino de backend seleccionado, valores nophysical_layoutválidos y solicitudes MEM incompatibles, comomem=Trueconprimitive="estimator",preview=True, osimulator=True. - Los errores de primitivas no admitidas utilizan el código
1211. Orbit soloprimitive="sampler"acepta yprimitive="estimator". - Los errores relacionados con la selección del backend o con la capacidad del backend utilizan el código
1007o1009. 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ódigo5203. 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 endetails. - 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.