Share via


リソース推定器の結果データを理解する

Resource Estimator の出力パラメーターとダイアグラムを解釈して取得する方法について説明します。 この記事では、Jupyter Notebooks のリソース推定ツールの結果にプログラムでアクセスする方法について説明します。 コマンド パレットから Visual Studio Code でリソース推定ツールを実行した場合、次のコマンドは適用されません。

前提条件

  • Python と Pip がインストールされた Python 環境。

  • 最新バージョンの Visual Studio Code または VS Code on the Web を開きます。

  • Azure Quantum Development Kit、PythonJupyter拡張機能がインストールされた VS Code。

  • 最新の Azure Quantum qsharpqsharp-widgets パッケージ。

    python -m pip install --upgrade qsharp qsharp-widgets 
    

出力パラメーター

Resource Estimator の出力データは、コンソールに出力され、プログラムからアクセスできるレポートです。 たとえば、次のコード スニペットは、リソース推定パラメーターにアクセスする方法を示しています。

result['job_params']

次の出力データは、プログラムでアクセスできるエントリを構成します。

最上位レベルの出力パラメーター データの種類 Description
status string ジョブの状態は、常に Succeeded.
job_params ディクショナリ target入力として渡されるジョブのパラメーター。
physical_counts ディクショナリ 物理リソースの見積もり。 詳細については、物理カウントを参照してください
physical_counts_formatted ディクショナリ レポート データに表示する形式の物理リソース見積もり。 詳細については、「物理カウントの書式設定」を参照してください
logical_qubit ディクショナリ 論理量子ビット プロパティ。 詳細については、「論理量子ビット」を参照してください
tfactory ディクショナリ T ファクトリのプロパティ。
logical_counts ディクショナリ レイアウト前の論理リソースの見積もり。 詳細については、「論理カウント」を参照してください
report_data ディクショナリ リソース推定レポートの生成データ。

物理カウント

ディクショナリには physical_counts 、次のエントリが含まれています。

出力パラメーター データの種類 説明
physical_qubits 数値 物理量子ビットの合計数。
runtime 数値 アルゴリズムを実行する合計ランタイム (ナノ秒単位)。
rqops 数値 1 秒あたりの信頼性の高い量子操作の数 (QOPS)。
breakdown ディクショナリ 見積もりの内訳。 詳細については、物理カウントの内訳を参照してください

物理カウントの内訳

breakdown ディクショナリ physical_counts には、次のエントリが含まれています。

出力パラメーター データの種類 説明
algorithmic_logical_qubits 数値 アルゴリズムの実行に必要な論理量子ビット。T ファクトリのリソースは含まれません。
algorithmic_logical_depth 数値 アルゴリズムの実行に必要な論理サイクル。T ファクトリのリソースは含まれません。
logical_depth 数値 T ファクトリの実行時間が速くなり、アルゴリズムの実行が速くなるたびに計算される、調整された可能性のあるサイクル数。
num_tstates 数値 アルゴリズムによって使用される T 状態の数。
clock_frequency 数値 1 秒あたりの論理サイクル数。
num_tfactories 数値 T ファクトリの数 (統一された T ファクトリ設計を想定)。
num_tfactory_runs 数値 すべての並列 T ファクトリを実行する頻度の数。
physical_qubits_for_tfactories 数値 すべての T ファクトリの物理量子ビットの数。
physical_qubits_for_algorithm 数値 アルゴリズム レイアウトの物理量子ビットの数。
required_logical_qubit_error_rate 数値 必要な論理エラー率。
required_logical_tstate_error_rate 数値 必要な論理 T 状態エラー率。
num_ts_per_rotation 数値 回転あたりの T ゲートの数。
clifford_error_rate 数値 量子ビット パラメーターに基づくクリフォード エラー率。

物理カウントの書式設定

ディクショナリには physical_counts_formatted 、次のエントリが含まれています。

