Skip to main content
IBM Quantum Platform

IBMBackend

class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None)

GitHub

Bases: BackendV2

Clase de backend que interactúa con un backend de IBM Quantum.

Nota
  • No debe instanciar directamente la clase IBMBackend . En su lugar, utilice los métodos proporcionados por una instancia QiskitRuntimeService para recuperar y manejar backends.

Esta clase representa un backend de IBM Quantum. Sus atributos y métodos proporcionan información sobre el backend. Por ejemplo, el método status() devuelve una instancia de BackendStatus . La instancia contiene los atributos operational y pending_jobs , que indican si el backend está operativo y también el número de trabajos en la cola del servidor para el backend, respectivamente:

status = backend.status()
is_operational = status.operational
jobs_in_queue = status.pending_jobs

Esta es la lista de atributos disponibles en la clase IBMBackend :

  • nombre: backend nombre.

  • backend_version: versión del backend en la forma X.Y.Z.

  • num_qubits: número de qubits.

  • objetivo: A qiskit.transpiler.Target objeto para el backend.

  • basis\gates: lista de nombres de puertas base en el backend.

  • puertas: lista de puertas de base en el backend.

  • local: el backend es local o remoto.

  • simulador: el backend es un simulador.

  • condicional: el backend admite operaciones condicionales.

  • open_pulse: el backend admite pulso abierto.

  • memoria: el backend admite memoria.

  • coupling_map (lista): El mapa de acoplamiento del dispositivo

  • supported_instructions ( [Liststr] ): Instrucciones soportadas por el backend.

  • dynamic_reprate_enabled (bool): si el retardo entre primitivas puede establecerse dinámicamente (es decir, a través de rep_delay). El valor predeterminado es False.

  • rep_delay_range ( [Listfloat] ): 2d lista que define el rango soportado de retardos de repetición para el backend en μs. La primera entrada corresponde al extremo inferior del intervalo, la segunda al extremo superior. Opcional, pero se especificará en dynamic_reprate_enabled=True.

  • default_rep_delay (float): Valor de rep_delay si no lo especifica el usuario y dynamic_reprate_enabled=True.

  • n_canales_u: Número de canales en U.

  • u_canal_lo: Relación U-canal en el dispositivo los.

  • meas_levels: Niveles de medición admitidos.

  • qubit_lo_rango: Rangos Qubit lo para cada qubit con forma (min, max) en GHz.

  • meas_lo_range: Rangos lo de medida para cada qubit con forma (min, max) en GHz.

  • dt: Paso de tiempo del canal de accionamiento Qubit en nanosegundos.

  • dtm: Paso de tiempo del canal de accionamiento de medida en nanosegundos.

  • tiempos_repetición: Tiempos de repetición soportados (tiempo de ejecución del programa) para el backend en μs.

  • meas_kernels: Núcleos de medida soportados.

  • discriminadores: Discriminadores admitidos.

  • hamiltoniano: Un diccionario opcional con campos que caracterizan el hamiltoniano del sistema.

  • channel_bandwidth (lista): Ancho de banda de todos los canales (qubit, medición y U)

  • adquisición_latencia (lista): Matriz de dimensión n_qubits x n_registros. Latencia (en unidades de dt) para escribir un resultado de medición del qubit n en la ranura de registro m.

  • conditional_latency (lista): Matriz de dimensión n_canales [d->u->m] x n_registros. Latencia (en unidades de dt) para realizar una operación condicional en el canal n desde la ranura de registro m

  • meas_map (lista): Agrupación de mediciones que se multiplexan

  • nombre_de_muestra (str): Nombre de muestra para el backend

  • n_registers (int): Número de ranuras de registro disponibles para la retroalimentación (si condicional es True)

  • register_map (lista): Una matriz de dimensión n_qubits X n_registros que especifica si un qubit puede almacenar una medida en una determinada ranura de registro.

  • configurable (bool): True si el backend es configurable, si el backend es un simulador

  • credits_required (bool): True si el backend requiere créditos para ejecutar un trabajo.

  • online_date (datetime): La fecha en la que el dispositivo se conectó

  • display_name (str): Campo de nombre alternativo para el backend

  • descripción (str): Una descripción para el backend

  • tags (lista): Una lista de etiquetas de cadena para describir el backend

  • versión: versión de la clase Backend (Ej: 1, 2)

  • canales: Un diccionario opcional que contiene información de cada canal - su propósito, tipo y qubits operados.

  • parametric\pulses (lista): Una lista de formas de pulso que son compatibles con el backend. Por ejemplo: ['gaussian', 'constant']

  • tipo_procesador (dict): Tipo de procesador para este backend. Un diccionario de la forma {"family": <str>, "revision": <str>, segment: <str>} como {"family": "Canary", "revision": "1.0", segment: "A"}.

    • familia: Familia de procesadores de este backend.
    • revisión: Versión de revisión de este procesador.
    • segmento: Segmento al que pertenece este procesador dentro de un chip mayor.

