As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
O comando device.run(…)
define uma tarefa quântica com um ID de tarefa quântica exclusivo. Você pode consultar e rastrear o status task.state()
conforme mostrado no exemplo a seguir.
Nota: task = device.run()
é uma operação assíncrona, o que significa que você pode continuar trabalhando enquanto o sistema processa sua tarefa quântica em segundo plano.
Recuperar um resultado
Quando você ligatask.result()
, o SDK começa a sondagem Amazon Braket para ver se a tarefa quântica está completa. O SDK usa os parâmetros de pesquisa que você definiu em. .run()
Depois que a tarefa quântica é concluída, o SDK recupera o resultado do bucket S3 e o retorna como um objeto. QuantumTaskResult
# 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
Cancelar uma tarefa quântica
Para cancelar uma tarefa quântica, chame o cancel()
método, conforme mostrado no exemplo a seguir.
# cancel quantum task
task.cancel()
status = task.state()
print('Status of task:', status)
Status of task: CANCELLING
Verifique os metadados
Você pode verificar os metadados da tarefa quântica concluída, conforme mostrado no exemplo a seguir.
# 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
Recupere uma tarefa ou resultado quântico
Se o kernel morrer após o envio da tarefa quântica ou se você fechar o notebook ou o computador, você poderá reconstruir o task
objeto com seu ARN (ID de tarefa quântica) exclusivo. Em seguida, você pode ligar task.result()
para obter o resultado do bucket do S3 em que ele está armazenado.
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()