디버깅 도구 소개
시뮬레이션된 장치에서 양자 프로그램을 실행하고 실제 장치 노이즈 모델 하에서의 성능을 탐색하여 테스트할 수 있습니다. 이를 통해 양자 처리 장치(QPU)에 프로그램을 전송하기 전에 디버깅할 수 있습니다.
양자 시뮬레이터는 프로그램을 세밀하게 조정하여 양자 하드웨어에 전송하기 전에 개발하고 테스트하는 데 활용할 수 있습니다. 로컬 시뮬레이터는 우수한 성능과 효율성으로 이를 수행할 수 있습니다.
양자 Circuit을 고전적으로 시뮬레이션하는 비용은 Qubit 수에 따라 지수적으로 증가하기 때문에, 50개 이상의 Qubit으로 구성된 Circuit은 일반적으로 시뮬레이터에서 실행할 수 없습니다. 이러한 Circuit의 경우 다음과 같은 방법을 사용할 수 있습니다:
- 고전적으로 시뮬레이션할 수 있는 더 작은 버전의 Circuit을 테스트합니다.
- 정확도는 낮아지지만 고전적으로 시뮬레이션 가능하도록 Circuit을 수정합니다.
클리퍼드(Clifford) Circuit이라고도 불리는 안정화기(Stabilizer) Circuit은 이 후자의 목표를 달성하는 데 유용한 도구입니다. 이는 고전적으로 효율적으로 시뮬레이션할 수 있는 제한된 양자 Circuit의 한 종류입니다. 특화된 시뮬레이터는 수천 개의 Qubit을 가진 안정화기 Circuit을 쉽게 시뮬레이션할 수 있습니다. 자세한 내용은 Qiskit Aer 프리미티브를 사용한 안정화기 Circuit의 효율적인 시뮬레이션을 참조하세요.
일반적인 양자 Circuit의 경우, 양자 프로그램을 테스트하고 디버깅하는 데 사용할 수 있는 도구는 다음과 같습니다:
- Qiskit Runtime을 사용할 때 Circuit을 시뮬레이션하려면 로컬 테스트 모드를 사용하세요.
- 소규모 양자 Circuit의 정확한 시뮬레이션을 위해 Qiskit에 포함된 참조 프리미티브를 사용할 수 있습니다. Qiskit 프리미티브를 사용한 정확한 시뮬레이션을 참조하세요.
- 더 큰 Circuit을 처리할 수 있는 고성능 시뮬레이션이나 시뮬레이션에 노이즈 모델을 통합하려면 Qiskit Ecosystem의 일부 프로젝트인 Qiskit Aer를 사용하세요. Qiskit Aer 프리미티브를 사용한 정확한 시뮬레이션 및 노이즈 시뮬레이션을 참조하세요.
- 사용자 정의 노이즈 모델을 만들려면 Qiskit Aer의
noise모듈을 사용하세요. 노이즈 모델 구축을 참조하세요. - Qiskit Runtime Estimator 작업의 경우, Qiskit Runtime
Neat클래스를 사용하여 작업을 디버깅하고 분석할 수 있습니다. 자세한 내용은 Qiskit Runtime 작업 디버그를 참조하세요.
하드웨어 고려 사항
양자 시뮬레이션에 필요한 메모리에는 여러 요소가 영향을 미치므로 시뮬레이션에 대한 정확한 하드웨어 요구 사항은 없지만, 따를 수 있는 몇 가지 지침이 있습니다.
- Qiskit을 실행하는 유일한 요구 사항은 Python 환경이 작동하는 것입니다. 자세한 내용은 운영 체제 지원 섹션을 참조하세요.
- 양자 Circuit 시뮬레이션의 요구 사항은 Qubit 수에 따라 지수적으로 증가하므로, 사용 가능한 하드웨어가 시뮬레이션할 수 있는 Qubit 수를 제한합니다. 예를 들어, 4GB RAM을 가진 시스템은 약 27개의 Qubit을 시뮬레이션할 수 있습니다.
- 사용 가능한 메모리의 많고 적음 이 결과의 정확도에 영향을 주지는 않지만(결과가 반환된다고 가정할 때), 메모리가 많을수록 결과가 더 빠르게 반환되거나 더 많은 Qubit을 시뮬레이션할 수 있습니다.
- 하드웨어를 최대한 활용하려면 가능한 경우 로컬 안정화기(Clifford) Circuit 시뮬레이션을 사용하세요. 예시는 Qiskit Runtime 로컬 테스트 모드를 사용한 Clifford 시뮬레이션 또는 Qiskit Aer 프리미티브를 사용한 안정화기 Circuit의 효율적인 시뮬레이션을 참조하세요.
- 여러 GPU, 노드 또는 둘 다를 사용하여 실행하는 지침을 따라 컴퓨팅 성능을 향상시킬 수 있습니다.