Qiskit 소개
"Qiskit"이라는 이름은 양자 컴퓨터에서 프로그램을 실행하기 위한 소프트웨어 모음을 가리키는 총칭입니다. 이 중 가장 주목할 만한 것은 오픈 소스 Qiskit SDK와, IBM Quantum Compute Service(이전 명칭: Qiskit Runtime Service)를 통해 접근하며 IBM® 양자 처리 장치(QPU)에서 워크로드를 실행할 수 있게 해 주는 런타임 환경입니다. 양자 기술이 발전함에 따라 Qiskit도 발전하며, 매년 이 핵심 양자 소프트웨어 모음을 확장하는 새로운 기능이 출시됩니다.
또한 많은 오픈 소스 프로젝트가 더 넓은 Qiskit 생태계에 속해 있습니다. 이러한 소프트웨어 도구는 Qiskit 자체의 일부는 아니지만 Qiskit과 연동되며 유용한 추가 기능을 제공할 수 있습니다.
IBM은 양자 컴퓨팅의 책임 있는 개발을 위해 노력하고 있습니다. 책임 있는 양자 컴퓨팅 항목에서 자세한 내용과 책임 있는 양자 원칙을 확인하세요.
Qiskit SDK
Qiskit SDK(패키지 이름 qiskit)는 확장된(정적, 동적, 스케줄링된) 양자 회로, 연산자, primitive 수준에서 양자 컴퓨터를 다루기 위한 오픈 소스 SDK입니다. 이 라이브러리는 Qiskit의 핵심 구성 요소로, Qiskit이라는 이름 아래 가장 큰 패키지이며 양자 계산을 위한 가장 폭넓은 도구 모음을 갖추고 있고, 다른 많은 구성 요소가 이와 연동됩니다.
Qiskit SDK의 가장 유용한 기능은 다음과 같습니다.
-
회로 구성 도구 (
qiskit.circuit) - 레지스터, 회로, 명령어, 게이트, 파라미터, 제어 흐름 객체를 초기화하고 조작합니다. -
회로 라이브러리 (
qiskit.circuit.library) - 회로, 명령어, 게이트의 방대한 모음으로, 회로 기반 양자 계산의 핵심 구성 요소입니다. -
양자 정보 라이브러리 (
qiskit.quantum_info) - 샘플링 노이즈 없이 정확한 계산으로 양자 상태, 연산자, 채널을 다루는 도구 모음입니다. 이 모듈을 사용하여 입력 observable을 지정하고 primitive 쿼리 출력의 충실도를 분석하세요. -
Transpiler (
qiskit.transpiler) - 특정 장치 토폴로지에 맞게 양자 회로를 변환 및 조정하고, 실제 양자 처리 장치(QPU)에서의 실행에 맞게 최적화합니다. -
Primitives (
qiskit.primitives) - Sampler 및 Estimator primitive의 기본 정의와 참조 구현을 담고 있는 모듈로, 서로 다른 양자 하드웨어 제공업체가 이를 바탕으로 자체 구현을 만들 수 있습니다. IBM Quantum primitive에 대한 자세한 내용은 문서를 참조하세요.
설치
Qiskit SDK 설치에 대한 더 자세한 소개는 설치 페이지를 확인하세요. 지금 바로 설치할 준비가 되었다면 다음을 실행하세요.
pip install qiskit
벤치마킹
벤치마킹은 개발 워크플로의 여러 단계에서 양자 소프트웨어의 상대적 성능을 비교하는 데 중요합니다. 예를 들어 양자 소프트웨어의 벤치마킹 테스트는 회로를 구성, 조작, 트랜스파일하는 속도와 품질을 살펴볼 수 있습니다. IBM Quantum은 가능한 가장 높은 성능의 SDK를 제공하기 위해 노력하고 있으며, 이를 위해 Qiskit SDK는 주요 대학, 국립 연구소, IBM 연구원들이 개발한 1,000개 이상의 테스트로 벤치마킹됩니다. 이 테스트에 사용된 벤치마킹 모음인 Benchpress는 이제 오픈 소스 패키지로 제공됩니다. 이제 Benchpress 패키지를 사용하여 양자 SDK 성능을 직접 분석할 수 있습니다.
다음 단계
- Qiskit 회로 라이브러리에서 제공하는 회로와 명령어 라이브러리에 대해 알아보세요.
- Transpiler 섹션에서 Qiskit Transpiler와 다양한 트랜스파일 옵션에 대해 읽어 보세요.
- primitive 인터페이스를 사용하여 양자 프로그래밍을 간소화하는 방법을 알아보세요.
- Qiskit과 연동하고 그 기능을 확장하는 오픈 소스 프로젝트를 제공하는 Qiskit 생태계를 확인해 보세요.