出力パラメーター データの種類 Description
runtime string 人間に優しい文字列としての合計ランタイム。
rqops string メトリック サフィックスで書式設定された 1 秒あたりの信頼性の高い量子操作 (QOPS) の数。
physical_qubits string メトリック サフィックスを持つ物理量子ビットの合計数。
algorithmic_logical_qubits string メトリック サフィックスを持つアルゴリズム論理量子ビット。
algorithmic_logical_depth string メトリック サフィックスを持つアルゴリズムの論理深さ。
logical_depth string メトリック サフィックスを使用してアルゴリズムの論理深さを調整した可能性があります。
num_tstates string メトリック サフィックスを持つ T 状態の数。
num_tfactories string メトリック サフィックスを持つ T ファクトリ コピーの数。
num_tfactory_runs string メトリック サフィックスを持つ T ファクトリ実行の数。
physical_qubits_for_algorithm string メトリック サフィックスを持つアルゴリズムの物理量子ビットの数。
physical_qubits_for_tfactories string メトリック サフィックスを持つ T ファクトリの物理量子ビットの数。
physical_qubits_for_tfactories_percentage string すべての T ファクトリの物理量子ビットの数 (合計に対する割合)。
required_logical_qubit_error_rate string 必要な論理量子ビット エラー 率が切り捨てられました。
required_logical_tstate_error_rate string 切り捨てられた必要な T 状態エラー率。
physical_qubits_per_logical_qubit string メトリック サフィックスを持つ論理量子ビットあたりの物理量子ビット数。
logical_cycle_time string 人間に優しい文字列としての論理量子ビットの論理サイクル時間。
clock_frequency string 人間に優しい文字列としての 1 秒あたりの論理サイクル数。
logical_error_rate string 論理的なエラー率が切り捨てられました。
tfactory_physical_qubits string メトリック サフィックス (または T ファクトリが存在しないことを示すメッセージ) を持つ T ファクトリ内の物理量子ビットの数。
tfactory_runtime string 人間に優しい文字列 (または T ファクトリがないことを示すメッセージ) としての単一の T ファクトリのランタイム。
num_input_tstates string 入力 T 状態の数 (または T ファクトリがないことを示すメッセージ)。
num_units_per_round string 蒸留ラウンドあたりの単位数。文字列で区切られたコンマ (または T ファクトリがないことを示すメッセージ)。
unit_name_per_round string 各蒸留ラウンドの単位名。文字列で区切られたコンマ (または T ファクトリがないことを示すメッセージ)。
code_distance_per_round string 蒸留ラウンドごとのコード距離。文字列でコンマ区切り (または T ファクトリがないことを示すメッセージ)。
physical_qubits_per_round string 蒸留ラウンドあたりの物理量子ビット数。文字列でコンマ区切り (または T ファクトリがないことを示すメッセージ)。
tfactory_runtime_per_round string 各蒸留ラウンドの実行時間。コンマ区切りの人間に優しい文字列 (または T ファクトリがないことを示すメッセージ) として表示されます。
tstate_logical_error_rate string 切り捨てられた論理 T 状態エラー 率 (または T ファクトリがないことを示すメッセージ)。
logical_counts_num_qubits string メトリック サフィックスを持つ量子ビットの数 (事前レイアウト)。
logical_counts_t_count string メトリック サフィックスを持つ T ゲートの数 (事前レイアウト)。
logical_counts_rotation_count string メトリック サフィックスを持つ回転ゲートの数 (事前レイアウト)。
logical_counts_rotation_depth string メトリック サフィックスを持つ回転深度 (事前レイアウト)。
logical_counts_ccz_count string メトリック サフィックスを持つ CCZ ゲート (事前レイアウト) の数。
logical_counts_ccix_count string メトリック サフィックスを持つ CCiX ゲート (事前レイアウト) の数。
logical_counts_measurement_count string メトリック サフィックスを持つ単一量子ビット測定 (事前レイアウト) の数。
error_budget string 切り捨てられた合計エラー予算。
error_budget_logical string 論理エラーのエラー予算が切り捨てられました。
error_budget_tstates string エラーが発生した T 状態蒸留のエラー予算が切り捨てられました。
error_budget_rotations string 誤った回転合成のエラー予算が切り捨てられました。
num_ts_per_rotation string 回転あたりの書式設定された Ts 数 (None の場合があります)。

論理量子ビット

