リソース推定器の結果データを理解する
Resource Estimator の出力パラメーターとダイアグラムを解釈して取得する方法について説明します。 この記事では、Jupyter Notebooks の Resource Estimator の結果にプログラムでアクセスする方法について説明します。 コマンド パレットから Visual Studio Code で Resource Estimator を実行した場合、次のコマンドは適用されません。
前提条件
Python と Pip がインストールされている Python 環境。
最新バージョンの Visual Studio Code または WEB 上の VS Code を開きます。
Azure Quantum Development Kit、Python、Jupyter 拡張機能がインストールされた VS Code。
最新の Azure Quantum
qsharp
とqsharp-widgets
パッケージ。python -m pip install --upgrade qsharp qsharp-widgets
出力パラメーター
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)
パレート フロンティア推定を使用してパラメーターの複数の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で時空図を実行するには、パッケージのウィジェットをEstimatesOverview
qsharp-widgets
使用します。
import qsharp
from qsharp_widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
ヒント
見積もりの詳細を表示するには、図の各ポイントにマウス ポインターを合わせます。
時空間図は、同じアルゴリズムのパラメーターの複数の target 構成を比較する場合に特に便利です。
注意
Resource Estimator の使用中に問題が発生した場合は、[トラブルシューティング] ページをチェックするか、 にお問い合わせくださいAzureQuantumInfo@microsoft.com。
次の手順
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示