Dela via


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

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)

Cirkeldiagram som visar fördelningen av totalt antal fysiska kvantbitar mellan algoritmens kvantbitar och T Factory-kvantbitar. Det finns en tabell med uppdelningen av antalet T-fabrikskopior och antalet fysiska kvantbitar per T-fabrik.

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"])

Skärmbild som visar kvantbitsdiagrammet för resursberäknaren.

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.

Skärmbild som visar tidsdiagrammet och resultattabellen när du kör flera konfigurationer av parametern i Resursberäknaren.

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.

Nästa steg