Parámetros

  • configuration (QasmBackendConfiguration) – Configuración del backend.
  • service (QiskitRuntimeService) – Instancia de QiskitRuntimeService.
  • api_client (RuntimeClient) – IBM cliente utilizado para comunicarse con el servidor.
  • instance (str | None) – La instancia del servicio que se va a utilizar.
  • calibration_id (str | None) – Un identificador de calibración opcional para este backend

Inicializar un backend basado en « BackendV2 »

Parámetros

  • proveedor : una referencia opcional al objeto proveedor del que procede el backend
  • nombre : un nombre opcional para el backend
  • descripción : una descripción opcional del backend
  • online_date – Fecha y hora opcionales en las que el servidor se puso en línea
  • backend_version : una cadena opcional que indica la versión del backend. Esto difiere del version atributo, ya que version se refiere a la versión de la interfaz abstracta Backend del objeto, mientras que backend_version sirve para gestionar las versiones del propio backend.
  • campos : argumentos clave-valor que se utilizarán para anular las opciones predeterminadas.
  • configuration (QasmBackendConfiguration)
  • service (QiskitRuntimeService)
  • api_client (RuntimeClient)
  • instance (str | None)
  • calibration_id (str | None)

Eleva

AttributeError – Si se especifica un campo que no figura entre las opciones del backend


Atributos

calibration_id

El id de calibración utilizado para este backend.

coupling_map

Devuelve el CouplingMap objeto

dt

Devuelve la resolución temporal del sistema de las señales de entrada

Es necesario implementarlo si el backend admite la programación Pulse.

Devuelve

El paso de tiempo de la señal de entrada en segundos. Si el backend no define dt, se devolverá None .

dtm

Devuelve la resolución temporal del sistema de las señales de salida.

Devuelve

El paso de tiempo de la señal de salida en segundos.

id_warning_issued

Valor predeterminado: False

instruction_durations

Devuelve el InstructionDurations objeto.

instructions

Una lista de tuplas de instrucciones en el backend del formulario (instruction, (qubits))

max_circuits

Devuelve el número máximo de circuitos que se pueden ejecutar en un solo trabajo.

Esta propiedad solía devolver el valor max_experiments de la configuración del backend, pero este valor ya no es una representación exacta de los límites de los circuitos del backend. Se añadirán nuevos campos para indicar nuevos límites.

meas_map

Devuelve el grupo de mediciones multiplexadas.

Es necesario implementarlo si el backend admite la programación Pulse.

Devuelve

La agrupación de mediciones multiplexadas

num_qubits

Devuelve el número de qubits que tiene el backend.

operation_names

Una lista de nombres de instrucciones que admite el backend.

operations

Una lista de Instruction instancias que soporta el backend.

options

Devuelve las opciones para el backend

Las opciones de un backend son los parámetros dinámicos que definen cómo se utiliza el backend. Se utilizan para controlar el run() método.

provider

Devuelve el proveedor de backend.

Devuelve

el proveedor responsable del backend.

Tipo de retorno

proveedor

service

Devuelve el service objeto.

Devuelve

Una instancia de QiskitRuntimeService

target

A qiskit.transpiler.Target objeto para el backend.

Devuelve

Destino

version

Valor predeterminado: 2

name

Nombre del backend.

description

Descripción opcional legible por humanos.

online_date

Fecha de puesta en línea del backend.

backend_version

Versión del backend que se proporciona. No es lo mismo que BackendV2.version, que es la versión de la interfaz abstracta Backend .


Métodos

__call__

__call__()

GitHub

Devuelve la instancia del backend cuando se invoca como función.

Tipo de retorno

IBMBackend

check_faulty

check_faulty(circuit)

GitHub

Comprueba si el circuito de entrada utiliza qubits o bordes defectuosos.

Parámetros

circuit (QuantumCircuit) – Circuito que hay que comprobar.

Eleva

