リソース推定器の結果データについて
Resource Estimator の出力パラメーターとダイアグラムを解釈して取得する方法について説明します。 この記事では、Jupyter Notebooks のリソース推定ツールの結果にプログラムでアクセスする方法について説明します。 コマンド パレットから Visual Studio Code でリソース推定ツールを実行した場合、次のコマンドは適用されません。
前提条件
Python と Pip がインストールされた Python 環境。
最新バージョンの Visual Studio Code または VS Code on the Web を開きます。
Azure Quantum Development Kit、Python、および Jupyter 拡張機能がインストールされている VS Code。
最新の Azure Quantum
qsharp
とqsharp-widgets
パッケージ。python -m pip install --upgrade qsharp qsharp-widgets
出力パラメーター
Resource Estimator の出力データは、コンソールに出力され、プログラムからアクセスできるレポートです。 たとえば、次のコード スニペットは、リソース推定パラメーターにアクセスする方法を示しています。
result['jobParams']
次の出力データは、プログラムでアクセスできるエントリを構成します。
最上位レベルの出力パラメーター | データの種類 | Description |
---|---|---|
status |
string | ジョブの状態は、常に Succeeded 。 |
jobParams |
ディクショナリ | 入力として渡されるジョブの target パラメーター。 |
physicalCounts |
ディクショナリ | 物理リソースの見積もり。 詳細については、「 Physical countsを参照してください。 |
physicalCountsFormatted |
ディクショナリ | レポート データに表示する形式の物理リソース見積もり。 詳細については、「 Physical counts formatted」を参照してください。 |
logicalQubit |
ディクショナリ | 論理量子ビット プロパティ。 詳細については、「 Logical 量子ビット」を参照してください。 |
tfactory |
ディクショナリ | T ファクトリのプロパティ。 |
logicalCounts |
ディクショナリ | レイアウト前の論理リソースの見積もり。 詳細については、「 Logical counts」を参照してください。 |
reportData |
ディクショナリ | リソース推定レポートの生成データ。 |
物理カウント
physicalCounts
ディクショナリには、次のエントリが含まれています。
出力パラメーター | データの種類 | 説明 |
---|---|---|
physicalQubits |
数値 | 物理量子ビットの合計数。 |
runtime |
数値 | アルゴリズムを実行する合計ランタイム (ナノ秒単位)。 |
rqops |
数値 | 1 秒あたりの信頼性の高い量子操作の数 (QOPS)。 |
breakdown |
ディクショナリ | 見積もりの内訳。 詳細については、「 Physical counts breakdown」を参照してください。 |
物理カウントの内訳
physicalCounts
のbreakdown
ディクショナリには、次のエントリが含まれています。
出力パラメーター | データの種類 | 説明 |
---|---|---|
algorithmicLogicalQubits |
数値 | アルゴリズムの実行に必要な論理量子ビット。T ファクトリのリソースは含まれません。 |
algorithmicLogicalDepth |
数値 | アルゴリズムの実行に必要な論理サイクル。T ファクトリのリソースは含まれません。 |
logicalDepth |
数値 | T ファクトリの実行時間が速くなり、アルゴリズムの実行が速くなるたびに計算される、調整された可能性のあるサイクル数。 |
numTstates |
数値 | アルゴリズムによって使用される T 状態の数。 |
clockFrequency |
数値 | 1 秒あたりの論理サイクル数。 |
numTfactories |
数値 | T ファクトリの数 (統一された T ファクトリ設計を想定)。 |
numTfactoryRuns |
数値 | すべての並列 T ファクトリを実行する頻度の数。 |
physicalQubitsForTfactories |
数値 | すべての T ファクトリの物理量子ビットの数。 |
physicalQubitsForAlgorithm |
数値 | アルゴリズム レイアウトの物理量子ビットの数。 |
requiredLogicalQubitErrorRate |
数値 | 必要な論理エラー率。 |
requiredLogicalTstateErrorRate |
数値 | 必要な論理 T 状態エラー率。 |
numTsPerRotation |
数値 | 回転あたりの T ゲートの数。 |
cliffordErrorRate |
数値 | 量子ビット パラメーターに基づくクリフォード エラー率。 |
物理カウントの書式設定
physicalCountsFormatted
ディクショナリには、次のエントリが含まれています。
出力パラメーター | データの種類 | Description |
---|---|---|
runtime |
string | 人間に優しい文字列としての合計ランタイム。 |
rqops |
string | メトリック サフィックスで書式設定された 1 秒あたりの信頼性の高い量子操作 (QOPS) の数。 |
physicalQubits |
string | メトリック サフィックスを持つ物理量子ビットの合計数。 |
algorithmicLogicalQubits |
string | メトリック サフィックスを持つアルゴリズム論理量子ビット。 |
algorithmicLogicalDepth |
string | メトリック サフィックスを持つアルゴリズムの論理深さ。 |
logicalDepth |
string | メトリック サフィックスを使用してアルゴリズムの論理深さを調整した可能性があります。 |
numTstates |
string | メトリック サフィックスを持つ T 状態の数。 |
numTfactories |
string | メトリック サフィックスを持つ T ファクトリ コピーの数。 |
numTfactoryRuns |
string | メトリック サフィックスを持つ T ファクトリ実行の数。 |
physicalQubitsForAlgorithm |
string | メトリック サフィックスを持つアルゴリズムの物理量子ビットの数。 |
physicalQubitsForTfactories |
string | メトリック サフィックスを持つ T ファクトリの物理量子ビットの数。 |
physicalQubitsForTfactoriesPercentage |
string | すべての T ファクトリの物理量子ビットの数 (合計に対する割合)。 |
requiredLogicalQubitErrorRate |
string | 必要な論理量子ビット エラー 率が切り捨てられました。 |
requiredLogicalTstateErrorRate |
string | 切り捨てられた必要な T 状態エラー率。 |
physicalQubitsPerLogicalQubit |
string | メトリック サフィックスを持つ論理量子ビットあたりの物理量子ビット数。 |
logicalCycleTime |
string | 人間に優しい文字列としての論理量子ビットの論理サイクル時間。 |
clockFrequency |
string | 人間に優しい文字列としての 1 秒あたりの論理サイクル数。 |
logicalErrorRate |
string | 論理的なエラー率が切り捨てられました。 |
tfactoryPhysicalQubits |
string | メトリック サフィックス (または T ファクトリが存在しないことを示すメッセージ) を持つ T ファクトリ内の物理量子ビットの数。 |
tfactoryRuntime |
string | 人間に優しい文字列 (または T ファクトリがないことを示すメッセージ) としての単一の T ファクトリのランタイム。 |
numInputTstates |
string | 入力 T 状態の数 (または T ファクトリがないことを示すメッセージ)。 |
numUnitsPerRound |
string | 蒸留ラウンドあたりの単位数。文字列で区切られたコンマ (または T ファクトリがないことを示すメッセージ)。 |
unitNamePerRound |
string | 各蒸留ラウンドの単位名。文字列で区切られたコンマ (または T ファクトリがないことを示すメッセージ)。 |
codeDistancePerRound |
string | 蒸留ラウンドごとのコード距離。文字列でコンマ区切り (または T ファクトリがないことを示すメッセージ)。 |
physicalQubitsPerRound |
string | 蒸留ラウンドあたりの物理量子ビット数。文字列でコンマ区切り (または T ファクトリがないことを示すメッセージ)。 |
tfactoryRuntimePerRound |
string | 各蒸留ラウンドの実行時間。コンマ区切りの人間に優しい文字列 (または T ファクトリがないことを示すメッセージ) として表示されます。 |
tstateLogicalErrorRate |
string | 切り捨てられた論理 T 状態エラー 率 (または T ファクトリがないことを示すメッセージ)。 |
logicalCountsNumQubits |
string | メトリック サフィックスを持つ量子ビットの数 (事前レイアウト)。 |
logicalCountsTCount |
string | メトリック サフィックスを持つ T ゲートの数 (事前レイアウト)。 |
logicalCountsRotationCount |
string | メトリック サフィックスを持つ回転ゲートの数 (事前レイアウト)。 |
logicalCountsRotationDepth |
string | メトリック サフィックスを持つ回転深度 (事前レイアウト)。 |
logicalCountsCczCount |
string | メトリック サフィックスを持つ CCZ ゲート (事前レイアウト) の数。 |
logicalCountsCcixCount |
string | メトリック サフィックスを持つ CCiX ゲート (事前レイアウト) の数。 |
logicalCountsMeasurementCount |
string | メトリック サフィックスを持つ単一量子ビット測定 (事前レイアウト) の数。 |
errorBudget |
string | 切り捨てられた合計エラー予算。 |
errorBudgetLogical |
string | 論理エラーのエラー予算が切り捨てられました。 |
errorBudgetTstates |
string | エラーが発生した T 状態蒸留のエラー予算が切り捨てられました。 |
errorBudgetRotations |
string | 誤った回転合成のエラー予算が切り捨てられました。 |
numTsPerRotation |
string | 回転あたりの書式設定された Ts 数 (None の場合があります)。 |
論理量子ビット
logicalQubit
ディクショナリには、次のエントリが含まれています。
出力パラメーター | データの種類 | 説明 |
---|---|---|
codeDistance |
数値 | 論理量子ビットの計算されたコード距離。 |
physicalQubits |
数値 | 各論理量子ビットの物理量子ビットの数。 |
logicalCycleTime |
数値 | 1 つの論理操作を実行する時間。 |
logicalErrorRate |
数値 | 論理量子ビットの論理エラー 率。 |
論理カウント
logicalCounts
ディクショナリには、次のエントリが含まれています。
出力パラメーター | データの種類 | 説明 |
---|---|---|
numQubits |
数値 | 事前レイアウトの量子ビット数。 |
tCount |
数値 | レイアウト前の T ゲートの数。 |
rotationCount |
数値 | 回転ゲートのレイアウト前の数。 |
rotationDepth |
数値 | レイアウト前の回転深度。 |
cczCount |
数値 | CCZ ゲートのレイアウト前数。 |
ccixCount |
数値 | CCiX ゲートのレイアウト前数。 |
measurementCount |
数値 | 単一量子ビット測定の事前レイアウト数。 |
ヒント
リソース見積もりジョブに対して事前に計算された論理カウントのセットを使用する場合は、 LogicalCounts
Python 操作を使用して、既知の見積もりをリソース推定器に渡すことができます。 詳細については、「 リソース推定ツールで既知の見積もりを使用する方法を参照してください。
空間図
全体的な物理リソース推定は、アルゴリズムと T ファクトリ コピーの両方に使用される物理量子ビットの合計数で構成されます。 空間図を使用して、これら 2 つの間の分布を調べることができます。
空間図は、アルゴリズムと T ファクトリに使用される物理量子ビットの割合を示しています。 T ファクトリのコピーの数は、T ファクトリの物理量子ビットの数にカウントされることに注意してください。
Jupyter Notebook では、qsharp-widgets
パッケージの SpaceChart
ウィジェットを使用して、空間ダイアグラムにアクセスできます。
import qsharp
from qsharp_widgets import SpaceChart
SpaceChart(result)
Pareto フロンティア推定を使用してtargetパラメーターの複数の構成を実行する場合の特定のソリューションの空間図をプロットできます。 たとえば、次のコードは、パラメーターの最初の構成と 3 番目に短いランタイムの空間図をプロットする方法を示しています。
SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime
時空間図
量子コンピューティングでは、物理量子ビットの数とアルゴリズムのランタイムの間にトレードオフがあります。 アルゴリズムの実行時間を短縮するために、可能な限り多くの物理量子ビットの割り当てを検討できます。 ただし、物理量子ビットの数は、量子ハードウェアで使用可能な物理量子ビットの数によって制限されます。 ランタイムとシステムスケールのトレードオフを理解することは、リソース推定の最も重要な側面の 1 つです。
アルゴリズムのリソースを推定するときは、時空間図を使用して、物理量子ビットの数とアルゴリズムのランタイムの間のトレードオフを視覚化できます。
Note
空間時間図で複数の最適な組み合わせを確認するには、推定の種類を Pareto フロンティア推定に設定する必要があります。 Q#: [リソース見積もりの計算] オプションを使用して Visual Studio Code でリソース推定を実行すると、既定でパレートフロンティア推定が有効になります。
時空間図を使用すると、量子ハードウェアの制約を満たす {量子ビット数とランタイム} ペアの最適な組み合わせを見つけることができます。 この図は、物理量子ビットの数と、各 {量子ビット数、ランタイム} ペアのアルゴリズムのランタイムを示しています。
Jupyter Notebook で時空間図を実行するには、qsharp-widgets
パッケージのEstimatesOverview
ウィジェットを使用します。
import qsharp
from qsharp_widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
ヒント
見積もりの詳細を表示するには、図の各ポイントにマウス ポインターを合わせます。
時空間図は、同じアルゴリズムに対して target パラメーターの複数の構成を比較する場合に特に便利です。
Note
リソース推定ツールの使用中に問題が発生した場合は、 トラブルシューティング ページを確認するか、 AzureQuantumInfo@microsoft.comにお問い合わせください。