Förstå resultatdata för Resource Estimator
Lär dig hur du tolkar och hämtar utdataparametrar och diagram för Resource Estimator. Den här artikeln beskriver hur du programmatiskt kommer åt resultatet av Resource Estimator i Jupyter Notebooks. Om du kör Resource Estimator i Visual Studio Code från kommandopaletten gäller inte följande kommandon.
Förutsättningar
En Python-miljö med Python och Pip installerade.
Den senaste versionen av Visual Studio Code eller öppna VS Code på webben.
VS Code med Tilläggen Azure Quantum Development Kit, Python och Jupyter installerade.
De senaste Azure Quantum
qsharp
ochqsharp-widgets
paketen.python -m pip install --upgrade qsharp qsharp-widgets
Utdataparametrar
Utdata för Resource Estimator är en rapport som skrivs ut i konsolen och som kan nås programmatiskt. Följande kodfragment visar till exempel hur du kommer åt parametrarna för resursuppskattning.
result['jobParams']
Följande utdata utgör de möjliga poster som kan kommas åt programmatiskt.
Utdataparameter på toppnivå | Datatyp | beskrivning |
---|---|---|
status |
sträng | Jobbets status är alltid Succeeded . |
jobParams |
ordbok | Parametrarna target för jobbet som skickas som indata. |
physicalCounts |
ordbok | Uppskattningar av den fysiska resursen. Mer information finns i Fysiska antal. |
physicalCountsFormatted |
ordbok | De fysiska resursuppskattningar som är formaterade för visning i rapportdata. Mer information finns i Formaterade fysiska antal. |
logicalQubit |
ordbok | De logiska qubitegenskaperna. Mer information finns i Logisk qubit. |
tfactory |
ordbok | Egenskaperna för T-fabriken. |
logicalCounts |
ordbok | Uppskattningar av den logiska resursen före layouten. Mer information finns i Logiska antal. |
reportData |
ordbok | Genereringsdata för resursuppskattningsrapport. |
Fysiskt antal
Ordlistan physicalCounts
innehåller följande poster:
Utdataparameter | Datatyp | beskrivning |
---|---|---|
physicalQubits |
Nummer | Det totala antalet fysiska kvantbitar. |
runtime |
Nummer | Den totala körningen för att köra algoritmen i nanosekunder. |
rqops |
Nummer | Antalet tillförlitliga kvantåtgärder per sekund (QOPS). |
breakdown |
ordbok | Uppdelning av uppskattningar. Mer information finns i Uppdelning av fysiskt antal. |
Uppdelning av fysiskt antal
Ordlistan breakdown
physicalCounts
innehåller följande poster:
Utdataparameter | Datatyp | beskrivning |
---|---|---|
algorithmicLogicalQubits |
Nummer | De logiska kvantbitar som krävs för att köra algoritmen och inkluderar inte resurser för T-fabriker. |
algorithmicLogicalDepth |
Nummer | De logiska cykler som krävs för att köra algoritmen och inkluderar inte resurser för T-fabriker. |
logicalDepth |
Nummer | Det eventuellt justerade antalet cykler som beräknas när körningstiden för T-fabriken är snabbare än algoritmkörningen. |
numTstates |
Nummer | Antalet T-tillstånd som förbrukas av algoritmen. |
clockFrequency |
Nummer | Antalet logiska cykler per sekund. |
numTfactories |
Nummer | Antalet T-fabriker (förutsatt enhetlig T-fabriksdesign). |
numTfactoryRuns |
Nummer | Antalet hur ofta alla parallella T-fabriker ska köras. |
physicalQubitsForTfactories |
Nummer | Antalet fysiska kvantbitar för alla T-fabriker. |
physicalQubitsForAlgorithm |
Nummer | Antalet fysiska kvantbitar för algoritmlayout. |
requiredLogicalQubitErrorRate |
Nummer | Den obligatoriska logiska felfrekvensen. |
requiredLogicalTstateErrorRate |
Nummer | Den obligatoriska logiska T-tillståndsfelfrekvensen. |
numTsPerRotation |
Nummer | Antalet T-portar per rotation. |
cliffordErrorRate |
Nummer | Clifford-felfrekvensen baserat på kvantbitsparametrarna. |
Formaterade fysiska antal
Ordlistan physicalCountsFormatted
innehåller följande poster:
Utdataparameter | Datatyp | beskrivning |
---|---|---|
runtime |
sträng | Total körning som mänskligt vänlig sträng. |
rqops |
sträng | Antalet tillförlitliga kvantåtgärder per sekund (QOPS) formaterade med måttsuffix. |
physicalQubits |
sträng | Totalt antal fysiska kvantbitar med måttsuffix. |
algorithmicLogicalQubits |
sträng | Algoritmiska logiska kvantbitar med måttsuffix. |
algorithmicLogicalDepth |
sträng | Algoritmiskt logiskt djup med måttsuffix. |
logicalDepth |
sträng | Möjligen justerat algoritmiskt logiskt djup med måttsuffix. |
numTstates |
sträng | Antal T-tillstånd med måttsuffix. |
numTfactories |
sträng | Antal T-fabrikskopior med måttsuffix. |
numTfactoryRuns |
sträng | Antal T-fabrikskörningar med måttsuffix. |
physicalQubitsForAlgorithm |
sträng | Antal fysiska kvantbitar för algoritm med måttsuffix. |
physicalQubitsForTfactories |
sträng | Antal fysiska kvantbitar för T-fabriker med måttsuffix. |
physicalQubitsForTfactoriesPercentage |
sträng | Antalet fysiska kvantbitar för alla T-fabriker i procent till totalt. |
requiredLogicalQubitErrorRate |
sträng | Trunkerade nödvändig logisk kvantbitsfelfrekvens. |
requiredLogicalTstateErrorRate |
sträng | Trunkerad felfrekvens för T-tillstånd. |
physicalQubitsPerLogicalQubit |
sträng | Antal fysiska kvantbitar per logisk qubit med måttsuffix. |
logicalCycleTime |
sträng | Den logiska cykeltiden för en logisk qubit som mänskligt vänlig sträng. |
clockFrequency |
sträng | Antalet logiska cykler per sekund som en mänsklig vänlig sträng. |
logicalErrorRate |
sträng | Trunkerad logisk felfrekvens. |
tfactoryPhysicalQubits |
sträng | Antal fysiska kvantbitar i T-fabriken med måttsuffix (eller meddelande om att det inte finns någon T-fabrik). |
tfactoryRuntime |
sträng | Körningen av en enda T-fabrik som mänskligt vänlig sträng (eller meddelande om att det inte finns någon T-fabrik). |
numInputTstates |
sträng | Antalet indata-T-tillstånd (eller meddelande om att det inte finns någon T-fabrik). |
numUnitsPerRound |
sträng | Antalet enheter per destillationsrunda, kommaavgränsat i en sträng (eller meddelande om att det inte finns någon T-fabrik). |
unitNamePerRound |
sträng | Enhetsnamnen för varje destillationsrunda, kommaavgränsade i en sträng (eller meddelande om att det inte finns någon T-fabrik). |
codeDistancePerRound |
sträng | Kodavstånden per destillationsrunda, kommaavgränsade i en sträng (eller meddelande om att det inte finns någon T-fabrik). |
physicalQubitsPerRound |
sträng | Antalet fysiska kvantbitar per destillationsrunda, kommaavgränsat i en sträng (eller meddelande om att det inte finns någon T-fabrik). |
tfactoryRuntimePerRound |
sträng | Körningen av varje destillationsrunda, som visas som kommaavgränsade mänskliga vänliga strängar (eller meddelande om att det inte finns någon T-fabrik). |
tstateLogicalErrorRate |
sträng | Felfrekvens för trunkerat logiskt T-tillstånd (eller meddelande om att det inte finns någon T-fabrik). |
logicalCountsNumQubits |
sträng | Antal kvantbitar (förlayout) med måttsuffix. |
logicalCountsTCount |
sträng | Antal T-portar (förlayout) med måttsuffix. |
logicalCountsRotationCount |
sträng | Antal rotationsportar (förlayout) med måttsuffix. |
logicalCountsRotationDepth |
sträng | Rotationsdjup (förlayout) med måttsuffix. |
logicalCountsCczCount |
sträng | Antal CCZ-portar (förlayout) med måttsuffix. |
logicalCountsCcixCount |
sträng | Antal CCiX-portar (förlayout) med måttsuffix. |
logicalCountsMeasurementCount |
sträng | Antal mått med en kvantbit (förlayout) med måttsuffix. |
errorBudget |
sträng | Trunkerad total felbudget. |
errorBudgetLogical |
sträng | Trunkerad felbudget för logiskt fel. |
errorBudgetTstates |
sträng | Trunkerad felbudget för felaktig destillation av T-tillstånd. |
errorBudgetRotations |
sträng | Trunkerad felbudget för felaktig rotationssyntes. |
numTsPerRotation |
sträng | Formaterat antal T per rotation (kan vara Ingen). |
Logisk qubit
Ordlistan logicalQubit
innehåller följande poster:
Utdataparameter | Datatyp | beskrivning |
---|---|---|
codeDistance |
Nummer | Det beräknade kodavståndet för den logiska kvantbiten. |
physicalQubits |
Nummer | Antalet fysiska kvantbitar för varje logisk qubit. |
logicalCycleTime |
Nummer | Tiden för att köra en logisk åtgärd. |
logicalErrorRate |
Nummer | Den logiska felfrekvensen för den logiska kvantbiten. |
Logiska antal
Ordlistan logicalCounts
innehåller följande poster:
Utdataparameter | Datatyp | beskrivning |
---|---|---|
numQubits |
Nummer | Förlayout antal kvantbitar. |
tCount |
Nummer | Förlayoutnummer för T-portar. |
rotationCount |
Nummer | Förlayoutnummer för rotationsportar. |
rotationDepth |
Nummer | Rotationsdjup före layout. |
cczCount |
Nummer | Förlayoutnummer för CCZ-portar. |
ccixCount |
Nummer | Förlayoutnummer för CCiX-portar. |
measurementCount |
Nummer | Förlayoutnummer för enstaka kvantbitsmätningar. |
Dricks
Om du vill använda en förberäknad uppsättning logiska antal för ett resursuppskattningsjobb kan du använda LogicalCounts
Python-åtgärden för att skicka kända uppskattningar till resursestimatorn. Mer information finns i Använda kända uppskattningar med Resource Estimator.
Blankstegsdiagram
Den totala uppskattningen av fysiska resurser består av det totala antalet fysiska kvantbitar som används för både algoritmen och T-fabrikskopior. Du kan kontrollera fördelningen mellan dessa två med hjälp av blankstegsdiagrammet.
Blankstegsdiagrammet visar andelen fysiska kvantbitar som används för algoritmen och T-fabrikerna. Observera att antalet T-fabrikskopior bidrar till antalet fysiska kvantbitar för T-fabriker.
I Jupyter Notebook kan du komma åt utrymmesdiagrammet med hjälp av widgeten SpaceChart
från qsharp-widgets
paketet.
import qsharp
from qsharp_widgets import SpaceChart
SpaceChart(result)
När du kör flera konfigurationer av target parametrar med Gränsen för Pareto kan du rita upp utrymmesdiagrammet för en specifik lösning av . Följande kod visar till exempel hur du ritar utrymmesdiagrammet för den första konfigurationen av parametrar och den tredje kortaste körningen.
SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime
Diagram över tidsrymd
Inom kvantberäkning finns det en kompromiss mellan antalet fysiska kvantbitar och algoritmens körning. Du kan överväga allokering av så många fysiska kvantbitar som möjligt för att minska körningen av algoritmen. Antalet fysiska kvantbitar begränsas dock av antalet fysiska kvantbitar som är tillgängliga i kvantmaskinvaran. Att förstå kompromissen mellan körning och systemskala är en av de viktigaste aspekterna av resursuppskattning.
När du beräknar resurserna i en algoritm kan du använda diagrammet för tidsrymd för att visualisera kompromisserna mellan antalet fysiska kvantbitar och algoritmens körning.
Kommentar
Om du vill se flera optimala kombinationer i tidsdiagrammet måste du ange uppskattningstypen till Pareto Frontier-uppskattning. Om du kör Resource Estimator i Visual Studio Code med Q#alternativet : Calculate Resource Estimates (Beräkna resursuppskattningar ) aktiveras Pareto Frontier-uppskattningen som standard.
Med diagrammet för tidsrymd kan du hitta den optimala kombinationen av {antal qubits, runtime}-par som uppfyller kvantmaskinvarans begränsningar. Diagrammet visar antalet fysiska kvantbitar och körningen av algoritmen för varje {antal qubits, runtime}-par.
Om du vill köra tidsdiagrammet i Jupyter Notebook kan du använda widgeten EstimatesOverview
från qsharp-widgets
paketet.
import qsharp
from qsharp_widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
Dricks
Om du vill se uppskattningsinformationen kan du hovra över varje punkt i diagrammet.
Tidsdiagrammet är särskilt användbart när du jämför flera konfigurationer av target parametrar för samma algoritm.
Kommentar
Om du stöter på problem när du arbetar med Resursberäknaren kan du gå till sidan Felsökning eller kontakta AzureQuantumInfo@microsoft.com.