Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzie do szacowania zasobów kwantowych Microsoft jest częścią zestawu Microsoft Quantum Development Kit (QDK). Z tego artykułu dowiesz się, jak zainstalować narzędzie do szacowania zasobów kwantowych i uruchomić szacowanie prostego programu języka Q# z domyślnym modelem architektury.
Warning
Narzędzie do szacowania zasobów w rozszerzeniu QDK dla programu VS Code zostanie wkrótce wycofane. Użyj modułu qdk.qrePython , aby przeprowadzić szacowanie zasobów.
Wymagania wstępne
Aby wykonać kroki opisane w tym artykule, należy zainstalować następujące elementy:
- Najnowsza wersja Visual Studio Code (VS Code)
- Najnowsza wersja rozszerzenia QDK zainstalowana w programie VS Code
- Najnowsze wersje rozszerzenia Python i rozszerzenia Jupyter w programie VS Code
Instalowanie narzędzia do szacowania zasobów kwantowych
Narzędzie do szacowania zasobów jest dostępne za pośrednictwem modułu qdk.qrePython . Aby użyć narzędzia do szacowania zasobów, zainstaluj najnowszą wersję qdkPython pakietu z dodatkowymi qre elementami:
pip install --upgrade "qdk[qre]"
Wskazówka
Do korzystania z narzędzia do szacowania zasobów nie trzeba mieć konta Azure.
Uruchamianie prostego szacowania zasobów z ustawieniami domyślnymi
Aby przeprowadzić podstawowe oszacowanie zasobów, przekaż model aplikacji, model architektury sprzętowej i model korekty błędów do narzędzia do szacowania zasobów. Następnie uruchom narzędzie do szacowania zasobów, aby uzyskać wyniki. Poniższy przykład uruchamia narzędzie do szacowania zasobów z Jupyter Notebook w programie VS Code.
Tworzenie modelu aplikacji
W tym przykładzie użyj algorytmu modelu 1D Ising z przykładów języka Q# w rozszerzeniu programu VS Code zestawu QDK. Możesz też użyć jednego z istniejących programów języka Q#.
Pisanie programu w języku Q#
- W programie VS Code utwórz nowy plik tekstowy i zapisz plik jako
ising-1d-sample.qs. - W pierwszym wierszu pliku wprowadź przykład , aby wyświetlić listę przykładowych programów języka Q#.
- Wybierz przykład Ising Model (Simple 1D), a następnie zapisz plik.
Tworzenie aplikacji
Użyj programu języka Q#, aby utworzyć model aplikacji dla narzędzia do szacowania zasobów.
Aby utworzyć nowy plik Jupyter Notebook w programie VS Code, otwórz paletę poleceń i wprowadź polecenie Utwórz: Nowy Jupyter Notebook.
W pierwszej komórce notesu oceń program języka Q#.
from pathlib import Path from qdk import qsharp qsharp.eval(Path("ising-1d-sample.qs").read_text(encoding="utf-8"))Ten kod tworzy
Mainobiekt wqdk.codeprzestrzeni nazw zawierającej program języka Q#.W nowej komórce utwórz aplikację narzędzia do szacowania zasobów z poziomu programu języka Q#.
import qdk from qdk.qre.application import QSharpApplication app = QSharpApplication(qdk.code.Main)
Tworzenie modelu architektury
W przypadku architektury sprzętu użyj domyślnego GateBased modelu, z którego pochodzi narzędzie do szacowania zasobów. Model GateBased wymaga danych wejściowych dla współczynnika błędów, czasu bramy i czasu pomiaru.
W nowej komórce utwórz architekturę opartą na bramie z współczynnikiem błędów $10^{-4}$, czasem bramy wynoszącym 100 ns i czasem pomiaru wynoszącym 500 ns.
from qdk.qre.models import GateBased
# Times are in units of nanoseconds
arch = GateBased(error_rate=1e-4, gate_time=100, measurement_time=500)
Uruchamianie szacowania
Aby uruchomić oszacowanie, użyj estimate funkcji i przekaż następujące dane wejściowe:
- Application
- Architecture
- Zapytanie o fizyczny zestaw instrukcji (ISA)
- Maksymalna szybkość błędów
Zapytanie ISA określa dla narzędzia do szacowania zasobów, które kombinacje kodu korekcji błędów i protokołów destylacji w fabryce T należy poddać ocenie. Narzędzie do szacowania zasobów znajduje zestaw wyników zoptymalizowany pod kątem granic Pareto z tych kombinacji. W tym przykładzie użyj domyślnego protokołu SurfaceCode QEC i RoundBasedFactory destylacji, który jest udostępniany przez estymator zasobów.
from qdk.qre import estimate
from qdk.qre.models import SurfaceCode, RoundBasedFactory
results = estimate(app, arch, isa_query=SurfaceCode.q() * RoundBasedFactory.q(), max_error=0.01)```
Wyświetlanie wyników
Aby wyświetlić optymalne kombinacje liczby kubitów fizycznych i czasu wykonywania programu, użyj metody as_frame, aby wyświetlić wyniki estymacji w obiekcie pandas DataFrame.
results.as_frame()
Aby wykreślić wyniki, użyj metody plot_estimates i przekaż jednostkę czasu wykonywania.
from qdk.qre import plot_estimates
plot_estimates(results, figsize=(6, 4), runtime_unit="ms")