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