Share via


Come eseguire più configurazioni di target parametri con Lo strumento di stima delle risorse

In questo articolo viene illustrato come eseguire più configurazioni di target parametri e confrontarli usando Azure Quantum Resource Estimator.

Per informazioni su come eseguire l'utilità di stima delle risorse, vedere Modi diversi per usare l'utilità di stima delle risorse.

Prerequisiti

Per eseguire l'oggetto Resource Estimator sono necessari i prerequisiti seguenti:

Per eseguire Q# programmi in Resource Estimator, è necessario quanto segue:

Se si vuole usare Python in VS Code, è necessario anche quanto segue:

  • Installare la versione più recente delle estensioni Python e Jupyter per VS Code.

  • Il pacchetto Azure Quantum qsharp più recente.

    python -m pip install --upgrade qsharp 
    

Per inviare processi a Resource Estimator, è necessario quanto segue:


Batch con l'oggetto Stima risorse

Azure Quantum Resource Estimator consente di inviare processi con più configurazioni di parametri del processo, detti anche elementi, come un singolo processo per evitare di ripetere più processi nello stesso programma quantistico.

Un processo di stima delle risorse è costituito da due tipi di parametri di processo:

  • Parametri di destinazione: modello qubit, schemi QEC, budget degli errori, vincoli per le unità a livello di componente e combinazioni.
  • Argomenti dell'operazione: argomenti che possono essere passati al programma (se il punto di ingresso DI QIR contiene argomenti).

Un elemento è costituito da una configurazione di parametri del processo, ovvero una configurazione di target parametri e argomenti di operazione. Diversi elementi sono rappresentati come matrice di parametri del processo.

Alcuni scenari in cui è possibile inviare più elementi come singolo processo:

  • Inviare più target parametri con gli stessi argomenti dell'operazione in tutti gli elementi.
  • Inviare più target parametri con argomenti di operazione diversi in tutti gli elementi.
  • Confrontare facilmente più risultati in un formato tabulare.
  • Confrontare facilmente più risultati in un grafico.

Se si stimano le risorse di un Q# programma, è possibile eseguire più configurazioni di target parametri, note anche come batch. Il batch con Q# può essere eseguito in un Jupyter Notebook in VS Code.

È possibile eseguire una stima batch passando un elenco di target parametri al params parametro della qsharp.estimate funzione. Nell'esempio seguente viene illustrato come inviare due configurazioni di target parametri come singolo processo. La prima configurazione usa i parametri predefiniti target e la seconda configurazione usa il qubit_maj_ns_e6 parametro qubit e lo floquet_code schema QEC.

Nella stessa Jupyter Notebook del Q# programma aggiungere una nuova cella ed eseguire il codice seguente:

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⁻⁶"])

È anche possibile creare un elenco di parametri di stima target usando la EstimatorParams classe . Il codice seguente illustra come inviare sei configurazioni di target parametri come singolo processo.

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)

Nota

Se si verifica un problema durante l'uso di Resource Estimator, vedere la pagina Risoluzione dei problemi o contattare AzureQuantumInfo@microsoft.com.