Saltar al contenido principal

Especificar opciones de Executor

Versiones de paquetes

El código de esta página fue desarrollado con los siguientes requisitos. Recomendamos usar estas versiones o más recientes.

qiskit-ibm-runtime~=0.46.1

Puedes usar opciones para personalizar el primitivo Executor.

Notas
  • Puedes ver las opciones disponibles y actualizar los valores de las opciones durante o después de la inicialización del primitivo.
  • Usa el método update() para aplicar cambios al atributo options.
  • El atributo options es del tipo Python dataclass. Puedes usar el método integrado asdict para convertirlo a un diccionario.

Establecer opciones de Executor

Si una opción se especifica tanto durante como después de la inicialización del primitivo, se utiliza el valor establecido después de inicializar el primitivo.

Inicialización del primitivo

Puedes pasar una instancia de la clase de opciones o un diccionario al inicializar Executor, que luego hace una copia de esas opciones. Por lo tanto, cambiar el diccionario original o la instancia de opciones no afecta a las opciones que pertenecen al primitivo.

Clase de opciones

Al crear una instancia de la clase Executor, puedes pasar una instancia de la clase de opciones. Esas opciones se aplican luego cuando usas run() para realizar el cálculo. Especifica las opciones en este formato: options.option.sub-option.sub-sub-option = choice. Por ejemplo: options.environment.log_level = INFO.

Ejemplo:

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
from qiskit_ibm_runtime import QiskitRuntimeService, Executor
from qiskit_ibm_runtime.options import ExecutorOptions

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

options = ExecutorOptions(
environment={"log_level": "INFO"},
execution={"init_qubits": True},
)

# or use the following instead:

options = ExecutorOptions()
options.environment.log_level = "INFO"
options.execution.init_qubits = True

executor = Executor(mode=backend, options=options)

Diccionario

Puedes especificar opciones como un diccionario al inicializar Executor.

from qiskit_ibm_runtime import QiskitRuntimeService, Executor

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during primitive initialization
executor = Executor(
backend,
options={
"environment": {"log_level": "INFO"},
"execution": {"init_qubits": True},
},
)

Opciones disponibles

La siguiente tabla documenta opciones de la última versión de qiskit-ibm-runtime. Para ver versiones de opciones anteriores, visita la referencia de la API de qiskit-ibm-runtime y selecciona una versión anterior.

environment

Documentación de la API de environment

environment.job_tags

Lista de etiquetas.

Opciones: None

Predeterminado: None

environment.log_level

Opciones: DEBUG, INFO, WARNING, ERROR, CRITICAL

Predeterminado: WARNING

environment.private

Opciones: True, False

Predeterminado: False

environment.max_execution_time

Opciones: Número entero de segundos en el rango [1, 10800]

Predeterminado: 10800 (3 horas)

execution

Documentación de la API de execution

execution.init_qubits

Si se deben restablecer los qubits al estado fundamental para cada shot.

Opciones: True, False

Predeterminado: True

execution.rep_delay

El retraso entre una medición y el circuit cuántico subsiguiente.

Opciones: Valor en el rango proporcionado por backend.rep_delay_range

Predeterminado: Dado por backend.default_rep_delay

execution.meas_type

Opciones: classified, kerneled, avg_kerneled

Predeterminado: classified

experimental

Opciones experimentales, cuando estén disponibles.

Compatibilidad de funciones

Ciertas funciones de runtime no pueden usarse juntas en un solo trabajo. Haz clic en la pestaña correspondiente para ver una lista de funciones incompatibles con la función seleccionada:

Incompatible con:

  • ZNE por plegado de gates
  • PEA
  • PEC
  • Desacoplamiento dinámico

Otras notas:

  • El gate twirling puede aplicarse a circuits dinámicos, pero solo a gates que no estén dentro de bloques condicionales.
  • El twirling de medición solo puede aplicarse a mediciones terminales.
  • El twirling de medición es incompatible con la instrucción store.
  • Compatible con gates fraccionales cuando se usa qiskit-ibm-runtime v0.42.0 o posterior.

Próximos pasos

Recomendaciones