Jak zainstalować narzędzie do szacowania zasobów kwantowych Microsoft i korzystać z niego

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:

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#

  1. W programie VS Code utwórz nowy plik tekstowy i zapisz plik jako ising-1d-sample.qs.
  2. W pierwszym wierszu pliku wprowadź przykład , aby wyświetlić listę przykładowych programów języka Q#.
  3. 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.

  1. Aby utworzyć nowy plik Jupyter Notebook w programie VS Code, otwórz paletę poleceń i wprowadź polecenie Utwórz: Nowy Jupyter Notebook.

  2. 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 Main obiekt w qdk.code przestrzeni nazw zawierającej program języka Q#.

  3. 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")