Partager via


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 conditions préalables suivantes sont requises pour exécuter l’estimateur de ressources :

Pour exécuter des Q# 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 des extensions Python et Jupyter pour VS Code.

  • 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 :

  • Un compte Azure avec un abonnement actif. Si vous n’avez pas de compte Azure, inscrivez-vous gratuitement et inscrivez-vous à un abonnement de paiement à l’utilisation.
  • Un espace de travail Azure Quantum. Pour plus d’informations, consultez Créer un espace de travail Azure Quantum.

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, comme un seul travail pour éviter la réexécution de plusieurs travaux sur le même programme quantique.

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

  • Target paramètres : modèle 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 d’une configuration de target paramètres et d’arguments d’opération. Plusieurs éléments sont représentés sous la forme d’un tableau de paramètres de travail.

Certains scénarios où 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.

Traitement par lots de travaux à l’aide de différents langages

Sélectionnez les onglets souhaités pour obtenir des exemples de traitement par lots d’estimateur de ressources.

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. Q# Le traitement par lots peut être effectué dans un bloc-notes Jupyter 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 bloc-notes Jupyter 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 en tant que tâche unique.

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)

Remarque

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