Skip to main content
IBM Quantum Platform

Qiskit SDKをローカルに設定する

Qiskit SDKがインストールされ実行された後、デフォルトのQiskitの動作を変更するためのオプションステップがいくつかあります。


ユーザー設定ファイル

Qiskitのローカル設定の主な場所はユーザー設定ファイルです。 これはQiskitのデフォルト設定を変更するための.ini形式のファイルです。

例:

[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:サーキットドロワーのデフォルトシステムを変更します。 latexmpltextlatex_source のいずれかに設定する。 出力kwargが明示的に設定されていない場合、この引き出し方式が使用される。
  • circuit_mpl_style:サーキットドロワーのmpl出力システムに使用されるデフォルトのスタイルシート。 有効な値は default または bw
  • circuit_mpl_style_path:mpl出力モードを使用する際に、JSONスタイルシートを検索するためにサーキットドロワーに使用させるパス。
  • state_drawer:状態可視化描画メソッドのデフォルトシステムを変更するために使用します。 有効な値は repr, text, latex, latex_source, qsphere, hinton, または bloch です。 出力kwargが qiskit.quantum_info.DensityMatrix.draw メソッドで明示的に設定されていない場合、指定された出力メソッドが使用される。
  • 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のバージョンを制限し、悪意のあるペイロードが読み込まれるのを防ぐことができます。
Note

環境変数

Qiskitのデフォルトの動作を変更するには、これらの環境変数を設定します:

  • QISKIT_PARALLEL: Python マルチプロセッシングを有効にして特定の処理を並列化する。例えば、Qiskitの複数回路にわたるトランスピレーションなど。 ブール値を指定する。
  • QISKIT_NUM_PROCS:並列実行が有効な場合に、並列処理のために起動する並列プロセスの最大数。 ゼロ以上の整数を指定する。
  • 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/コアを持つシステムの場合、結果の質を向上させることができる。しかし、トレードオフとして、異なるローカルハードウェアで実行した場合、結果は再現できない。

次のステップ

推奨事項
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。