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
min_qpy_version = 14
デフォルトでは、このファイルは ~/.qiskit/settings.conf に配置されていますが、QISKIT_SETTINGS 環境変数でパスを上書きすることができます。
利用可能なオプション
circuit_drawer: Circuit drawerのデフォルトシステムを変更します。latex、mpl、text、またはlatex_sourceに設定できます。output kwargが明示的に指定されていない場合、このdrawerシステムが使用されます。circuit_mpl_style: Circuit drawerのmpl出力システムで使用されるデフォルトのスタイルシートです。有効な値はdefaultまたはbwです。circuit_mpl_style_path: mpl出力モードを使用する際に、Circuit drawerがJSONスタイルシートを探すパスです。state_drawer: 状態可視化のdrawメソッドのデフォルトシステムを変更するために使用します。有効な値は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 オブジェクトのトランスパイルなどが該当します。この設定はQISKIT_PARALLEL環境変数で上書きできます。ブール値を指定してください。num_processes: 並列実行が有効な場合に起動する並列プロセスの最大数です。この設定はQISKIT_NUM_PROCS環境変数で上書きできます。0より大きい整数を指定してください。min_qpy_version: QPYの読み込みは、ここで定義したQPYバージョンより低いバージョンのファイルを拒否します。このオプションは、古いQPYバージョンで逆シリアル化のセキュリティ問題が発見された場合に許可するQPYバージョンを制限し、悪意のあるペイロードの読み込みを防ぐために使用できます。
備考
- Circuit drawerの設定は qiskit.circuit.QuantumCircuit.draw および qiskit.visualization.circuit_drawer に適用されます。
- 状態可視化のdrawメソッドは qiskit.quantum_info.Statevector.draw および qiskit.quantum_info.DensityMatrix.draw です。
環境変数
以下の環境変数を設定することで、Qiskitのデフォルト動作を変更できます:
QISKIT_PARALLEL: Pythonのマルチプロセッシングを有効にし、特定の処理を並列化します。例えば、Qiskitで複数のCircuitに対するトランスパイルなどです。ブール値を指定してください。QISKIT_NUM_PROCS: 並列実行が有効な場合に起動する並列プロセスの最大数です。0より大きい整数を指定してください。RAYON_NUM_THREADS: Qiskitでマルチスレッド処理を実行するスレッド数です。デフォルトでは、マルチスレッドコードは論理CPUごとにスレッドを起動します。Qiskitが使用するスレッド数を調整するには、整数値を設定してください。例えば、RAYON_NUM_THREADS=4 と設定すると、マルチスレッド関数に対して4つのスレッドが起動されます。QISKIT_FORCE_THREADS: マルチスレッドコードが常に複数スレッドで実行されるように指定します。デフォルトでは、すでに並列プロセスで実行中のQiskitのセクションでマルチスレッドコードを実行する場合、Qiskitは複数スレッドを起動せず、その関数をシリアルに実行します。これは限られたCPUリソースへの過負荷を避けるためです。ただし、マルチプロセスのコンテキストであっても複数スレッドの使用を強制したい場合は、QISKIT_FORCE_THREADS=TRUEを設定してください。QISKIT_SABRE_ALL_THREADS: Qiskitのプリセットパスマネージャーにおけるレイアウトおよびルーティングパスの動作を制御します。1またはTRUEに設定すると、複数のランダムトライアルの実行に利用可能なすべてのCPUが使用されます。これにより結果の品質が向上する場合があります。特に20以上のCPU/コアを持つシステムで効果的ですが、異なるローカルハードウェアで実行した場合に結果が再現されないというトレードオフがあります。
次のステップ
おすすめ
- グローバーのアルゴリズムなどのチュートリアルを試してみましょう。
- Hello worldプログラムを実行する。
- オープンソースのQiskit SDKへのコントリビューションをご希望の方は、コントリビューションガイドラインを読んでください。