BackendV2
class qiskit.providers.BackendV2(provider=None, name=None, description=None, online_date=None, backend_version=None, **fields)
Clase abstracta para backends
Esta clase abstracta se utilizará para todos los objetos Backend creados por un proveedor. Esta versión difiere de las anteriores clases abstractas Backend en que el atributo de configuración ya no existe. En su lugar, se añaden atributos que exponen propiedades inmutables equivalentes requeridas del dispositivo backend. Por ejemplo, ahora se puede acceder a backend.configuration().n_qubits desde backend.num_qubits .
El atributo options del backend se utiliza para contener las opciones dinámicas configurables por el usuario del backend. Debería utilizarse más para las opciones de ejecución que configuran cómo se utiliza el backend. Por ejemplo, algo como un campo shots para un backend que ejecuta experimentos que contendría un int para el número de disparos a ejecutar.
Un objeto de backend puede contener, opcionalmente, métodos denominados get_translation_stage_plugin y get_scheduling_stage_plugin. Si estos métodos están presentes en un objeto de backend y dicho objeto se utiliza para transpile() o, generate_preset_pass_manager() el proceso de transpilación utilizará por defecto el resultado de dichos métodos como etapa de programación y como etapa de compilación de traducción. Esto permite que un backend con requisitos de compilación específicos pueda especificar un complemento de etapa para dichas etapas, con el fin de permitir una transformación personalizada del circuito y garantizar así que se pueda ejecutar en el backend. Estos ganchos están habilitados de forma predeterminada y solo deben utilizarse para activar pasos de compilación adicionales si son necesarios para garantizar que un circuito sea ejecutable en el backend o alcance el nivel de rendimiento esperado. A estos métodos no se les pasan argumentos de entrada y se espera que devuelvan un valor str que represente el nombre del método, el cual debe ser un complemento de etapa (véase: qiskit.transpiler.preset_passmanagers.plugin para obtener más detalles sobre los complementos). El caso de uso típico previsto es que un proveedor de backend implemente un complemento de etapa para translation o scheduling que contenga las etapas de compilación personalizadas y, a continuación, que los métodos de gancho del objeto de backend devuelvan el nombre del complemento, de modo que lo transpile() utilice de forma predeterminada al seleccionar dicho backend como destino.
Las subclases de este método deben anular el método público run() y el método interno _default_options():
_default_options
abstractmethod classmethod _default_options()
Devolver las opciones por defecto
Este método devolverá un objeto qiskit.providers.Options objeto subclase que se utilizará para las opciones por defecto. Estos deberían ser los parámetros por defecto a utilizar para las opciones del backend.
Devuelve
Un objeto options con
valores por defecto establecidos
Tipo de retorno
Inicializar un backend basado en BackendV2
Parámetros
- provider - Una referencia hacia atrás opcional al objeto proveedor del que procede el backend
- name (str | None) – Un nombre opcional para el backend
- description (str | None) – Una descripción opcional del backend
- online_date (datetime | None) – Una fecha y hora opcionales en las que se puso en marcha el servidor
- backend_version (str | None) – Una cadena de versión del backend opcional. Esto difiere del
versionatributo, ya queversionse refiere a la versión de la interfaz abstractaBackenddel objeto, mientras quebackend_versionsirve para gestionar las versiones del propio backend. - fields - kwargs para los valores a utilizar para anular las opciones por defecto.
Eleva
AttributeError - Si se especifica un campo que está fuera de las opciones del backend
Atributos
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.
Eleva
NotImplementedError - si el backend no permite consultar el paso de tiempo de la señal de salida
instruction_durations
Devuelve el InstructionDurations objeto.
instructions
Una lista de tuplas de instrucciones en el backend del formulario (instruction, (qubits))
max_circuits
El número máximo de circuitos que se pueden ejecutar en un solo trabajo.
Si no hay límite, devolverá Ninguno
meas_map
Devuelve la agrupación de medidas que están multiplexadas
Es necesario implementarlo si el backend admite la programación Pulse.
Devuelve
La agrupación de mediciones multiplexadas
Eleva
NotImplementedError - si el backend no admite la consulta de la asignación de mediciones
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
target
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.versionque es la versión de la interfaz Backend interfaz abstracta.
Métodos
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 objeto 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
run
abstractmethod run(run_input, **options)
Ejecutar en el backend.
Este método devuelve un Job objeto que ejecuta circuitos. Dependiendo del backend esto puede ser una llamada async o sync. Queda a discreción del proveedor decidir si la ejecución debe bloquearse hasta que finalice o no: la clase Job puede manejar cualquiera de las dos situaciones.
Parámetros
- run_input (QuantumCircuit orlist) – Un individuo o una lista de
QuantumCircuitobjetos para ejecutar en el backend. - options - Cualquier opción kwarg a pasar al backend para ejecutar la configuración. Si una clave también está presente en el atributo/objeto de opciones, se espera que se utilice el valor especificado en lugar del establecido en el objeto de opciones.
Devuelve
El objeto de trabajo para la ejecución
Tipo de retorno
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