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
Środowisko języka Python z zainstalowanym językiem Python i programem .
Najnowsza wersja programu Visual Studio Code lub otwórz program VS Code w sieci Web.
Program VS Code z zainstalowanymi rozszerzeniami Azure Quantum Development Kit, Python i Jupyter .
Najnowsze pakiety i
qsharp-widgets
usługi Azure Quantumqsharp
.python -m pip install --upgrade qsharp qsharp-widgets
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)
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"])
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.
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