Especificar opções do Executor
Versões dos pacotes
O código desta página foi desenvolvido usando os seguintes requisitos. Recomendamos usar essas versões ou versões mais recentes.
qiskit-ibm-runtime~=0.46.1
Você pode usar opções para personalizar a primitiva Executor.
- Você pode ver as opções disponíveis e atualizar os valores das opções durante ou após a inicialização da primitiva.
- Use o método
update()para aplicar alterações ao atributooptions. - O atributo
optionsé do tipo Pythondataclass. Você pode usar o método integradoasdictpara convertê-lo em um dicionário.
Definir opções do Executor
Se uma opção for especificada tanto durante quanto após a inicialização da primitiva, o valor definido após a inicialização da primitiva é usado.
Inicialização da primitiva
Você pode passar uma instância da classe de opções ou um dicionário ao inicializar o Executor, que então faz uma cópia dessas opções. Assim, alterar o dicionário original ou a instância de opções não afeta as opções de propriedade da primitiva.
Classe de opções
Ao criar uma instância da classe Executor, você pode passar uma instância da classe de opções. Essas opções são então aplicadas quando você usa run() para realizar o cálculo. Especifique as opções neste formato: options.option.sub-option.sub-sub-option = choice. Por exemplo: options.environment.log_level = INFO.
Exemplo:
# 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)
Dicionário
Você pode especificar opções como um dicionário ao inicializar o 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},
},
)
Opções disponíveis
A tabela a seguir documenta as opções da versão mais recente do qiskit-ibm-runtime. Para ver versões antigas de opções, visite a referência da API qiskit-ibm-runtime e selecione uma versão anterior.
environment
Documentação da API environment
environment.job_tags
Lista de tags.
Opções: Nenhuma
Padrão: Nenhum
environment.log_level
Opções: DEBUG, INFO, WARNING, ERROR, CRITICAL
Padrão: WARNING
environment.private
Opções: True, False
Padrão: False
environment.max_execution_time
Opções: Número inteiro de segundos no intervalo [1, 10800]
Padrão: 10800 (3 horas)
execution
execution.init_qubits
Se os qubits devem ser redefinidos para o estado fundamental para cada shot.
Opções: True, False
Padrão: True
execution.rep_delay
O atraso entre uma medição e o circuito quântico subsequente.
Opções: Valor no intervalo fornecido por backend.rep_delay_range
Padrão: Fornecido por backend.default_rep_delay
execution.meas_type
Opções: classified, kerneled, avg_kerneled
Padrão: classified
experimental
Opções experimentais, quando disponíveis.
Compatibilidade de recursos
Certos recursos de runtime não podem ser usados juntos em um único job. Clique na aba apropriada para ver uma lista de recursos incompatíveis com o recurso selecionado:
- Circuits dinâmicos
- Desacoplamento dinâmico
- Gates fracionários
- ZNE de dobragem de gate
- Twirling de gate
- PEA
- PEC
Incompatível com:
- ZNE de dobragem de gate
- PEA
- PEC
- Desacoplamento dinâmico
Outras notas:
- O twirling de gate pode ser aplicado a Circuits dinâmicos, mas apenas a gates fora de blocos condicionais.
- O twirling de medição pode ser aplicado apenas a medições terminais.
- O twirling de medição é incompatível com a instrução
store. - Compatível com gates fracionários ao usar
qiskit-ibm-runtimev0.42.0 ou posterior.
Incompatível com Circuits dinâmicos.
Incompatível com:
- Twirling de gate
- PEA
- PEC
Compatível com Circuits dinâmicos ao usar qiskit-ibm-runtime v0.42.0 ou posterior.
Incompatível com:
- Circuits dinâmicos
- PEA
- PEC
Pode não funcionar ao usar gates personalizados.
Incompatível com gates fracionários ou com stretches.
Outras notas:
- O twirling de gate pode ser aplicado a Circuits dinâmicos, mas apenas a gates fora de blocos condicionais. O twirling de medição pode ser aplicado apenas a medições terminais.
- Não funciona com entrelaçadores não-Clifford.
Incompatível com:
- Circuits dinâmicos
- Gates fracionários
- ZNE de dobragem de gate
- PEC
Incompatível com:
- Circuits dinâmicos
- Gates fracionários
- ZNE de dobragem de gate
- PEA
Próximos passos
- Revise a documentação da API ExecutionOptionsV2.
- Revise a documentação da API EnvironmentOptions.