Comment exécuter plusieurs configurations de target paramètres avec l’estimateur de ressources

Dans cet article, vous allez apprendre à exécuter plusieurs configurations de target paramètres et à les comparer à l’aide de l’estimateur de ressources Azure Quantum.

Pour plus d’informations sur l’exécution de l’estimateur de ressources, consultez Différentes façons d’utiliser l’estimateur de ressources.

Prérequis

Les prérequis suivants sont requis pour exécuter l’estimateur de ressources :

Pour exécuter Q# des programmes dans l’estimateur de ressources, vous avez besoin des éléments suivants :

Si vous souhaitez utiliser Python dans VS Code, vous avez également besoin des éléments suivants :

  • Installez la dernière version de Python et les extensions Jupyter pour VS Code.

  • Le dernier package Azure Quantum qsharp .

    python -m pip install --upgrade qsharp 
    

Pour envoyer des travaux à l’estimateur de ressources, vous avez besoin des éléments suivants :


Traitement par lots avec l’estimateur de ressources

L’estimateur de ressources Azure Quantum vous permet d’envoyer des travaux avec plusieurs configurations de paramètres de travail, également appelés éléments, en tant que travail unique pour éviter de réexécuter plusieurs travaux sur le même programme quantique.

Un travail d’estimation des ressources se compose de deux types de paramètres de travail :

  • Paramètres cibles : modèle de qubit, schémas QEC, budget d’erreur, contraintes au niveau du composant et unités de distillation.
  • Arguments d’opération : arguments qui peuvent être passés au programme (si le point d’entrée QIR contient des arguments).

Un élément se compose d’une configuration de paramètres de travail, c’est-à-dire une configuration de paramètres et d’arguments target d’opération. Plusieurs éléments sont représentés sous la forme d’un tableau de paramètres de travail.

Voici quelques scénarios dans lesquels vous souhaiterez peut-être envoyer plusieurs éléments en tant que tâche unique :

  • Envoyez plusieurs target paramètres avec les mêmes arguments d’opération dans tous les éléments.
  • Envoyez plusieurs target paramètres avec différents arguments d’opération dans tous les éléments.
  • Comparez facilement plusieurs résultats dans un format tabulaire.
  • Comparez facilement plusieurs résultats dans un graphique.

Si vous estimez les ressources d’un Q# programme, vous pouvez exécuter plusieurs configurations de target paramètres, également appelées traitement par lots. Le traitement par lot avec Q# peut être effectué dans un Jupyter Notebook dans VS Code.

Vous pouvez effectuer une estimation par lot en passant une liste de target paramètres au params paramètre de la qsharp.estimate fonction . L’exemple suivant montre comment envoyer deux configurations de target paramètres en tant que tâche unique. La première configuration utilise les paramètres par défaut target , et la deuxième configuration utilise le qubit_maj_ns_e6 paramètre qubit et le floquet_code schéma QEC.

Dans le même Jupyter Notebook de votre Q# programme, ajoutez une nouvelle cellule et exécutez le code suivant :

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

Vous pouvez également construire une liste de paramètres d’estimation target à l’aide de la EstimatorParams classe . Le code suivant montre comment envoyer six configurations de target paramètres sous la forme d’un seul travail.

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)

Notes

Si vous rencontrez un problème lors de l’utilisation de l’estimateur de ressources, case activée la page Résolution des problèmes ou contactez AzureQuantumInfo@microsoft.com.