Qiskit Runtime 실행 모드 자주 묻는 질문
Qiskit Runtime 로컬 테스트 모드는 다양한 실행 모드를 지원하나요?
로컬 테스트 모드는 다양한 실행 모드의 구문을 지원하지만, 로컬에서 테스트할 때는 스케줄링이 없기 때문에 해당 모드는 무시됩니다.
특정 Backend에서 병렬로 실행할 수 있는 작업 수는 몇 개인가요?
병렬로 실행되는 작업 수는 Backend에 설정된 병렬성 수준에 따라 결정되며, 현재 대부분의 Backend에서는 5개입니다.
실패하거나 취소된 작업의 사용량은 어떻게 보고되나요?
실행 모드 페이지의 실패 및 취소된 작업 섹션을 참조하세요.
세션
세션이 닫히면 내 작업에 어떤 일이 발생하나요?
qiskit-ibm-runtime의 Session 클래스를 사용하는 경우:
Session.close()는 세션이 더 이상 새 작업을 수락하지 않음을 의미하지만, 기존 작업은 완료될 때까지 실행됩니다.Session.cancel()은 대기 중인 모든 세션 작업을 취소합니다.
REST API를 직접 사용하는 경우:
accepting_jobs=False로PATCH /sessions/{id}를 호출하면 세션이 더 이상 새 작업을 수락하지 않지만, 기존 작업은 완료될 때까지 실행됩니다.DELETE /sessions/{id}/close는 대기 중인 모든 세션 작업을 취소합니다.
세션 모드를 사용 중이며 실험에 몇 시간이 걸릴 것으로 예상되는 경우, 보정(calibration)을 요청할 방법이 있나요?
없습니다. 온디맨드 보정(calibration)은 지원되지 않습니다.
세션 모드에는 대화형 타임아웃(interactive TTL)이 있나요?
있습니다. 이는 사용자가 세션 닫는 것을 잊었을 때 불필요한 비용이 발생하는 것을 줄여줍니다.
대화형 TTL 또는 세션의 최대 TTL을 변경할 수 있나요?
대화형 TTL 값은 변경할 수 없습니다. 세션의 최대 TTL 값은 변경할 수 있지만(세션 길이 지정 참조), 시스템에서 정의한 최대값보다 작아야 합니다. 다른 대화형 TTL 또는 시스템 최대 TTL이 필요하다면 관리자에게 IBM 지원팀에 문의하도록 요청하세요.
세션 사용량이 사용량으로 청구되지 않는 IBM Quantum Network 회원에게 어떤 영향을 미치나요?
IBM Quantum Network 회원은 IBM Quantum® QPU에 대한 예약 용량을 갖습니다. 사용량은 이 용량에서 차감되며, 용량이 낮은 인스턴스는 대기 시간이 더 길어집니다.
세션 모드에서 배치 모드와 동일한 병렬성을 얻을 수 있나요?
그렇습니다. 세션에서 여러 작업을 동시에 제출하면 해당 작업들은 병렬로 실행됩니다.
QPU 업그레이드나 보정(calibration)으로 인해 세션이 중단될 수 있나요?
아니요. 세션은 전용 모드에서 실행되므로 사용자가 Backend에 대한 전체 접근 권한을 가집니다. 세션은 보정(calibration)이나 소프트웨어 업그레이드로 인해 중단되지 않습니다.
세션 모드에서 컴파일 시간이 사용량에 포함되나요?
그렇습니다. 세션 모드에서 사용량은 QPU가 세션에 할당된 실제 시간입니다. 첫 번째 세션 작업이 시작될 때 시작되고, 세션이 비활성화되거나 닫히거나 마지막 작업이 완료될 때 중 가장 나중에 발생하는 시점에 종료됩니다. 따라서 QPU가 여전히 작업을 실행 중이라면 세션이 종료된 후에도 사용량이 계속 누적됩니다. 또한 작업이 완료된 후 QPU가 다음 세션 작업을 기다리는 시간(대화형 TTL)도 사용량으로 계산됩니다. 이 때문에 작업 제출이 완료되는 즉시 세션을 닫아야 합니다.
배치
배치 모드에서 병렬로 실행되는 작업 수는 몇 개인가요?
병렬로 실행되는 작업 수는 Backend에 설정된 병렬성 수준에 따라 결정되며, 대부분의 Backend에서는 5개입니다. 그러나 배치가 활성화될 때 이미 실행 중인 다른 작업이 있을 수 있으므로, 활성 배치의 동시 작업 수는 더 낮을 수 있습니다.
작업 모드에서 _N_개의 PUB을 실행하는 것과 배치 모드에서 단일 PUB 작업 _N_개를 실행하는 것은 어떻게 다른가요?
주요 차이점은 시간과 비용의 트레이드오프입니다:
배치 모드:
- 클래식 처리가 병렬로 실행될 수 있으므로 총 실행 시간이 줄어듭니다.
- 각 작업을 실행하는 데 약간의 오버헤드가 있으므로 배치 작업에 대해 조금 더 비용을 지불하게 됩니다. 이 오버헤드는 작업의 크기와 관련이 있습니다. 예를 들어, 각각 100x100 Circuit 40개를 포함하는 두 작업의 총 사용량은 Circuit 80개를 포함하는 단일 작업보다 6초 더 많습니다.
- 배치 모드는 Backend에 대한 독점적 접근을 제공하지 않으므로, 배치 내의 작업이 다른 사용자의 작업이나 보정(calibration) 작업과 함께 실행될 수 있습니다.
- 일부 작업이 실패해도 완료된 작업의 결과를 얻을 수 있습니다.
- 완료된 작업의 결과를 기반으로 배치 워크로드 중간에 조치를 취할 수 있습니다. 예를 들어, 초기 결과가 잘못된 것처럼 보이면 나머지 작업을 취소할 수 있습니다.
작업 모드:
- 병렬성이 없으므로 총 실행 시간이 더 길어질 가능성이 높습니다.
- 배치 워크로드와 관련된 추가 작업별 오버헤드 비용을 지불하지 않습니다.
- 모든 Circuit이 함께 실행됩니다.
- 이 단일 작업이 실패하면 부분적인 결과를 얻지 못합니다.
- Circuit이 너무 많거나 Circuit이 너무 크면 작업이 한도에 도달할 수 있습니다.
일반적으로 각 작업이 1분 미만의 QPU 시간을 소비하는 경우, 더 큰 작업으로 결합하는 것을 고려하세요(모든 실행 모드에 적용됩니다).
배치에 제출할 수 있는 작업 수는 몇 개인가요?
배치에 제출할 수 있는 작업 수에는 제한이 없지만, 배치와 관련된 최대 시간이 있습니다. 즉, 배치의 실제 시간(첫 번째 배치 작업이 실행을 시작할 때부터 시작됨)이 시스템에서 정의한 최대 시간을 초과하면, 배치는 더 이상 새 작업을 수락하지 않으며 대기 중이지만 실행되지 않은 작업은 취소됩니다. 또한 플랜에 따라 작업이 소비할 수 있는 사용량에 제한이 있습니다. 배치와 관련된 최대 시간을 확인하려면 batch.details() 메서드를 사용하고 max_time 값을 확인하세요.
내 배치 모드 작업이 언제 다른 사용자의 작업과 병렬로 실행되나요?
Backend에 설정된 병렬성 수준을 "실행 레인"이라고도 합니다. 하나 이상의 실행 레인이 사용 가능하고 배치 작업이 다음 실행 순서에 있는 경우, 스케줄러는 레인을 채울 만큼 충분한 작업을 시작합니다. 마찬가지로, 배치에 레인을 채울 만큼의 작업이 없으면 스케줄러는 다른 사용자의 작업을 시작합니다.
예시: 선택한 Backend에 5개의 실행 레인이 있고, 그 중 2개가 현재 다른 사용자의 작업으로 사용 중입니다. 6개의 작업이 있는 배치가 다음 실행 순서에 있습니다.
사용 가능한 레인이 3개 있으므로, 스케줄러는 6개의 배치 작업 중 3개를 시작합니다. 작업이 완료되고 실행 레인이 사용 가능해지면 배치의 작업을 계속 시작합니다. 레인이 사용 가능한데 배치에 더 이상 작업이 없으면, 스케줄러는 대기 중인 다음 작업을 시작합니다.
내 배치 작업 모두 대기열에서 기다려야 하나요?
QPU는 제한되고 공유된 자원이기 때문에 모든 작업은 대기열에서 기다려야 합니다. 그러나 배치의 첫 번째 작업이 실행을 시작하면, 해당 배치의 다른 모든 작업은 사실상 대기열의 맨 앞으로 이동하여 스케줄러에 의해 우선 처리됩니다.
마지막 관련 작업이 종료되면 배치가 자동으로 종료되나요?
그렇습니다. 그러나 이 자동 감지와 관련된 약간의 오버헤드가 있으므로, 항상 배치와 세션을 직접 닫아야 합니다.
보정(calibration)이나 소프트웨어 업그레이드로 인해 배치가 중단될 수 있나요?
그렇습니다. 배치 워크로드는 보정(calibration)이나 소프트웨어 업그레이드로 인해 중단될 수 있습니다.
배치 모드에서 컴파일 시간이 사용량에 포함되나요?
아니요. 배치 모드에서는 양자 하드웨어에서 소비된 시간만 사용량으로 계산됩니다.