Udostępnij za pośrednictwem


Informacje o danych wynikowych narzędzia do szacowania zasobów

Dowiedz się, jak interpretować i pobierać parametry wyjściowe oraz diagramy narzędzia do szacowania zasobów. W tym artykule wyjaśniono, jak programowo uzyskać dostęp do wyników narzędzia do szacowania zasobów w notesach Jupyter Notebook. Jeśli uruchomisz narzędzie do szacowania zasobów w programie Visual Studio Code z palety poleceń, następujące polecenia nie będą stosowane.

Wymagania wstępne

Parametry wyjściowe

Dane wyjściowe narzędzia do szacowania zasobów to raport, który jest drukowany w konsoli programu i można uzyskać do nich dostęp programowo. Na przykład poniższy fragment kodu pokazuje, jak uzyskać dostęp do parametrów szacowania zasobów.

result['jobParams']

Następujące dane wyjściowe stanowią możliwe wpisy, do których można uzyskać dostęp programowo.

Parametr wyjściowy najwyższego poziomu Typ danych opis
status string Stan zadania to zawsze Succeeded.
jobParams słownik Parametry target zadania, które są przekazywane jako dane wejściowe.
physicalCounts słownik Szacowany zasób fizyczny. Aby uzyskać więcej informacji, zobacz Liczby fizyczne.
physicalCountsFormatted słownik Szacowany zasób fizyczny sformatowany do wyświetlania w danych raportu. Aby uzyskać więcej informacji, zobacz Liczba fizyczne sformatowane.
logicalQubit słownik Właściwości kubitu logicznego. Aby uzyskać więcej informacji, zobacz Kubit logiczny.
tfactory słownik Właściwości fabryki T.
logicalCounts słownik Wstępne szacowanie zasobów logicznych. Aby uzyskać więcej informacji, zobacz Liczba logicznych.
reportData słownik Dane generowania raportu szacowania zasobów.

Liczby fizyczne

Słownik physicalCounts zawiera następujące wpisy:

Parametr wyjściowy Typ danych opis
physicalQubits Liczba Całkowita liczba kubitów fizycznych.
runtime Liczba Łączne środowisko uruchomieniowe do wykonania algorytmu w nanosekundach.
rqops Liczba Liczba niezawodnych operacji kwantowych na sekundę (QOPS).
breakdown słownik Podział oszacowań. Aby uzyskać więcej informacji, zobacz Podział liczby fizyczne.

Podział liczby fizycznych

Słownik breakdown zawiera physicalCounts następujące wpisy:

Parametr wyjściowy Typ danych opis
algorithmicLogicalQubits Liczba Kubity logiczne wymagane do uruchomienia algorytmu i nie obejmują zasobów dla fabryk T.
algorithmicLogicalDepth Liczba Cykle logiczne wymagane do uruchomienia algorytmu i nie obejmują zasobów dla fabryk T.
logicalDepth Liczba Ewentualnie skorygowana liczba cykli obliczanych za każdym razem, gdy czas wykonywania fabryki T jest szybszy niż wykonywanie algorytmu.
numTstates Liczba Liczba stanów T używanych przez algorytm.
clockFrequency Liczba Liczba cykli logicznych na sekundę.
numTfactories Liczba Liczba fabryk T (przy założeniu jednolitego projektu fabryki T).
numTfactoryRuns Liczba Liczba częstotliwości uruchamiania wszystkich równoległych fabryk T.
physicalQubitsForTfactories Liczba Liczba kubitów fizycznych dla wszystkich fabryk T.
physicalQubitsForAlgorithm Liczba Liczba kubitów fizycznych dla układu algorytmu.
requiredLogicalQubitErrorRate Liczba Wymagana liczba błędów logicznych.
requiredLogicalTstateErrorRate Liczba Wymagana liczba błędów stanu logicznego T.
numTsPerRotation Liczba Liczba bram T na rotację.
cliffordErrorRate Liczba Współczynnik błędów Cliffordu oparty na parametrach kubitu.

Liczba fizyczna sformatowana

Słownik physicalCountsFormatted zawiera następujące wpisy:

Parametr wyjściowy Typ danych opis
runtime string Całkowity czas wykonywania jako przyjazny dla człowieka ciąg.
rqops string Liczba niezawodnych operacji kwantowych na sekundę (QOPS) sformatowanych z sufiksem metryki.
physicalQubits string Całkowita liczba kubitów fizycznych z sufiksem metryki.
algorithmicLogicalQubits string Algorytmiczne kubity logiczne z sufiksem metryki.
algorithmicLogicalDepth string Głębokość logiczna algorytmiczna z sufiksem metryki.
logicalDepth string Ewentualnie skorygowana głębokość logiczna algorytmiczna z sufiksem metryki.
numTstates string Liczba stanów T z sufiksem metryki.
numTfactories string Liczba kopii fabrycznych T z sufiksem metryki.
numTfactoryRuns string Liczba przebiegów fabryki T z sufiksem metryki.
physicalQubitsForAlgorithm string Liczba fizycznych kubitów algorytmu z sufiksem metryki.
physicalQubitsForTfactories string Liczba kubitów fizycznych dla fabryk T z sufiksem metryki.
physicalQubitsForTfactoriesPercentage string Liczba kubitów fizycznych dla wszystkich fabryk T w procentach do sumy.
requiredLogicalQubitErrorRate string Obcięty wymagany logiczny współczynnik błędów kubitu.
requiredLogicalTstateErrorRate string Obcięty wymagany współczynnik błędów stanu T.
physicalQubitsPerLogicalQubit string Liczba kubitów fizycznych na kubit logiczny z sufiksem metryki.
logicalCycleTime string Logiczny czas cyklu logicznego kubitu jako przyjazny dla człowieka ciąg.
clockFrequency string Liczba cykli logicznych na sekundę jako przyjazny dla człowieka ciąg.
logicalErrorRate string Obcięty logiczny współczynnik błędów.
tfactoryPhysicalQubits string Liczba kubitów fizycznych w fabryce T z sufiksem metryki (lub komunikatem, że nie ma fabryki T).
tfactoryRuntime string Środowisko uruchomieniowe pojedynczej fabryki T jako przyjazne dla człowieka ciąg (lub komunikat, że nie ma fabryki T).
numInputTstates string Liczba stanów wejściowych języka T (lub komunikat, że nie ma fabryki T).
numUnitsPerRound string Liczba jednostek na rundę destylacji rozdzielona przecinkami w ciągu (lub komunikat, że nie ma fabryki T).
unitNamePerRound string Nazwy jednostek każdej rundy destylowania, przecinki oddzielone ciągiem (lub komunikatem, że nie ma fabryki T).
codeDistancePerRound string Odległość kodu na rundę destylacji, przecinek oddzielony ciągiem (lub komunikatem, że nie ma fabryki T).
physicalQubitsPerRound string Liczba kubitów fizycznych na rundę destylowania, rozdzielona przecinkami w ciągu (lub komunikat, że nie ma fabryki T).
tfactoryRuntimePerRound string Środowisko uruchomieniowe każdej rundy destylowania wyświetlane jako rozdzielone przecinkami ciągi przyjazne dla człowieka (lub komunikat, że nie ma fabryki T).
tstateLogicalErrorRate string Obcięty współczynnik błędów stanu logicznego T (lub komunikat, że nie ma fabryki T).
logicalCountsNumQubits string Liczba kubitów (układ wstępny) z sufiksem metryki.
logicalCountsTCount string Liczba bram T (układ wstępny) z sufiksem metryki.
logicalCountsRotationCount string Liczba bram rotacji (układ wstępny) z sufiksem metryki.
logicalCountsRotationDepth string Głębokość obrotu (układ wstępny) z sufiksem metryki.
logicalCountsCczCount string Liczba bram CCZ (układ wstępny) z sufiksem metryki.
logicalCountsCcixCount string Liczba bram CCiX (układ wstępny) z sufiksem metryki.
logicalCountsMeasurementCount string Liczba pomiarów pojedynczego kubitu (układ wstępny) z sufiksem metryki.
errorBudget string Obcięty całkowity budżet błędów.
errorBudgetLogical string Obcięty budżet błędów dla błędu logicznego.
errorBudgetTstates string Obcięty budżet błędów dla wadliwej destylacji stanu T.
errorBudgetRotations string Obcięty budżet błędów dla wadliwej syntezy rotacji.
numTsPerRotation string Sformatowana liczba Ts na obrót (może być brakiem).

Kubit logiczny

Słownik logicalQubit zawiera następujące wpisy:

Parametr wyjściowy Typ danych opis
codeDistance Liczba Obliczona odległość kodu dla kubitu logicznego.
physicalQubits Liczba Liczba kubitów fizycznych dla każdego kubitu logicznego.
logicalCycleTime Liczba Czas wykonywania jednej operacji logicznej.
logicalErrorRate Liczba Logiczna szybkość błędów kubitu logicznego.

Liczby logiczne

Słownik logicalCounts zawiera następujące wpisy:

Parametr wyjściowy Typ danych opis
numQubits Liczba Wstępnie układ liczby kubitów.
tCount Liczba Wstępna liczba bram T.
rotationCount Liczba Wstępna liczba bram obrotu.
rotationDepth Liczba Głębokość rotacji przed układem.
cczCount Liczba Wstępna liczba bram CCZ.
ccixCount Liczba Wstępna liczba bram CCiX.
measurementCount Liczba Wstępnie układ liczby pomiarów pojedynczego kubitu.

