Seguimiento de tareas cuánticas desde el SDK de Amazon Braket - Amazon Braket

¡Aprenda los fundamentos de la computación cuántica con! AWS Inscríbase en el plan de aprendizaje digital Amazon Braket y obtenga su propia insignia digital tras completar una serie de cursos de aprendizaje y una evaluación digital.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Seguimiento de tareas cuánticas desde el SDK de Amazon Braket

El comando device.run(…​) define una tarea cuántica con un identificador de tarea cuántica único. Puede consultar y realizar un seguimiento del estado con, tal y task.state() como se muestra en el siguiente ejemplo.

Nota: task = device.run() es una operación asíncrona, lo que significa que puedes seguir trabajando mientras el sistema procesa tu tarea cuántica en segundo plano.

Recupera un resultado

Cuando llamastask.result(), el SDK comienza a sondear a Amazon Braket para ver si la tarea cuántica está completa. El SDK usa los parámetros de sondeo que usted definió en.run(). Una vez completada la tarea cuántica, el SDK recupera el resultado del depósito de S3 y lo devuelve como un QuantumTaskResult objeto.

# 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

Cancela una tarea cuántica

Para cancelar una tarea cuántica, llame al cancel() método, como se muestra en el siguiente ejemplo.

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

Compruebe los metadatos

Puede comprobar los metadatos de la tarea cuántica finalizada, como se muestra en el siguiente ejemplo.

# 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

Recupera una tarea o resultado cuántico

Si su núcleo muere después de enviar la tarea cuántica o si cierra su cuaderno o computadora, puede reconstruir el task objeto con su ARN (ID de tarea cuántica) único. A continuación, puede llamar task.result() para obtener el resultado del depósito S3 en el que está almacenado.

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()