So installieren und verwenden Sie den Microsoft Quantum-Ressourcenschätzer

Die Microsoft Quantum-Ressourcenschätzung ist Teil des Microsoft Quantum Development Kit (QDK). In diesem Artikel erfahren Sie, wie Sie die Quantenressourcenschätzung installieren und eine Schätzung für ein einfaches Q#-Programm mit einem Standardarchitekturmodell ausführen.

Warning

Die Ressourcenschätzung in der QDK-Erweiterung für VS Code wird bald nicht mehr unterstützt. Verwenden Sie das qdk.qrePython Modul, um die Ressourcenschätzung durchzuführen.

Voraussetzungen

Um die Schritte in diesem Artikel auszuführen, müssen Sie folgendes installiert haben:

Installieren des Quantenressourcenschätzers

Die Ressourcenschätzung ist über das qdk.qrePython Modul verfügbar. Um den Ressourcenschätzer zu verwenden, installieren Sie die neueste Version der Bibliothek qdkPython mit dem Extra qre:

pip install --upgrade "qdk[qre]"

Tip

Sie müssen nicht über ein Azure Konto verfügen, um die Ressourcenschätzung zu verwenden.

Ausführen einer einfachen Ressourcenschätzung mit Standardeinstellungen

Um eine grundlegende Ressourcenschätzung durchzuführen, übergeben Sie dem Ressourcenschätzer ein Anwendungsmodell, ein Modell der Hardwarearchitektur und ein Fehlerkorrekturmodell. Führen Sie dann die Ressourcenschätzung aus, um die Ergebnisse zu erhalten. Im folgenden Beispiel wird die Ressourcenschätzung aus Jupyter Notebook im VS-Code ausgeführt.

Erstellen eines Anwendungsmodells

Verwenden Sie in diesem Beispiel den 1D Ising-Modellalgorithmus aus den Q#-Beispielen in der QDK VS Code-Erweiterung. Oder verwenden Sie eines Ihrer vorhandenen Q#-Programme.

Schreiben eines Q#-Programms

  1. Erstellen Sie in VS Code eine neue Textdatei, und speichern Sie die Datei unter ising-1d-sample.qs.
  2. Geben Sie in der ersten Zeile der Datei Beispiel ein, um die Q#-Beispielprogrammliste anzuzeigen.
  3. Wählen Sie "Ising Model(Simple 1D)"-Beispiel aus, und speichern Sie die Datei.

Erstellen einer Anwendung

Verwenden Sie das Q#-Programm, um ein Anwendungsmodell für die Ressourcenschätzung zu erstellen.

  1. Um eine neue Jupyter Notebook Datei in VS Code zu erstellen, öffnen Sie die Befehlspalette, und geben Sie "Create: New Jupyter Notebook" ein.

  2. Bewerten Sie in der ersten Notizbuchzelle das Q#-Programm.

    from pathlib import Path
    from qdk import qsharp
    
    qsharp.eval(Path("ising-1d-sample.qs").read_text(encoding="utf-8"))
    

    Dieser Code erstellt ein Main Objekt im qdk.code Namespace, das das Q#-Programm enthält.

  3. Erstellen Sie in einer neuen Zelle eine Ressourcenschätzungsanwendung aus dem Q#-Programm.

    import qdk
    from qdk.qre.application import QSharpApplication
    
    app = QSharpApplication(qdk.code.Main)
    

Erstellen eines Architekturmodells

Verwenden Sie für die Hardwarearchitektur das Standardmodell GateBased, das mit dem Ressourcenschätzer mitgeliefert wird. Das GateBased Modell erfordert Eingaben für Fehlerrate, Torzeit und Messzeit.

Erstellen Sie in einer neuen Zelle eine gatterbasierte Architektur mit einer Fehlerrate von $10^{-4}$, einer Gatterzeit von 100 ns und einer Messzeit von 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)

Ausführen einer Schätzung

Um eine Schätzung auszuführen, verwenden Sie die estimate Funktion, und übergeben Sie die folgenden Eingaben:

  • Application
  • Architecture
  • Abfrage des physischen Befehlssatzes (ISA)
  • Maximale Fehlerrate

Die ISA-Abfrage teilt dem Ressourcenschätzer mit, welche Kombinationen aus Fehlerkorrekturcodes und T-Factory-Destillationsprotokollen ausgewertet werden sollen. Der Ressourcenschätzer findet die im Hinblick auf die Pareto-Grenze optimierte Ergebnismenge aus diesen Kombinationen. Verwenden Sie in diesem Beispiel das standardmäßige SurfaceCode QEC- und RoundBasedFactory Destillationsprotokoll, das im Ressourcenschätzer enthalten ist.

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)```

Anzeigen der Ergebnisse

Um die optimalen Kombinationen der Anzahl der physischen Qubits und der Programmlaufzeit anzuzeigen, verwenden Sie die as_frame Methode, um die Schätzungsergebnisse in einem Pandas DataFrame anzuzeigen.

results.as_frame()

Um die Ergebnisse darzustellen, verwenden Sie die Methode plot_estimates und übergeben Sie eine Einheit für die Laufzeit.

from qdk.qre import plot_estimates

plot_estimates(results, figsize=(6, 4), runtime_unit="ms")