Napiwek

Jeśli chcesz użyć wstępnie obliczonego zestawu liczb logicznych dla zadania szacowania zasobów, możesz użyć LogicalCounts operacji języka Python, aby przekazać znane oszacowania do narzędzia do szacowania zasobów. Aby uzyskać więcej informacji, zobacz How to use known estimates with the Resource Estimator (Jak używać znanych oszacowań za pomocą narzędzia do szacowania zasobów).

Diagram przestrzeni

Ogólne szacowanie zasobów fizycznych składa się z całkowitej liczby kubitów fizycznych używanych zarówno dla algorytmu, jak i kopii fabrycznych T. Rozkład między nimi można sprawdzić przy użyciu diagramu przestrzeni.

Diagram kosmiczny przedstawia proporcję fizycznych kubitów używanych dla algorytmu i fabryk T. Należy pamiętać, że liczba kopii fabrycznych T przyczynia się do liczby fizycznych kubitów dla fabryk T.

W notesie Jupyter Notebook możesz uzyskać dostęp do diagramu przestrzeni przy użyciu widżetu SpaceChart qsharp-widgets z pakietu.

import qsharp

from qsharp_widgets import SpaceChart
SpaceChart(result)

Diagram kołowy przedstawiający rozkład całkowitych kubitów fizycznych między kubitami algorytmów i kubitami fabryki T. Istnieje tabela z podziałem liczby kopii fabrycznych T i liczby kubitów fizycznych na fabrykę T.

W przypadku uruchamiania wielu konfiguracji parametrów target z szacowaniem granicy Pareto można wykreślić diagram przestrzeni dla konkretnego rozwiązania. Na przykład poniższy kod pokazuje, jak wykreślić diagram przestrzeni dla pierwszej konfiguracji parametrów i trzeciego najkrótszego środowiska uruchomieniowego.

SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime

Diagram czasu kosmicznego

W obliczeniach kwantowych istnieje kompromis między liczbą fizycznych kubitów a środowiskiem uruchomieniowym algorytmu. Możesz rozważyć alokację jak największej liczby kubitów fizycznych, aby zmniejszyć środowisko uruchomieniowe algorytmu. Jednak liczba kubitów fizycznych jest ograniczona przez liczbę kubitów fizycznych dostępnych na sprzęcie kwantowym. Zrozumienie kompromisu między środowiskiem uruchomieniowym a skalowaniem systemu jest jednym z ważniejszych aspektów szacowania zasobów.

Podczas szacowania zasobów algorytmu można użyć diagramu czasowego do wizualizacji kompromisów między liczbą kubitów fizycznych a środowiskiem uruchomieniowym algorytmu.

Uwaga

Aby wyświetlić wiele optymalnych kombinacji na diagramie czasu kosmicznego, należy ustawić typ szacowania na szacowanie granic Pareto. Jeśli uruchomisz narzędzie do szacowania zasobów w programie Visual Studio Code przy użyciu Q#opcji : Oblicz szacunki zasobów, szacowanie granic Pareto jest domyślnie włączone.

Diagram czasu kosmicznego umożliwia znalezienie optymalnej kombinacji {liczby kubitów, środowiska uruchomieniowego} par, które spełniają ograniczenia sprzętu kwantowego. Diagram przedstawia liczbę kubitów fizycznych i środowisko uruchomieniowe algorytmu dla każdej pary {liczba kubitów, czasu wykonania}.

Aby uruchomić diagram czasu kosmicznego w notesie Jupyter Notebook, możesz użyć EstimatesOverview widżetu qsharp-widgets z pakietu.

import qsharp

from qsharp_widgets import EstimatesOverview

EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])

Zrzut ekranu przedstawiający diagram czasu kubitu narzędzia do szacowania zasobów.

Napiwek

Aby wyświetlić szczegóły szacowania, możesz umieścić wskaźnik myszy na każdym punkcie na diagramie.

Diagram czasu przestrzeni jest szczególnie przydatny podczas porównywania wielu konfiguracji parametrów target dla tego samego algorytmu.

Zrzut ekranu przedstawiający diagram czasu przestrzeni i tabelę wyników podczas uruchamiania wielu konfiguracji parametru w narzędziu do szacowania zasobów.

Uwaga

Jeśli wystąpi jakikolwiek problem podczas pracy z narzędziem do szacowania zasobów, zapoznaj się ze stroną Rozwiązywanie problemów lub skontaktuj się z .AzureQuantumInfo@microsoft.com

Następne kroki