ディクショナリには logical_qubit 、次のエントリが含まれています。

出力パラメーター データの種類 説明
code_distance 数値 論理量子ビットの計算されたコード距離。
physical_qubits 数値 各論理量子ビットの物理量子ビットの数。
logical_cycle_time 数値 1 つの論理操作を実行する時間。
logical_error_rate 数値 論理量子ビットの論理エラー 率。

論理カウント

ディクショナリには logical_counts 、次のエントリが含まれています。

出力パラメーター データの種類 説明
num_qubits 数値 事前レイアウトの量子ビット数。
t_count 数値 レイアウト前の T ゲートの数。
rotation_count 数値 回転ゲートのレイアウト前の数。
rotation_depth 数値 レイアウト前の回転深度。
ccz_count 数値 CCZ ゲートのレイアウト前数。
ccix_count 数値 CCiX ゲートのレイアウト前数。
measurement_count 数値 単一量子ビット測定の事前レイアウト数。

空間図

全体的な物理リソース推定は、アルゴリズムと T ファクトリ コピーの両方に使用される物理量子ビットの合計数で構成されます。 空間図を使用して、これら 2 つの間の分布を調べることができます。

空間図は、アルゴリズムと T ファクトリに使用される物理量子ビットの割合を 示しています。 T ファクトリのコピーの数は、T ファクトリの物理量子ビットの数にカウントされることに注意してください。

Jupyter Notebook では、パッケージのウィジェットを使用して SpaceChart 空間図に qsharp-widgets アクセスできます。

import qsharp

from qsharp_widgets import SpaceChart
SpaceChart(result)

アルゴリズム量子ビットと T ファクトリ量子ビットの間の物理量子ビットの合計分布を示す円グラフ。T ファクトリのコピー数と T ファクトリあたりの物理量子ビット数の内訳を含むテーブルがあります。

パレートフロンティア推定を使用して複数のtargetパラメータ構成を実行する場合、特定の解の空間図をプロットすることができます。 たとえば、次のコードは、パラメーターの最初の構成と 3 番目に短いランタイムの空間図をプロットする方法を示しています。

SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime

時空間図

量子コンピューティングでは、物理量子ビットの数とアルゴリズムのランタイムの間にトレードオフがあります。 アルゴリズムの実行時間を短縮するために、可能な限り多くの物理量子ビットの割り当てを検討できます。 ただし、物理量子ビットの数は、量子ハードウェアで使用可能な物理量子ビットの数によって制限されます。 ランタイムとシステムスケールのトレードオフを理解することは、リソース推定の最も重要な側面の 1 つです。

アルゴリズムのリソースを推定するときは、時空間図を使用して、物理量子ビットの数とアルゴリズムのランタイムの間のトレードオフを視覚化できます。

Note

空間時間図で複数の最適な組み合わせを確認するには、推定の種類をパレートフロンティア推定に設定する必要があります。 Visual Studio Code で [リソース見積もりの計算] Q#オプションを使用してリソース推定 を実行すると、Pareto フロンティア推定が既定で有効になります。

時空間図を使用すると、量子ハードウェアの制約を満たす {量子ビット数とランタイム} ペアの最適な組み合わせを見つけることができます。 この図は、物理量子ビットの数と、各 {量子ビット数、ランタイム} ペアのアルゴリズムのランタイムを示しています。

Jupyter Notebook で時空間図を実行するには、パッケージのウィジェットをEstimatesOverviewqsharp-widgets使用します。

import qsharp

from qsharp_widgets import EstimatesOverview

EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])

リソース推定器の量子ビット時間図を示すスクリーンショット。

ヒント

見積もりの詳細を表示するには、図の各ポイントにマウス ポインターを合わせます。

時空間図は、同じアルゴリズムのパラメーターの複数の target 構成を比較する場合に特に便利です。

Resource Estimator でパラメーターの複数の構成を実行するときの、時空間図と結果のテーブルを示すスクリーンショット。

Note

リソース推定ツールの使用中に問題が発生した場合は、[トラブルシューティング] ページチェックするか、お問い合わせくださいAzureQuantumInfo@microsoft.com

次のステップ