Share via


Ausführen mehrerer Konfigurationen von target Parametern mit dem Resource Estimator

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

Informationen zum Ausführen des Resource Estimators finden Sie unter Verschiedene Methoden zur Verwendung des Resource Estimators.

Voraussetzungen

Die folgenden Voraussetzungen sind erforderlich, um den Resource Estimator auszuführen:

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

Wenn Sie Python in VS Code verwenden möchten, benötigen Sie außerdem Folgendes:

  • Installieren Sie die neueste Version von 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 Resource Estimator zu übermitteln, benötigen Sie Folgendes:


Batchverarbeitung mit dem Resource Estimator

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

Ein Ressourcenschätzungsauftrag besteht aus zwei Typen von Auftragsparametern:

  • Zielparameter: Qubitmodell, 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 einen einzigen Auftrag übermitteln möchten:

  • Übermitteln Sie mehrere target Parameter mit denselben Vorgangsargumenten in allen Elementen.
  • Übermitteln Sie mehrere target Parameter mit unterschiedlichen Vorgangsargumenten in allen Elementen.
  • Vergleichen Sie problemlos mehrere Ergebnisse in einem tabellarischen Format.
  • Vergleichen Sie problemlos mehrere Ergebnisse in einem Diagramm.

Wenn Sie die Ressourcen eines Q# Programms schätzen, können Sie mehrere Konfigurationen von target Parametern ausführen, die auch als Batchverarbeitung bezeichnet werden. Die Batchverarbeitung mit Q# kann in einem Jupyter Notebook 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 Qubitparameter und das floquet_code QEC-Schema.

Fügen Sie im gleichen Jupyter Notebook 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 Sie sechs Konfigurationen von target Parametern als einzelnen Auftrag übermitteln.

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 dem Resource Estimator ein Problem aufgetreten ist, lesen Sie die Seite Problembehandlung, oder wenden Sie sich an AzureQuantumInfo@microsoft.com.