Omówienie danych wynikowych narzędzia do szacowania zasobów
Dowiedz się, jak interpretować i pobierać parametry wyjściowe i 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 Visual Studio Code z palety poleceń, następujące polecenia nie mają zastosowania.
Wymagania wstępne
Środowisko języka Python z zainstalowanym językiem Python i oprogramowaniem Pip .
Najnowsza wersja 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 .
Najnowsza wersja usługi Azure Quantum
qsharp
iqsharp-widgets
pakietów.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['job_params']
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 |
ciąg | Stan zadania to zawsze Succeeded . |
job_params |
Słownik | target Parametry zadania, które są przekazywane jako dane wejściowe. |
physical_counts |
Słownik | Szacowany zasób fizyczny. Aby uzyskać więcej informacji, zobacz Liczby fizyczne. |
physical_counts_formatted |
Słownik | Szacowany zasób fizyczny sformatowany do wyświetlania w danych raportu. Aby uzyskać więcej informacji, zobacz Liczba fizyczne sformatowane. |
logical_qubit |
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. |
logical_counts |
Słownik | Szacowanie zasobów logicznych w układzie wstępnym. Aby uzyskać więcej informacji, zobacz Liczba logicznych. |
report_data |
Słownik | Dane generowania raportu szacowania zasobów. |
Liczby fizyczne
Słownik physical_counts
zawiera następujące wpisy:
Parametr wyjściowy | Typ danych | Opis |
---|---|---|
physical_qubits |
liczba | Całkowita liczba kubitów fizycznych. |
runtime |
liczba | Całkowite ś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 physical_counts
następujące wpisy:
Parametr wyjściowy | Typ danych | Opis |
---|---|---|
algorithmic_logical_qubits |
liczba | Kubity logiczne wymagane do uruchamiania algorytmu i nie obejmują zasobów dla fabryk T. |
algorithmic_logical_depth |
liczba | Cykle logiczne wymagane do uruchamiania algorytmu i nie obejmują zasobów dla fabryk T. |
logical_depth |
liczba | Ewentualnie skorygowana liczba cykli obliczanych za każdym razem, gdy czas wykonywania fabryki T jest krótszy niż wykonywanie algorytmu. |
num_tstates |
liczba | Liczba stanów T używanych przez algorytm. |
clock_frequency |
liczba | Liczba cykli logicznych na sekundę. |
num_tfactories |
liczba | Liczba fabryk T (przy założeniu jednolitego projektu fabryki T). |
num_tfactory_runs |
liczba | Liczba częstotliwości uruchamiania wszystkich równoległych fabryk T. |
physical_qubits_for_tfactories |
liczba | Liczba kubitów fizycznych dla wszystkich fabryk T. |
physical_qubits_for_algorithm |
liczba | Liczba kubitów fizycznych dla układu algorytmu. |
required_logical_qubit_error_rate |
liczba | Wymagana liczba błędów logicznych. |
required_logical_tstate_error_rate |
liczba | Wymagany współczynnik błędów stanu logicznego T. |
num_ts_per_rotation |
liczba | Liczba bramek T na obrót. |
clifford_error_rate |
liczba | Współczynnik błędów Cliffordu oparty na parametrach kubitu. |
Sformatowane liczby fizyczne
Słownik physical_counts_formatted
zawiera następujące wpisy:
Parametr wyjściowy | Typ danych | Opis |
---|---|---|
runtime |
ciąg | Łączna liczba środowisk uruchomieniowych jako przyjaznego dla człowieka ciągu. |
rqops |
ciąg | Liczba niezawodnych operacji kwantowych na sekundę (QOPS) sformatowanych z sufiksem metryki. |
physical_qubits |
ciąg | Całkowita liczba kubitów fizycznych z sufiksem metryki. |
algorithmic_logical_qubits |
ciąg | Algorytmiczne kubity logiczne z sufiksem metryki. |
algorithmic_logical_depth |
ciąg | Algorytmiczna głębokość logiczna z sufiksem metryki. |
logical_depth |
ciąg | Ewentualnie skorygowana głębokość logiczna algorytmu z sufiksem metryki. |
num_tstates |
ciąg | Liczba stanów T z sufiksem metryki. |
num_tfactories |
ciąg | Liczba kopii fabrycznych T z sufiksem metryki. |
num_tfactory_runs |
ciąg | Liczba przebiegów fabryki T z sufiksem metryki. |
physical_qubits_for_algorithm |
ciąg | Liczba fizycznych kubitów algorytmu z sufiksem metryki. |
physical_qubits_for_tfactories |
ciąg | Liczba fizycznych kubitów dla fabryk T z sufiksem metryki. |
physical_qubits_for_tfactories_percentage |
ciąg | Liczba fizycznych kubitów dla wszystkich fabryk T w procentach do sumy. |
required_logical_qubit_error_rate |
ciąg | Obcięty wymagany współczynnik błędów kubitu logicznego. |
required_logical_tstate_error_rate |
ciąg | Obcięty wymagany współczynnik błędów stanu T. |
physical_qubits_per_logical_qubit |
ciąg | Liczba kubitów fizycznych na kubit logiczny z sufiksem metryki. |
logical_cycle_time |
ciąg | Czas cyklu logicznego kubitu logicznego jako przyjazny dla człowieka ciąg. |
clock_frequency |
ciąg | Liczba cykli logicznych na sekundę jako przyjazny dla człowieka ciąg. |
logical_error_rate |
ciąg | Obcięty współczynnik błędów logicznych. |
tfactory_physical_qubits |
ciąg | Liczba fizycznych kubitów w fabryce T z sufiksem metryki (lub komunikatem, że nie ma fabryki T). |
tfactory_runtime |
ciąg | Środowisko uruchomieniowe jednej fabryki T jako przyjazne dla człowieka ciąg (lub komunikat, że nie ma fabryki T). |
num_input_tstates |
ciąg | Liczba stanów wejściowych języka T (lub komunikatu, że nie ma fabryki T). |
num_units_per_round |
ciąg | Liczba jednostek na rundę destylacji, przecinek oddzielony ciągiem (lub komunikat, że nie ma fabryki T). |
unit_name_per_round |
ciąg | Nazwy jednostek każdej rundy destylowania, przecinki oddzielone ciągiem (lub komunikatem, że nie ma fabryki T). |
code_distance_per_round |
ciąg | Odległość kodu na rundę destylacji, przecinek oddzielony ciągiem (lub komunikat, że nie ma fabryki T). |
physical_qubits_per_round |
ciąg | Liczba fizycznych kubitów na rundę destylacji, przecinek rozdzielony w ciągu (lub komunikat, że nie ma fabryki T). |
tfactory_runtime_per_round |
ciąg | Środowisko uruchomieniowe każdej rundy destylowania, wyświetlane jako rozdzielone przecinkami ciągi przyjazne dla człowieka (lub komunikat, że nie ma fabryki T). |
tstate_logical_error_rate |
ciąg | Obcięty logiczny współczynnik błędów stanu T (lub komunikat, że nie ma fabryki T). |
logical_counts_num_qubits |
ciąg | Liczba kubitów (wstępnego układu) z sufiksem metryki. |
logical_counts_t_count |
ciąg | Liczba bram T (układ wstępny) z sufiksem metryki. |
logical_counts_rotation_count |
ciąg | Liczba bram rotacji (układ wstępny) z sufiksem metryki. |
logical_counts_rotation_depth |
ciąg | Głębokość obrotu (układ wstępny) z sufiksem metryki. |
logical_counts_ccz_count |
ciąg | Liczba bram CCZ (układ wstępny) z sufiksem metryki. |
logical_counts_ccix_count |
ciąg | Liczba bram CCiX (układ wstępny) z sufiksem metryki. |
logical_counts_measurement_count |
ciąg | Liczba pomiarów pojedynczego kubitu (wstępnego układu) z sufiksem metryki. |
error_budget |
ciąg | Obcięty całkowity budżet błędów. |
error_budget_logical |
ciąg | Obcięty budżet błędów dla błędu logicznego. |
error_budget_tstates |
ciąg | Obcięty budżet błędów dla wadliwego destylowania stanu T. |
error_budget_rotations |
ciąg | Obcięty budżet błędów dla błędnej syntezy rotacji. |
num_ts_per_rotation |
ciąg | Sformatowana liczba Ts na obrót (może to być wartość Brak). |
Kubit logiczny
Słownik logical_qubit
zawiera następujące wpisy:
Parametr wyjściowy | Typ danych | Opis |
---|---|---|
code_distance |
liczba | Obliczona odległość kodu dla kubitu logicznego. |
physical_qubits |
liczba | Liczba kubitów fizycznych dla każdego kubitu logicznego. |
logical_cycle_time |
liczba | Czas wykonywania jednej operacji logicznej. |
logical_error_rate |
liczba | Szybkość błędów logicznych kubitu logicznego. |
Liczby logiczne
Słownik logical_counts
zawiera następujące wpisy:
Parametr wyjściowy | Typ danych | Opis |
---|---|---|
num_qubits |
liczba | Wstępnie układ liczby kubitów. |
t_count |
liczba | Wstępna liczba bram T. |
rotation_count |
liczba | Wstępnie układ bramek obrotu. |
rotation_depth |
liczba | Głębokość obrotu wstępnego układu. |
ccz_count |
liczba | Wstępnie układ bramek CCZ. |
ccix_count |
liczba | Wstępnie układ liczby bram CCiX. |
measurement_count |
liczba | Wstępnie utworzona liczba pomiarów pojedynczego kubitu. |
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 kosmicznego.
Na diagramie kosmicznym przedstawiono 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 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 przestrzeni
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ę fizycznych kubitów 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 czasu przestrzeni, aby zwizualizować kompromisy między liczbą fizycznych kubitów a środowiskiem uruchomieniowym algorytmu.
Uwaga
Aby wyświetlić wiele optymalnych kombinacji na diagramie czasu kosmicznego, należy ustawić typ szacowania na wartość Szacowanie granic Pareto. Jeśli uruchomisz narzędzie do szacowania zasobów w Visual Studio Code przy użyciu Q#opcji : Oblicz szacowanie zasobów, szacowanie granic Pareto jest domyślnie włączone.
Diagram czasu kosmicznego umożliwia znalezienie optymalnej kombinacji par {liczba kubitów, środowiska uruchomieniowego}, które spełniają ograniczenia sprzętu kwantowego. Na diagramie przedstawiono liczbę fizycznych kubitów i środowisko uruchomieniowe algorytmu dla każdej pary {liczba kubitów, runtime}.
Aby uruchomić diagram czasu przestrzeni w Jupyter Notebook, możesz użyć EstimatesOverview
widżetu z qsharp-widgets
pakietu.
import qsharp
from qsharp_widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
Porada
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
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla