

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Suivi des tâches quantiques à partir du SDK Amazon Braket
<a name="braket-monitor-tasks-sdk"></a>

La commande `device.run(…​)` définit une tâche quantique avec un identifiant de tâche quantique unique. Vous pouvez interroger et suivre le statut avec`task.state()`, comme indiqué dans l'exemple suivant.

 **Remarque** : `task = device.run()` il s'agit d'une opération asynchrone, ce qui signifie que vous pouvez continuer à travailler pendant que le système traite votre tâche quantique en arrière-plan.

 **Récupérez un résultat** 

Lorsque vous appelez`task.result()`, le SDK commence à interroger Amazon Braket pour voir si la tâche quantique est terminée. Le SDK utilise les paramètres de sondage que vous avez définis dans`.run()`. Une fois la tâche quantique terminée, le SDK extrait le résultat du compartiment S3 et le renvoie sous forme d'`QuantumTaskResult`objet.

```
# create a circuit, specify the device and run the circuit
circ = Circuit().rx(0, 0.15).ry(1, 0.2).cnot(0,2)
device = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1")
task = device.run(circ, s3_location, shots=1000)

# get ID and status of submitted task
task_id = task.id
status = task.state()
print('ID of task:', task_id)
print('Status of task:', status)
# wait for job to complete
while status != 'COMPLETED':
    status = task.state()
    print('Status:', status)
```

```
ID of task:
arn:aws:braket:us-west-2:123412341234:quantum-task/b68ae94b-1547-4d1d-aa92-1500b82c300d
Status of task: QUEUED
Status: QUEUED
Status: QUEUED
Status: QUEUED
Status: QUEUED
Status: QUEUED
Status: QUEUED
Status: QUEUED
Status: RUNNING
Status: RUNNING
Status: COMPLETED
```

 **Annuler une tâche quantique** 

Pour annuler une tâche quantique, appelez la `cancel()` méthode, comme indiqué dans l'exemple suivant.

```
# cancel quantum task
task.cancel()
status = task.state()
print('Status of task:', status)
```

```
Status of task: CANCELLING
```

 **Vérifiez les métadonnées** 

Vous pouvez vérifier les métadonnées de la tâche quantique terminée, comme indiqué dans l'exemple suivant.

```
# get the metadata of the quantum task
metadata = task.metadata()
# example of metadata
shots = metadata['shots']
date = metadata['ResponseMetadata']['HTTPHeaders']['date']
# print example metadata
print("{} shots taken on {}.".format(shots, date))

# print name of the s3 bucket where the result is saved
results_bucket = metadata['outputS3Bucket']
print('Bucket where results are stored:', results_bucket)
# print the s3 object key (folder name)
results_object_key = metadata['outputS3Directory']
print('S3 object key:', results_object_key)

# the entire look-up string of the saved result data
look_up = 's3://'+results_bucket+'/'+results_object_key
print('S3 URI:', look_up)
```

```
1000 shots taken on Wed, 05 Aug 2020 14:44:22 GMT.
Bucket where results are stored: amazon-braket-123412341234
S3 object key: simulation-output/b68ae94b-1547-4d1d-aa92-1500b82c300d
S3 URI: s3://amazon-braket-123412341234/simulation-output/b68ae94b-1547-4d1d-aa92-1500b82c300d
```

 **Récupérer une tâche ou un résultat quantique** 

Si votre noyau meurt après avoir soumis la tâche quantique ou si vous fermez votre bloc-notes ou votre ordinateur, vous pouvez reconstruire l'`task`objet avec son ARN (identifiant de tâche quantique) unique. Vous pouvez ensuite appeler `task.result()` pour obtenir le résultat depuis le compartiment S3 dans lequel il est stocké.

```
from braket.aws import AwsSession, AwsQuantumTask

# restore task with unique arn
task_load = AwsQuantumTask(arn=task_id)
# retrieve the result of the task
result = task_load.result()
```