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.
- 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 atributooptions. - El atributo
optionses del tipo Pythondataclass. Puedes usar el método integradoasdictpara 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:
- Circuits dinámicos
- Desacoplamiento dinámico
- Gates fraccionales
- ZNE por plegado de gates
- Gate twirling
- PEA
- PEC
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-runtimev0.42.0 o posterior.
Incompatible con circuits dinámicos.
Incompatible con:
- Gate twirling
- PEA
- PEC
Compatible con circuits dinámicos cuando se usa qiskit-ibm-runtime v0.42.0 o posterior.
Incompatible con:
- Circuits dinámicos
- PEA
- PEC
Es posible que no funcione cuando se usan gates personalizados.
Incompatible con gates fraccionales o con estiramientos.
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.
- No funciona con entrelazadores no Clifford.
Incompatible con:
- Circuits dinámicos
- Gates fraccionales
- ZNE por plegado de gates
- PEC
Incompatible con:
- Circuits dinámicos
- Gates fraccionales
- ZNE por plegado de gates
- PEA
Próximos pasos
- Revisa la documentación de la API ExecutionOptionsV2.
- Revisa la documentación de la API EnvironmentOptions.