큐비트 초기화
이 페이지의 코드는 다음 요구 사항을 사용하여 개발되었습니다. 다음 버전 이상을 사용하는 것이 좋습니다.
qiskit-ibm-runtime~=0.47.0
IBM® 양자 처리 장치(QPU)에서 회로가 실행될 때 일반적으로 회로의 시작 부분에 암시적 리셋이 삽입되어 큐비트가 0으로 초기화되도록 합니다. 이는 기본 실행 옵션으로 설정된 init_qubits 플래그로 제어됩니다.
그러나 재설정 과정의 불완전성은 상태 준비 오류를 유발할 수 있다. 오류를 완화하기 위해 QPU는 회로 사이에 반복 지연 시간(또는 rep_delay)을 삽입합니다. 각 백엔드는 서로 다른 기본값을 rep_delay가지지만, 일반적으로 리셋 정확도와 전체 실행 시간 사이의 균형을 맞추도록 설정됩니다. 특정 QPU에 대한 rep_delay 기본값을 찾으려면 backend.default_rep_delay 실행하십시오.
IBM 의 모든 QPU는 동적 반복률 실행을 사용하므로 작업마다 실행 rep_delay 속도를 변경할 수 있습니다. 원시 작업에서 제출하는 회로들은 QPU에서 실행하기 위해 함께 배치됩니다. 이러한 회로들은 요청된 각 샷에 대해 회로들을 반복하여 실행됩니다. 실행은 회로와 샷의 행렬을 열 단위로 수행되며, 다음 그림에 설명된 바와 같습니다.

회로 사이에 삽입되기 rep_delay 때문에, 실행의 각 샷은 이 지연을 겪게 됩니다. 따라서, rep_delay를 낮출수록 총 QPU 실행 시간은 감소하지만, 상태 준비 오류율이 증가하는 대가를 치르게 됩니다. 다음 그림이 이를 보여줍니다:

와 를 rep_delay=0 모두 init_qubits=False설정하면, 양자비트가 이전 샷의 최종 상태에서 시작하게 되므로 회로들이 "병합"됩니다.
원시 작업 내 회로들은 QPU 실행을 위해 함께 배치되지만, PUB에서 온 회로들의 실행 순서는 보장되지 않습니다. 예를 들어, 를 제출하면 pubs=[pub1, pub2], 에서 온 회로가 에서 온 회로보다 pub1 먼저 pub2실행되지 않을 수 있습니다. 동일 작업의 회로들이 QPU에서 단일 배치로 실행될 것이라는 보장도 없습니다.
원시 작업에 대해 rep_delay 지정하십시오
사용 중인 특정 QPU의 지원 rep_delay 범위를 항상 확인하십시오. 이러한 값은 모든 QPU에 대해 동일하지 않으며 시간이 지남에 따라 변경될 수도 있습니다.
참고로, 의 증가는 실행 시간 및 용량 rep_delay 소비에 직접적인 영향을 미칩니다.
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다음 단계
- 퀀텀 근사 최적화 알고리즘(QAOA) 튜토리얼에서 예제를 사용해 보세요.
- 에스티메이터(Estimator)를 시작하는 방법을 확인해 보세요.
- Sampler 시작 방법을 확인해 보세요.