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

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

前提条件

出力パラメーター

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

result['job_params']

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

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

物理カウント

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

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

物理カウントの内訳

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

出力パラメーター データ型 説明
algorithmic_logical_qubits number アルゴリズムの実行に必要な論理量子ビットであり、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 実数 量子ビット パラメーターに基づく Clifford エラー率。

物理カウントの書式設定

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

出力パラメーター データ型 説明
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 number 論理量子ビットの計算されたコード距離。
physical_qubits 実数 各論理量子ビットの物理量子ビットの数。
logical_cycle_time 実数 1 つの論理操作を実行する時間。
logical_error_rate 実数 論理量子ビットの論理エラー率。

論理カウント

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

出力パラメーター データ型 説明
num_qubits number 事前レイアウトの量子ビット数。
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 つです。

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

注意

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

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

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 でパラメーターの複数の構成を実行するときの、時空の図と結果のテーブルを示すスクリーンショット。

注意

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

次の手順