Utiliser des travaux Quantum Azure
Lorsque vous exécutez un programme quantique dans Azure Quantum, vous créez et exécutez un travail. Les étapes de création et d’exécution d’un travail dépendent du type de travail et du fournisseur et target que vous configurez pour l’espace de travail.
Propriétés du travail
Toutes les tâches ont en commun les propriétés suivantes :
Propriété | Description |
---|---|
Identifiant | Identificateur unique du travail. Il doit être unique dans l’espace de travail. |
Fournisseur | Qui devra exécuter votre tâche. |
Target | Sur quoi souhaitez-vous exécuter votre tâche. Par exemple, le matériel quantique lui-même ou le simulateur Quantum proposé par le fournisseur. |
Nom | Nom défini par l’utilisateur pour vous aider à organiser vos tâches. |
Paramètres | Paramètres d’entrée facultatifs pour targets. Consultez la documentation relative à la sélection target d’une définition de paramètres disponibles. |
Une fois que vous avez créé un travail, diverses métadonnées sont disponibles sur son état et son historique des exécutions.
Cycle de vie de tâche
Une fois que vous avez écrit votre programme quantique, vous pouvez sélectionner une target tâche et l’envoyer.
Ce diagramme illustre le workflow de base après l’envoi de votre travail :
Tout d’abord, Azure Quantum charge le travail dans le compte de stockage Azure que vous avez configuré dans l’espace de travail. Ensuite, le travail est ajouté à la file d’attente des travaux pour le fournisseur que vous avez spécifié dans le travail. Azure Quantum télécharge ensuite votre programme et le traduit pour le fournisseur. Le fournisseur traite le travail et retourne la sortie au stockage Azure, où il devient disponible au téléchargement.
Surveillance des travaux
Une fois que vous avez envoyé un travail, vous pouvez surveiller l’état du travail. Les états possibles des travaux sont les suivants :
Statut | Description |
---|---|
en attente | Le travail est en attente d’exécution. Certains travaux effectuent des tâches de prétraitement lorsqu’ils sont en attente. waiting est toujours le premier état. Toutefois, un travail peut passer à l’état executing avant que vous ne puissiez l’observer dans l’état waiting . |
en cours d’exécution | Le target travail est en cours d’exécution. |
succeeded | Le travail a abouti et la sortie est disponible. Il s’agit d’un état final. |
échec | Le travail a échoué et des informations d’erreur sont disponibles. Il s’agit d’un état final. |
annulé | L’utilisateur a demandé l’annulation de l’exécution du travail. Il s’agit d’un état final. Pour plus d’informations, consultez Annulation des travaux dans cet article. |
Les états succeeded
, failed
et cancelled
sont considérés comme des états finaux. Une fois qu’un travail est dans l’un de ces états, aucune autre mise à jour ne se produit et les données de sortie du travail correspondant ne changent pas.
Ce diagramme illustre les transitions d’état de travail possibles :
Une fois qu’un travail est correctement terminé, il présente un lien vers les données de sortie dans votre compte de stockage Azure. La façon dont vous accédez à ces données dépend du SDK ou de l’outil que vous avez utilisé pour soumettre le travail.
Guide pratique pour surveiller les travaux
Vous pouvez surveiller des travaux via Python, les Portail Azure et Azure CLI.
Toutes les propriétés du travail sont accessibles dans job.details
. Par exemple, vous pouvez accéder au nom du travail, à l’état et à l’ID comme suit :
print(job.details)
print("\nJob name:", job.details.name)
print("Job status:", job.details.status)
print("Job ID:", job.details.id)
{'additional_properties': {'isCancelling': False}, 'id': '0fc396d2-97dd-11ee-9958-6ca1004ff31f', 'name': 'MyPythonJob', 'provider_id': 'rigetti'...}
Job name: MyPythonJob
Job status: Succeeded
Job ID: fc396d2-97dd-11ee-9958-6ca1004ff31f
Nombres de travaux
Pour obtenir des nombres résultant d’un grand nombre de travaux, vous pouvez effectuer une installation locale des Quantum Development Kit outils. Avec une installation locale, vous pouvez stocker les ID de travail localement.
Vous pouvez copier le code suivant pour obtenir la liste des travaux et leurs résultats :
for job in workspace.list_jobs():
print(job.id, job.details.name, job.details.output_data_uri)
Annulation des travaux
Quand un travail n’est pas encore dans un état final (par exemple, succeeded
, failed
ou cancelled
), vous pouvez demander son annulation. Tous les fournisseurs annulent votre travail si son état est waiting
. En revanche, tous les fournisseurs ne prennent pas en charge l’annulation si votre travail est dans l’état executing
.
Remarque
Si vous annulez un travail alors que son exécution a commencé, votre compte risque d’être quand même facturé partiellement ou intégralement pour ce travail. Consultez la documentation sur la facturation du fournisseur que vous avez sélectionné.