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 :
- La dernière version de Visual Studio Code ou ouvrir VS Code sur le web.
- La dernière version de l’extension Kit de développement Azure Quantum. Pour plus d’informations sur l’installation, consultez Installation du QDK sur VS Code.
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.