So führen Sie mehrere Konfigurationen von target Parametern mit dem Ressourcenstimator aus

In diesem Artikel erfahren Sie, wie Sie mehrere Konfigurationen von target Parametern ausführen und mit dem Azure Quantum Resource Estimator vergleichen.

Informationen zum Ausführen der Ressourcenstimator finden Sie unter "Verschiedene Möglichkeiten zum Verwenden des Ressourcenstimators".

Voraussetzungen

Die folgenden Voraussetzungen sind erforderlich, um den Ressourcenschätzer auszuführen:

Zum Ausführen von Q# Programmen im Ressourcen-Estimator benötigen Sie Folgendes:

Wenn Sie Python in VS Code verwenden möchten, benötigen Sie auch Folgendes:

  • Installieren Sie die neueste Version der Python- und Jupyter-Erweiterungen für VS Code.

  • Das neueste Azure Quantum-Paket qsharp .

    python -m pip install --upgrade qsharp 
    

Um Aufträge an den Ressourcen-Estimator zu übermitteln, benötigen Sie Folgendes:

  • Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie nicht über ein Azure-Konto verfügen, registrieren Sie sich kostenlos, und registrieren Sie sich für ein Kostenpflichtiges Abonnement.
  • Azure Quantum-Arbeitsbereich Weitere Informationen finden Sie unter Erstellen eines Azure Quantum-Arbeitsbereichs.

Batchverarbeitung mit dem Ressourcen-Estimator

Mit dem Azure Quantum Resource Estimator können Sie Aufträge mit mehreren Konfigurationen von Auftragsparametern übermitteln, auch als Elemente bezeichnet, um zu vermeiden, dass mehrere Aufträge im gleichen Quantenprogramm erneut ausgeführt werden.

Ein Ressourcenschätzungsauftrag besteht aus zwei Typen von Auftragsparametern:

  • Target Parameter: Qubit-Modell, QEC-Schemas, Fehlerbudget, Einschränkungen auf Komponentenebene und Destillationseinheiten.
  • Vorgangsargumente: Argumente, die an das Programm übergeben werden können (wenn der QIR-Einstiegspunkt Argumente enthält).

Ein Element besteht aus einer Konfiguration von Auftragsparametern, d. h. einer Konfiguration von target Parametern und Vorgangsargumenten. Mehrere Elemente werden als Array von Auftragsparametern dargestellt.

Einige Szenarien, in denen Sie möglicherweise mehrere Elemente als einzelnen Auftrag übermitteln möchten:

  • Senden Sie mehrere target Parameter mit denselben Vorgangsargumenten in allen Elementen.
  • target Mehrere Parameter mit unterschiedlichen Vorgangsargumenten in allen Elementen übermitteln.
  • Vergleichen Sie einfach mehrere Ergebnisse in einem tabellarischen Format.
  • Vergleichen Sie einfach mehrere Ergebnisse in einem Diagramm.

Batchverarbeitungsaufträge mit unterschiedlichen Sprachen

Wählen Sie die gewünschten Registerkarten für Beispiele für die Ressourcenstimatorbatchverarbeitung aus.

Wenn Sie die Ressourcen eines Q# Programms schätzen, können Sie mehrere Konfigurationen von target Parametern ausführen, auch als Batchverarbeitung bezeichnet. Batchverarbeitung mit Q# kann in einem Jupyter-Notizbuch in VS-Code erfolgen.

Sie können eine Batchschätzung durchführen, indem Sie eine Liste von target Parametern an den params Parameter der qsharp.estimate Funktion übergeben. Das folgende Beispiel zeigt, wie zwei Konfigurationen von target Parametern als einzelner Auftrag übermittelt werden. Die erste Konfiguration verwendet die Standardparameter target , und die zweite Konfiguration verwendet den qubit_maj_ns_e6 Qubit-Parameter und das floquet_code QEC-Schema.

Fügen Sie im gleichen Jupyter-Notizbuch Ihres Q# Programms eine neue Zelle hinzu, und führen Sie den folgenden Code aus:

result_batch = qsharp.estimate("RunProgram()", params=
                [{}, # Default parameters
                {
                    "qubitParams": {
                        "name": "qubit_maj_ns_e6"
                    },
                    "qecScheme": {
                        "name": "floquet_code"
                    }
                }])
result_batch.summary_data_frame(labels=["Gate-based ns, 10⁻³", "Majorana ns, 10⁻⁶"])

Sie können auch eine Liste von Schätzungsparametern target mithilfe der EstimatorParams Klasse erstellen. Der folgende Code zeigt, wie sechs Konfigurationen von target Parametern als einzelner Auftrag übermittelt werden.

from qsharp.estimator import EstimatorParams, QubitParams, QECScheme

labels = ["Gate-based µs, 10⁻³", "Gate-based µs, 10⁻⁴", "Gate-based ns, 10⁻³", "Gate-based ns, 10⁻⁴", "Majorana ns, 10⁻⁴", "Majorana ns, 10⁻⁶"]

params = EstimatorParams(num_items=6)
params.error_budget = 0.333
params.items[0].qubit_params.name = QubitParams.GATE_US_E3
params.items[1].qubit_params.name = QubitParams.GATE_US_E4
params.items[2].qubit_params.name = QubitParams.GATE_NS_E3
params.items[3].qubit_params.name = QubitParams.GATE_NS_E4
params.items[4].qubit_params.name = QubitParams.MAJ_NS_E4
params.items[4].qec_scheme.name = QECScheme.FLOQUET_CODE
params.items[5].qubit_params.name = QubitParams.MAJ_NS_E6
params.items[5].qec_scheme.name = QECScheme.FLOQUET_CODE

qsharp.estimate("RunProgram()", params=params).summary_data_frame(labels=labels)

Hinweis

Wenn beim Arbeiten mit der Ressourcenschätzung probleme auftreten, schauen Sie sich die Seite "Problembehandlung" an, oder wenden Sie sich an den Kontakt AzureQuantumInfo@microsoft.com.