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 depuis Amazon Braket SDK
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 avectask.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 appeleztask.result()
, il SDK commence à interroger Amazon Braket pour voir si la tâche quantique est terminée. SDKUtilise les paramètres de sondage que vous avez définis dans.run()
. Une fois la tâche quantique terminée, le résultat est SDK extrait 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 identifiant unique ARN (identifiant de tâche quantique). 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()