Udostępnij za pośrednictwem


Pobieranie danych wyjściowych 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 w programie Visual Studio Code.

Wymagania wstępne

Uwaga

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. Aby uzyskać więcej informacji, zobacz Różne sposoby uruchamiania narzędzia do szacowania zasobów.

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 sznurek Stan zadania to zawsze Succeeded.
jobParams słownik Parametry target zadania, które są przekazywane jako wejście.
physicalCounts słownik Szacowany zasób fizyczny. Aby uzyskać więcej informacji, zobacz Fizyczne liczenie.
physicalCountsFormatted słownik Szacowane zasoby fizyczne sformatowane 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 Logiczny kubit.
tfactory słownik Właściwości fabryki T.
logicalCounts słownik Wstępne szacunki zasobów logicznych przed rozmieszczeniem. Aby uzyskać więcej informacji, zobacz Liczby logiczne.
reportData słownik Dane generowania raportu szacowania zasobów.

Inwentaryzacja fizyczna

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

Parametr wyjściowy Typ danych opis
physicalQubits Liczba Całkowita liczba kubitów fizycznych.
runtime Liczba Całkowity czas wykonania algorytmu w nanosekundach.
rqops Liczba Liczba niezawodnych operacji kwantowych na sekundę (QOPS).
breakdown słownik Podział oszacowań. Aby uzyskać więcej informacji, zobacz szczegóły inwentaryzacji fizycznej.

Podział fizycznych ilości

Słownik breakdown dla physicalCounts zawiera 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 typu 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 obrót.
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 w formacie przyjaznym dla użytkownika.
rqops string Liczba niezawodnych operacji kwantowych na sekundę (QOPS) ujętych z przedrostkiem metrycznym.
physicalQubits ciąg znaków Całkowita liczba kubitów fizycznych z sufiksem metryki.
algorithmicLogicalQubits struna Algorytmiczne kubity logiczne z sufiksem metrycznym.
algorithmicLogicalDepth string Algorytmiczna głębokość logiczna z sufiksem metrycznym.
logicalDepth string Możliwie skorygowana algorytmiczna głębokość logiczna z sufiksem metrycznym.
numTstates string Liczba stanów T z sufiksem metryki.
numTfactories string Liczba fabrycznych kopii T z sufiksem metrycznym.
numTfactoryRuns string Liczba uruchomień fabryki T z sufiksem jednostki miary.
physicalQubitsForAlgorithm string Liczba fizycznych kubitów algorytmu z sufiksem metryki.
physicalQubitsForTfactories string Liczba kubitów fizycznych dla fabryk T z metrycznym sufiksem.
physicalQubitsForTfactoriesPercentage ciąg znaków Liczba kubitów fizycznych dla wszystkich fabryk T w procentach do sumy.
requiredLogicalQubitErrorRate string Skrócony wymagany logiczny współczynnik błędów kubitu.
requiredLogicalTstateErrorRate string Skrócony wymagany współczynnik błędów stanu T.
physicalQubitsPerLogicalQubit string Liczba kubitów fizycznych na kubit logiczny z metrycznym sufiksem.
logicalCycleTime ciąg/sznurek/struna Logiczny czas cyklu logicznego kubitu jako przyjazny dla człowieka ciąg.
clockFrequency string Liczba cykli logicznych na sekundę jako ciąg znaków przyjazny dla użytkownika.
logicalErrorRate string Skrócony logiczny współczynnik błędów.
tfactoryPhysicalQubits string Liczba kubitów fizycznych w fabryce T z sufiksem metrycznym (lub komunikatem, że nie ma fabryki T).
tfactoryRuntime string Czas działania pojedynczej fabryki T jako ciąg znaków czytelny dla użytkownika (lub wiadomość, że nie ma fabryki T).
numInputTstates string Liczba stanów wejściowych T lub informacja, ż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 destylacji, rozdzielone przecinkami w ciągu (lub informacja, ż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ę destylacji, rozdzielona przecinkami w formie ciągu znaków (lub wiadomość, że nie ma fabryki T).
tfactoryRuntimePerRound string Czas trwania każdej rundy destylacji, wyświetlany jako ciągi przyjazne dla człowieka rozdzielone przecinkami (lub komunikat, że nie ma fabryki T).
tstateLogicalErrorRate string Skrócony 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 metrycznym sufiksem.
logicalCountsTCount ciąg znaków Liczba bram T (przed rozmieszczeniem) z sufiksem jednostki miary.
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 (w układzie wstępnym) z dołączonym oznaczeniem metryki.
logicalCountsCcixCount string Liczba bram CCiX (przed rozmieszczeniem) z przedrostkiem metrycznym.
logicalCountsMeasurementCount string Liczba pomiarów pojedynczego kubitu (układ wstępny) z sufiksem metryki.
errorBudget string Skrócony całkowity budżet błędów.
errorBudgetLogical string Skrócony 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ć wartością pustą).

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 Liczba kubitów przed rozmieszczeniem.
tCount Liczba Liczba bram T przed rozmieszczeniem.
rotationCount Liczba Wstępna liczba bram obrotu.
rotationDepth Liczba Głębokość rotacji przed rozmieszczeniem.
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 Python, aby przekazać znane oszacowania do Resource Estimator. 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 przestrzeni pokazuje 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 możesz uzyskać dostęp do diagramu przestrzeni przy użyciu widżetu SpaceChart z pakietu qsharp-widgets.

import qsharp

from qsharp_widgets import SpaceChart
SpaceChart(result)

Diagram kołowy przedstawiający rozkład całkowitych kubitów fizycznych między kubitami algorytmu a kubitami instancji T. Istnieje tabela z podziałem liczby kopii instancji T i liczby kubitów fizycznych na instancję T.

Podczas uruchamiania wielu konfiguracji parametrów z szacowaniem granicy Pareto, można wykreślić diagram przestrzeni dla określonego rozwiązania. Na przykład poniższy kod pokazuje, jak wykreślić diagram przestrzeni dla pierwszej konfiguracji parametrów i trzeciego najkrótszego czasu wykonania.

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 czasoprzestrzennym, należy ustawić typ szacowania na szacowanie frontu Pareto. Jeśli uruchomisz narzędzie do szacowania zasobów w programie Visual Studio Code, korzystając z opcji Q#: Oblicz szacunki zasobów, estymacja granicy Pareto jest domyślnie włączona.

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 czas wykonania algorytmu dla każdej pary {liczba kubitów, czas wykonania}.

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

import qsharp

from qsharp_widgets import EstimatesOverview

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

Screenshot showing the qubit-time diagram of the Resource Estimator.Zrzut ekranu przedstawiający diagram czasu kubitu w Estymatorze zasobów.

Napiwek

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

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

Screenshot showing the space-time diagram and the table of results when running multiple configurations of parameter in the Resource Estimator.Zrzut ekranu przedstawiający diagram czasoprzestrzenny i tabelę wyników podczas uruchamiania wielu konfiguracji parametrów 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ę zAzureQuantumInfo@microsoft.com.

Następne kroki