로컬에서 Qiskit SDK 구성하기
Qiskit SDK를 설치하고 실행한 후, Qiskit의 기본 동작을 변경하기 위해 선택적으로 수행할 수 있는 몇 가지 단계가 있습니다.
사용자 구성 파일
Qiskit의 로컬 구성을 위한 주요 위치는 사용자 구성 파일입니다. 이 파일은 .ini 형식의 파일로, Qiskit 기본 설정을 변경하는 데 사용할 수 있습니다.
예시:
[default]
circuit_drawer = mpl
circuit_mpl_style = default
circuit_mpl_style_path = ~:~/.qiskit
state_drawer = hinton
transpile_optimization_level = 3
parallel = False
num_processes = 15
기본적으로 이 파일은 ~/.qiskit/settings.conf에 위치하지만, QISKIT_SETTINGS 환경 변수를 사용하여 경로를 재정의할 수 있습니다.
사용 가능한 옵션
circuit_drawer: Circuit 드로어의 기본 시스템을 변경합니다.latex,mpl,text, 또는latex_source로 설정할 수 있습니다. output kwarg가 명시적으로 설정되지 않은 경우 이 드로어 시스템이 사용됩니다.circuit_mpl_style: Circuit 드로어의 mpl 출력 시스템에 사용되는 기본 스타일 시트입니다. 유효한 값은default또는bw입니다.circuit_mpl_style_path: mpl 출력 모드를 사용할 때 Circuit 드로어가 JSON 스타일 시트를 검색하는 데 사용할 경로입니다.state_drawer: 상태 시각화 드로우 메서드의 기본 시스템을 변경하는 데 사용됩니다. 유효한 값은repr,text,latex,latex_source,qsphere,hinton, 또는bloch입니다. qiskit.quantum_info.DensityMatrix.draw 메서드에서 output kwarg가 명시적으로 설정되지 않은 경우 지정된 출력 방법이 사용됩니다.transpile_optimization_level: qiskit.compiler.transpile의 기본 최적화 수준을 변경합니다. 0-3 사이의 정수를 지정합니다.parallel: 병렬 실행을 지원하는 작업에 대해 Python 멀티프로세싱을 활성화할지 여부입니다. 예를 들어, 여러 qiskit.circuit.QuantumCircuit 객체의 Transpiler 작업이 해당됩니다. 이 설정은QISKIT_PARALLEL환경 변수로 재정의할 수 있습니다. 불리언 값을 지정합니다.num_processes: 병렬 실행이 활성화된 경우 병렬 작업에 대해 실행할 최대 병렬 프로세스 수입니다. 이 설정은QISKIT_NUM_PROCS환경 변수로 재정의할 수 있습니다.0보다 큰 정수를 지정합니다.
참고
- Circuit 드로어 설정은 qiskit.circuit.QuantumCircuit.draw 및 qiskit.visualization.circuit_drawer.에 적용됩니다.
- 상태 시각화 드로우 메서드는 qiskit.quantum_info.Statevector.draw 및 qiskit.quantum_info.DensityMatrix.draw.입니다.
환경 변수
다음 환경 변수를 설정하여 Qiskit의 기본 동작을 변경할 수 있습니다:
QISKIT_PARALLEL: Python 멀티프로세싱을 활성화하여 특정 작업을 병렬화합니다. 예를 들어 Qiskit에서 여러 Circuit에 대한 Transpiler 작 업이 해당됩니다. 불리언 값을 지정합니다.QISKIT_NUM_PROCS: 병렬 실행이 활성화된 경우 병렬 작업에 대해 실행할 최대 병렬 프로세스 수입니다. 0보다 큰 정수를 지정합니다.RAYON_NUM_THREADS: Qiskit에서 멀티스레드 작업을 실행할 스레드 수입니다. 기본적으로 멀티스레드 코드는 각 논리 CPU마다 스레드를 실행합니다. Qiskit이 사용하는 스레드 수를 조정하려면 정수 값으로 설정합니다. 예를 들어, RAYON_NUM_THREADS=4로 설정하면 멀티스레드 함수에 대해 네 개의 스레드가 실행됩니다.QISKIT_FORCE_THREADS: 멀티스레드 코드가 항상 여러 스레드에서 실행되도록 지정합니다. 기본적으로 이미 병렬 프로세스에서 실행 중인 Qiskit 섹션에서 멀티스레드 코드를 실행하는 경우, Qiskit은 여러 스레드를 실행하지 않고 해당 함수를 직렬로 실행합니다. 이는 제한된 CPU 리소스의 과부하를 방지하기 위한 것입니다. 그러나 멀티프로세스 컨텍스트에서도 여러 스레드를 강제로 사용하려면QISKIT_FORCE_THREADS=TRUE로 설정합니다.QISKIT_SABRE_ALL_THREADS: Qiskit의 프리셋 패스 매니저에서 레이아웃 및 라우팅 패스의 동작을 제어합니다.1또는TRUE로 설정하면 여러 무작위 시도를 실행하는 데 사용 가능한 모든 CPU를 사용합니다. 이는 특히 CPU/코어가 20개 이상인 시스템에서 결과 품질을 향상시킬 수 있습니다. 단, 다른 로컬 하드웨어에서 실행할 때 결과가 재현되지 않는다는 단점이 있습니다.
다음 단계
권장 사항
- Grover의 알고리즘과 같은 튜토리얼을 시도해 보세요.
- Hello world 프로그램 실행하기.
- 오픈소스 Qiskit SDK에 기여하고 싶다면 기여 가이드라인을 읽어보세요.