Qiskit 구조 이해하기
Qiskit에 직접 기여하기 전 간단하게 Qiskit 구조를 먼저 알아봅시다.
가장 최신 Qiskit을 pip install qiskit
으로 설치하고 난 다음
qiskit.__qiskit_version__
을 입력하면 아래와 같은 문자열이 출력되는 것을 확인할 수 있습니다.
{'qiskit-terra': '0.19.1', 'qiskit-aer': '0.10.2', 'qiskit-ignis': '0.7.0', 'qiskit-ibmq-provider': '0.18.3', 'qiskit-aqua': None, 'qiskit': None, 'qiskit-nature': None, 'qiskit-finance': None, 'qiskit-optimization': None, 'qiskit-machine-learning': None}
상당히 긴 문자열이 나와 당황하셨을지도 모르겠습니다. 이번 글을 통해 Qiskit 속에 포함된 각각의 요소가 어떤 것인지, Qiskit의 과거와 현재를 통해 알아보도록 하겠습니다.
Once upon a time…
태초의 Qiskit에는 총 4개의 구성 요소가 있었습니다.
- Terra: 땅, 가장 기본이 되는 요소로 아래 3개의 구조들의 기반을 형성합니다.
- Aer: 공기, 양자 회로를 위한 시뮬레이터를 제공합니다.
- Ignis: 불, 에러를 특정 짓거나 노이즈를 계산하여 더 나은 양자 게이트를 만들 수 있도록 돕습니다.
- Aqua: 물, 양자 컴퓨터를 위한 알고리즘이 만들어지는 곳입니다.
아래의 사진으로 모든 구성 요소를 한 눈에 확인할 수 있습니다.
하지만 Qiskit 최신 버전을 통해 확인했듯이 모든 구성 요소가 살아있지는 않습니다.
Qiskit의 현재
Qiskit의 Release Notes를 확인해보면 가장 최신 버전이 다음과 같음을 알 수 있습니다.
Qiskit Metapackage Version | qiskit-terra | qiskit-aer | qiskit-ignis | qiskit-ibmq-provider | qiskit-aqua | Release Date |
---|---|---|---|---|---|---|
0.34.1 | 0.19.1 | 0.10.2 | 0.7.0 | 0.18.3 | 2022-01-05 |
총 4개의 구성 요소 중 qiskit-aqua
가 사라졌습니다.
Aqua는 완전히 없어진 걸까요?
정답부터 말하자면, 그렇지 않습니다. 가장 처음에 출력했던 qiskit.__qiskit_version__
을 다시 한 번 살펴봅시다.
{
'qiskit-terra': '0.19.1',
'qiskit-aer': '0.10.2',
'qiskit-ignis': '0.7.0',
'qiskit-ibmq-provider': '0.18.3',
'qiskit-aqua': None,
'qiskit': None,
'qiskit-nature': None,
'qiskit-finance': None,
'qiskit-optimization': None,
'qiskit-machine-learning': None
}
보기 좋게 출력된 결과를 정렬해보았습니다. 이를 살펴보면 Release Notes와 달리 몇 개의 요소들이 더 있는 것을 알 수 있습니다.
혹시 새롭게 추가된 요소들의 공통점을 알아내셨나요? qiskit-nature
부터 qiskit-machine-learning
까지,
총 4개의 요소들은 모두 양자 컴퓨터에 사용되는 알고리즘과 관련되어 있습니다.
즉, Aqua에 있던 포함되어 있었던 패키지들이 각각 나누어진 것입니다.
qiskit-aqua
는 2021년 4월부터 지원이 중단되었습니다.
Aqua 공식 레파지토리의 Migration Guide를 참고하면
나눠진 패키지의 레파지토리를 따라갈 수 있습니다.
Aqua를 대신하여 추가된 4개의 패키지까지 한 번에 같이 설치하기 위해서는 pip install qiskit
이 아닌,
pip install 'qiskit[all]'
을 통해 설치를 해주어야 합니다. 이번에는 pip install 'qiskit[all]'
을 통해 설치 후 다시 버전을 확인해보겠습니다.
{'qiskit-terra': '0.19.1', 'qiskit-aer': '0.10.2', 'qiskit-ignis': '0.7.0', 'qiskit-ibmq-provider': '0.18.3', 'qiskit-aqua': None, 'qiskit': None, 'qiskit-nature': '0.3.0', 'qiskit-finance': '0.3.0', 'qiskit-optimization': '0.3.0', 'qiskit-machine-learning': '0.3.0'}
4개의 패키지가 각각 0.3.0
버전으로 잘 설치된 것을 확인할 수 있습니다.
qiskit-aqua
외의 다른 요소들도 변화가 있을 예정이라고 합니다. 간략히 아래에 정리해보면:
- (예정) Terra 이름 변경 → Qiskit (또는 Qiskit core)
- (예정) Aer 이름 변경 → Qiskit simulators
- (예정) Ignis 지원 중단 후 Qiskit experiments으로 대체
- Aqua 지원 중단 후 4개의 패키지(iskit application modules)로 대체 완료
새롭게 추가된 4개의 패키지를 직접 사용해보고 싶다면
qiskit-community/qiskit-application-modules-demo-sessions의
세션을 추천드립니다. 이 중 qiskit-optimization
와 qiskit-machine-learning
에 대해서는 제가 정리한 한글로 정리한 포스팅이 있으니
참고하셔도 좋을 거 같습니다: Qiskit 최적화와 머신 러닝 맛보기.
References
💬 Any comments and suggestions will be appreciated.
Leave a comment