ValueError - Si se encuentra una instrucción que opera sobre un qubit o borde defectuoso.

Tipo de retorno

Ninguna

configuration

configuration()

GitHub

Devuelve la configuración del backend.

La configuración del backend contiene información fija sobre el backend, como su nombre, número de qubits, puertas base, mapa de acoplamiento, volumen cuántico, etc.

La información sobre la configuración del backend se puede encontrar en la API REST Obtener configuración del backend.

Puede encontrar más detalles sobre las propiedades de configuración del backend aquí QasmBackendConfiguration.

IBM también pueden incluir las siguientes propiedades:

  • supported_features: una lista de cadenas que representan las funciones compatibles, como « “qasm3” » para

    compatibilidad con circuitos dinámicos.

  • parallel_compilation: un booleano de si el backend puede o no procesar múltiples

    trabajos a la vez. Se paralelizarán partes del cálculo clásico.

Devuelve

La configuración para el backend.

Tipo de retorno

QasmBackendConfiguration

get_translation_stage_plugin

get_translation_stage_plugin()

GitHub

Devuelve el nombre predeterminado del plugin de la etapa de traducción para los backends de IBM.

Tipo de retorno

str

properties

properties(refresh=False, datetime=None)

GitHub

Devuelve las propiedades del backend, sujetas a un filtrado opcional.

Estos datos describen las propiedades de los qubits (como T1 y T2 ), las propiedades de las puertas (como la longitud de la puerta y el error) y otras propiedades generales del backend.

La información sobre las propiedades del backend se puede encontrar en la API REST Obtener configuración del backend.

Parámetros

  • refresh (bool) – Si True, vuelva a solicitar al servidor las propiedades del backend. En caso contrario, devuelve una versión en caché.
  • datetime (python_datetime | None) – Al especificar una fecha y hora, esta función devuelve una instancia de cuya BackendProperties marca de tiempo sea la más cercana a la fecha y hora especificadas, pero anterior a esta.

Devuelve

Las propiedades del backend o None si las propiedades del backend no están disponibles actualmente.

Eleva

  • TypeError - Si un argumento de entrada no es del tipo correcto.
  • NotImplementedError - Si se especifica datetime cuando se utiliza cloud runtime.

Tipo de retorno

BackendProperties | Ninguno

qubit_properties

qubit_properties(qubit)

Devuelve QubitProperties para un qubit dado.

Si no hay definidos o el backend no admite la consulta de estos detalles, no es necesario implementar este método.

Parámetros

qubit (int | list[int]) – El qubit para el que se busca el QubitProperties objeto. Puede ser un único número entero que represente 1 qubit, o bien una lista de qubits; en ese caso, se devolverá una lista de QubitProperties objetos en el mismo orden

Devuelve

El objeto QubitProperties para el qubit especificado. Si se proporciona una lista de qubits, se devolverá una lista. Si faltan propiedades para un qubit, esto puede ser None.

Eleva

NotImplementedError - si el backend no permite consultar las propiedades de los qubits

Tipo de retorno

QubitProperties | lista[ QubitProperties ]

refresh

refresh()

GitHub

Recupera la configuración más reciente del backend y actualiza el objetivo actual del backend.

Tipo de retorno

Ninguna

run

run(*args, **kwargs)

GitHub

Ejecuta una tarea en el backend.

Eleva

IBMBackendError - El método run() ya no está soportado.

Tipo de retorno

Ninguna

set_options

set_options(**fields)

Establecer los campos de opciones para el backend

Este método se utiliza para actualizar las opciones de un backend. Si necesita cambiar alguna de las opciones antes de ejecutar sólo tiene que pasar el kwarg con el nuevo valor de las opciones.

Parámetros

fields - Los campos para actualizar las opciones

Eleva

AttributeError - Si el campo introducido no forma parte de las opciones

status

status()

GitHub

Devuelve el estado del backend.

Nota

Si la instancia BackendStatus devuelta tiene operational=True pero no status_msg="internal", entonces el backend está aceptando trabajos pero no los está procesando.

Devuelve

El estado del backend.

Eleva

IBMBackendApiProtocolError - Si el estado del backend no puede formatearse correctamente.

Tipo de retorno

BackendStatus

target_history

target_history(datetime=None)

GitHub

A qiskit.transpiler.Target objeto para el backend.

Devuelve

Objetivo con propiedades encontradas en datetime

Parámetros

datetime (python_datetime | None)

Tipo de retorno

Destino

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