qulacs/qulacs
Variational Quantum Circuit Simulator for Quantum Computation Research
Qulacs – 고성능 양자 회로 시뮬레이션 라이브러리
무엇인가요 – Qulacs는 오픈소스 라이브러리(파이썬 프론트엔드와 고성능 C++ 코어)로, 양자 회로를 시뮬레이션하는 데 사용됩니다. 노이즈가 있는 중규모 양자(NISQ) 장치, 변분 알고리즘, 그리고 많은 양의 양자 회로를 빠르게 실행해야 하는 모든 작업에 초점을 맞추고 있습니다.
주요 기능
- 속도 – 병렬화된 C/C++ 백엔드; 선택적 SIMD, OpenMP 및 GPU 가속 지원. 벤치마크 결과는 단일 및 멀티스레드 실행에서 다른 시뮬레이터와 경쟁 가능한 성능을 보여줍니다.
- 노이즈 모델링 – 내장된 노이즈 게이트를 통해 현실적인 NISQ 하드웨어를 에뮬레이션할 수 있습니다.
- 파라미터 조절 게이트 – 조절 가능한 파라미터를 가진 게이트를 지원하며, 변분 양자 알고리즘에 유용합니다.
- 회로 최적화 및 압축 – 시뮬레이션 전에 게이트 수를 줄여 추가적인 속도 향상을 제공합니다.
- 다중 언어 지원 – 파이썬(
pip install qulacs또는 GPU용qulacs-gpu)에서 사용하거나, 정적/공유 C++ 라이브러리에 직접 링크할 수 있습니다.
설치
- 대부분의 사용자에게 간단한 pip 설치:
pip install qulacs(Intel Haswell CPU에 최적화된 사전 빌드된 바이너리). - 오래된 CPU, 최신 CPU(더 높은 성능), 또는 GPU 지원이 필요한 경우 소스에서 설치하거나
qulacs-gpu패키지를 사용하세요. - 소스에서 빌드하면 CMake를 통해 AVX2, OpenMP, CUDA를 활성화할 수 있습니다.
일반적인 워크플로우 (파이썬)
from qulacs import QuantumCircuit, QuantumState, Observable
from qulacs.gate import Y, CNOT, merge
state = QuantumState(3)
state.set_Haar_random_state()
circuit = QuantumCircuit(3)
circuit.add_X_gate(0)
circuit.add_gate(merge(CNOT(0,1), Y(1)))
circuit.add_RX_gate(1, 0.5)
circuit.update_quantum_state(state)
obs = Observable(3)
obs.add_operator(2.0, "X 2 Y 1 Z 0")
obs.add_operator(-3.0, "Z 2")
print(obs.get_expectation_value(state))
qulacs-gpu를 설치한 후 QuantumState를 QuantumStateGpu로 교체하면 CUDA를 지원하는 GPU에서 실행할 수 있습니다.
일반적인 워크플로우 (C++) – include/에서 헤더를 포함하고 정적 라이브러리(-lcppsim_static -lcsim_static …)에 링크하세요. 샘플 코드는 파이썬 예제와 유사합니다.
누가 사용하나요 – QunaSys, 오사카 대학, NTT, 후지츠 등 학계 연구팀과 알고리즘 개발, 벤치마킹, 노이즈 연구에 빠르고 확장 가능한 시뮬레이터가 필요한 누구나 사용합니다.
더 알아보기 – 완전한 튜토리얼, API 문서, 예제는 프로젝트 사이트(예: docs.qulacs.org)에서 확인할 수 있습니다. 함께 제공되는 벤치마크 리포지토리와 arXiv 논문(arXiv:2011.13524)에서 성능에 대한 자세한 정보를 확인할 수 있습니다.
라이선스 – MIT 라이선스이므로 자유롭게 사용하고 다른 소프트웨어에 통합할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트