Inicialização de Qubits
Package versions
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
Quando um circuito é executado em uma unidade de processamento quântico (QPU) da IBM®, um reset implícito é tipicamente inserido no início do circuito para garantir que os qubits sejam inicializados em zero. Isso é controlado pela flag init_qubits, definida como uma opção de execução de primitiva.
No entanto, imperfeições no processo de reset podem introduzir erros de preparação de estado. Para atenuar o erro, a QPU também insere um tempo de atraso de repetição (ou rep_delay) entre os circuitos. Cada backend tem um rep_delay padrão diferente, mas geralmente é definido para equilibrar a fidelidade do reset em relação ao tempo total de execução. Execute backend.default_rep_delay para encontrar o rep_delay padrão de uma QPU específica.
Como todas as QPUs da IBM usam execução com taxa de repetição dinâmica, você pode alterar o rep_delay para cada job. Os circuitos que você envia em um job de primitiva são agrupados para execução na QPU. Esses circuitos são executados iterando sobre os circuitos para cada shot solicitado; a execução é feita por coluna sobre uma matriz de circuitos e shots, conforme ilustrado na figura a seguir.

Como o rep_delay é inserido entre os circuitos, cada shot da execução encontra esse atraso. Portanto, ao diminuir o rep_delay, o tempo total de execução na QPU diminui, à custa do aumento da taxa de erro de preparação de estado, conforme ilustra a imagem a seguir:

Se você definir tanto rep_delay=0 quanto init_qubits=False, os circuitos se "mesclam", já que os qubits começarão no estado final do shot anterior.
Observe que, embora os circuitos em um job de primitiva sejam agrupados para execução na QPU, não há garantia sobre a ordem em que os circuitos dos PUBs são executados. Por exemplo, se você enviar pubs=[pub1, pub2], os circuitos de pub1 podem não ser executados antes dos de pub2. Também não há garantia de que circuitos do mesmo job serão executados como um único lote na QPU.
Especificar rep_delay para um job de primitiva
Sempre verifique o intervalo de rep_delay compatível com a QPU específica que você está usando. Esses valores não são iguais para todas as QPUs e também podem mudar com o tempo.
Observe que um aumento no rep_delay terá um impacto direto no seu tempo de execução e no consumo de capacidade.
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
service = QiskitRuntimeService()
# Make sure your backend supports it
backend = service.least_busy(
operational=True, min_num_qubits=100, dynamic_reprate_enabled=True
)
# Determine the allowable range
backend.rep_delay_range
sampler = Sampler(mode=backend)
# Specify a value in the supported range
sampler.options.execution.rep_delay = 0.0005
Próximos passos
- Experimente um exemplo no tutorial Algoritmo de otimização aproximada quântica (QAOA).
- Veja como começar a usar o Estimator.
- Veja como começar a usar o Sampler.