メインコンテンツへスキップ

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 drawerのデフォルトシステムを変更します。latexmpltext、または latex_source に設定できます。output kwargが明示的に指定されていない場合、このdrawerシステムが使用されます。
  • circuit_mpl_style: Circuit drawerのmpl出力システムで使用されるデフォルトのスタイルシートです。有効な値は default または bw です。
  • circuit_mpl_style_path: mpl出力モードを使用する際に、Circuit drawerがJSONスタイルシートを探すパスです。
  • state_drawer: 状態可視化のdrawメソッドのデフォルトシステムを変更するために使用します。有効な値は reprtextlatexlatex_sourceqspherehinton、または 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 より大きい整数を指定してください。
備考

環境変数

以下の環境変数を設定することで、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/コアを持つシステムで効果的ですが、異なるローカルハードウェアで実行した場合に結果が再現されないというトレードオフがあります。

次のステップ

おすすめ