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.
Cible 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 :

Flux de travail quantique Azure

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 :

Diagramme montrant le flux de travail d’une soumission de travail à Azure Qauntum.

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é.