了解資源估算器的結果數據
瞭解如何解譯和擷取資源估算器的輸出參數和圖表。 本文說明如何以程序設計方式存取 Jupyter Notebook 中資源估算器的結果。 如果您從命令選擇區在 Visual Studio Code 中執行資源估算器,則不適用下列命令。
必要條件
已安裝 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
輸出參數
資源估算器的輸出數據是在控制台中列印且可透過程序設計方式存取的報表。 例如,下列代碼段示範如何存取資源估計參數。
result['jobParams']
下列輸出數據構成可透過程序設計方式存取的可能專案。
最上層輸出參數 | 資料類型 | 描述 |
---|---|---|
status |
字串 | 工作的狀態,一律 Succeeded 為 。 |
jobParams |
字典 | target做為輸入傳遞之作業的參數。 |
physicalCounts |
字典 | 實體資源估計值。 如需詳細資訊,請參閱 實體計數。 |
physicalCountsFormatted |
字典 | 格式化為在報表數據中顯示的實體資源估計值。 如需詳細資訊,請參閱 格式化的實體計數。 |
logicalQubit |
字典 | 邏輯量子位屬性。 如需詳細資訊,請參閱 邏輯量子位。 |
tfactory |
字典 | T Factory 屬性。 |
logicalCounts |
字典 | 預先配置邏輯資源估計值。 如需詳細資訊,請參閱 邏輯計數。 |
reportData |
字典 | 資源估計報告的產生數據。 |
實體計數
字典 physicalCounts
包含下列專案:
輸出參數 | 資料類型 | 描述 |
---|---|---|
physicalQubits |
數值 | 實體量子位的總數。 |
runtime |
數值 | 要在 nanoseconds 中執行演算法的總運行時間。 |
rqops |
數值 | 每秒可靠的量子作業數目(QOPS)。 |
breakdown |
字典 | 估計值的細目。 如需詳細資訊,請參閱 實體計數明細。 |
實體計數明細
的breakdown
physicalCounts
字典包含下列專案:
輸出參數 | 資料類型 | 描述 |
---|---|---|
algorithmicLogicalQubits |
數值 | 執行演算法所需的邏輯量子位,且不包含 T Factory 的資源。 |
algorithmicLogicalDepth |
數值 | 執行演算法所需的邏輯迴圈,且不包含 T Factory 的資源。 |
logicalDepth |
數值 | 每當 T Factory 執行時間比演算法執行更快時計算的可能調整週期數目。 |
numTstates |
數值 | 演算法所取用的 T 狀態數目。 |
clockFrequency |
數值 | 每秒的邏輯週期數目。 |
numTfactories |
數值 | T Factory 的數目(假設統一 T 工廠設計)。 |
numTfactoryRuns |
數值 | 所有平行 T Factory 應該執行的頻率數目。 |
physicalQubitsForTfactories |
數值 | 所有 T Factory 的實體量子位數目。 |
physicalQubitsForAlgorithm |
數值 | 演算法配置的實體量子位數目。 |
requiredLogicalQubitErrorRate |
數值 | 所需的邏輯錯誤率。 |
requiredLogicalTstateErrorRate |
數值 | 必要的邏輯 T 狀態錯誤率。 |
numTsPerRotation |
數值 | 每個旋轉的 T 閘道數目。 |
cliffordErrorRate |
數值 | 根據量子位參數的 Clifford 錯誤率。 |
格式化的實體計數
字典 physicalCountsFormatted
包含下列專案:
輸出參數 | 資料類型 | 描述 |
---|---|---|
runtime |
字串 | 運行時間總計為人類易記字串。 |
rqops |
字串 | 以計量後綴格式化的每秒可靠量子作業數目(QOPS)。 |
physicalQubits |
字串 | 具有計量後綴的實體量子位總數。 |
algorithmicLogicalQubits |
字串 | 具有計量後綴的演演算法邏輯量子位。 |
algorithmicLogicalDepth |
字串 | 具有計量後綴的演演算法邏輯深度。 |
logicalDepth |
字串 | 可能已調整演算法邏輯深度與計量後綴。 |
numTstates |
字串 | 具有計量後綴的 T 狀態數目。 |
numTfactories |
字串 | 具有計量後綴的 T Factory 複本數目。 |
numTfactoryRuns |
字串 | 具有計量後綴的 T Factory 執行數目。 |
physicalQubitsForAlgorithm |
字串 | 具有計量後綴之演算法的實體量子位數目。 |
physicalQubitsForTfactories |
字串 | 具有計量後綴之 T Factory 的實體量子位數目。 |
physicalQubitsForTfactoriesPercentage |
字串 | 所有 T Factory 的實體量子位數目,以百分比表示總計。 |
requiredLogicalQubitErrorRate |
字串 | 截斷必要的邏輯量子位錯誤率。 |
requiredLogicalTstateErrorRate |
字串 | 截斷必要的 T 狀態錯誤率。 |
physicalQubitsPerLogicalQubit |
字串 | 每個邏輯量子位具有計量後綴的實體量子位數目。 |
logicalCycleTime |
字串 | 邏輯量子位作為人類易記字串的邏輯周期時間。 |
clockFrequency |
字串 | 每秒作為人類易記字串的邏輯迴圈數目。 |
logicalErrorRate |
字串 | 截斷邏輯錯誤率。 |
tfactoryPhysicalQubits |
字串 | T Factory 中具有計量後綴的實體量子位數目(或沒有 T Factory 的訊息)。 |
tfactoryRuntime |
字串 | 單一 T 處理站的運行時間做為人類易記字串(或沒有 T Factory 的訊息)。 |
numInputTstates |
字串 | 輸入 T 狀態的數目(或沒有 T Factory 的訊息)。 |
numUnitsPerRound |
字串 | 每個釀酒回合的單位數目、以字串分隔的逗號(或沒有 T Factory 的訊息)。 |
unitNamePerRound |
字串 | 每個釀酒回合的單位名稱,以逗號分隔在字串中(或沒有 T Factory 的訊息)。 |
codeDistancePerRound |
字串 | 每個釀酒回合的程式代碼距離、以字串分隔的逗號(或沒有 T Factory 的訊息)。 |
physicalQubitsPerRound |
字串 | 每個釀酒回合的實體量子位數目、以字串分隔的逗號(或沒有 T Factory 的訊息)。 |
tfactoryRuntimePerRound |
字串 | 每個釀酒回合的運行時間,顯示為逗號分隔的人類易記字串(或沒有 T Factory 的訊息)。 |
tstateLogicalErrorRate |
字串 | 截斷邏輯 T 狀態錯誤率(或沒有 T Factory 的訊息)。 |
logicalCountsNumQubits |
字串 | 具有計量後綴的量子位數(預先配置)。 |
logicalCountsTCount |
字串 | 具有計量後綴的 T 閘道數目(預先配置)。 |
logicalCountsRotationCount |
字串 | 具有計量後綴的旋轉門數(預先配置)。 |
logicalCountsRotationDepth |
字串 | 具有計量後綴的旋轉深度(預先配置)。 |
logicalCountsCczCount |
字串 | 具有計量後綴的CCZ門數(預先配置)。 |
logicalCountsCcixCount |
字串 | 具有計量後綴的 CCiX 閘道數目(預先配置)。 |
logicalCountsMeasurementCount |
字串 | 具有計量後綴的單一量子位度量數目(預先配置)。 |
errorBudget |
字串 | 截斷的總錯誤預算。 |
errorBudgetLogical |
字串 | 邏輯錯誤的截斷錯誤預算。 |
errorBudgetTstates |
字串 | 錯誤 T 狀態釀酒的截斷錯誤預算。 |
errorBudgetRotations |
字串 | 錯誤旋轉合成的錯誤預算已截斷。 |
numTsPerRotation |
字串 | 每個旋轉的格式化 T 數目(可能是 None)。 |
邏輯量子位
字典 logicalQubit
包含下列專案:
輸出參數 | 資料類型 | 描述 |
---|---|---|
codeDistance |
數值 | 邏輯量子位的計算程式代碼距離。 |
physicalQubits |
數值 | 每個邏輯量子位的實體量子位數目。 |
logicalCycleTime |
數值 | 執行一個邏輯作業的時間。 |
logicalErrorRate |
數值 | 邏輯量子位的邏輯錯誤率。 |
邏輯計數
字典 logicalCounts
包含下列專案:
輸出參數 | 資料類型 | 描述 |
---|---|---|
numQubits |
數值 | 量子位的預先配置數目。 |
tCount |
數值 | T 閘道的預先配置數目。 |
rotationCount |
數值 | 旋轉門的預先配置數目。 |
rotationDepth |
數值 | 預先配置旋轉深度。 |
cczCount |
數值 | CCZ 門的預先配置數目。 |
ccixCount |
數值 | CCiX 閘道的預先配置數目。 |
measurementCount |
數值 | 單一量子位測量的預先配置數目。 |
提示
如果您想要針對資源估計作業使用預先計算的邏輯計數集,您可以使用 LogicalCounts
Python 作業將已知的估計值傳遞至資源估算器。 如需詳細資訊,請參閱 如何搭配資源估算器使用已知的估計值。
空間圖
整體實體資源估計是由演算法和 T Factory 複本所使用的實體量子位總數所組成。 您可以使用空格圖來檢查這兩者之間的分佈。
空間圖顯示演算法和 T Factory 所使用的實體量子位比例。 請注意,T Factory 複本數目會為 T Factory 的實體量子位數目做出貢獻。
在 Jupyter Notebook 中,您可以使用套件中的SpaceChart
qsharp-widgets
小工具來存取空間圖表。
import qsharp
from qsharp_widgets import SpaceChart
SpaceChart(result)
使用 Pareto 邊界估計執行多個參數位態target時,您可以繪製特定解決方案的空間圖表。 例如,下列程式代碼示範如何繪製參數第一個組態的空間圖表和第三個最短運行時間。
SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime
時空圖表
在量子運算中,實體量子位數目與演算法運行時間之間會有取捨。 您可以考慮盡可能配置盡可能多的實體量子位,以減少演算法的運行時間。 不過,實體量子位的數目會受限於量子硬體中可用的實體量子位數目。 瞭解運行時間與系統規模之間的取捨是資源估計最重要的層面之一。
在估計演算法的資源時,您可以使用時空圖表,將實體量子位數目與演算法運行時間之間的取捨可視化。
注意
若要查看空間時程圖表中的多個最佳組合,您必須將估計類型設定為 Pareto 邊際估計。 如果您使用 :計算資源估計選項在 Visual Studio Code Q#中執行資源估算器,則預設會啟用 Pareto 邊界估計。
時空圖表可讓您找出滿足量子硬體條件約束之 {number of qubits, runtime} 配對的最佳組合。 此圖顯示每個 {量子位、runtime} 組之演演算法的實體量子位數目和運行時間。
若要在 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 時,時空圖表特別有用。
注意
如果您在使用資源估算器時遇到任何問題,請參閱 疑難解答頁面,或連絡 AzureQuantumInfo@microsoft.com。