Melacak tugas kuantum dari Amazon Braket SDK - Amazon Braket

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Melacak tugas kuantum dari Amazon Braket SDK

Perintah device.run(…​) mendefinisikan tugas kuantum dengan ID tugas kuantum yang unik. Anda dapat membuat kueri dan melacak status dengan task.state() seperti yang ditunjukkan dalam contoh berikut.

Catatan: task = device.run() adalah operasi asinkron, yang berarti Anda dapat terus bekerja saat sistem memproses tugas kuantum Anda di latar belakang.

Ambil hasilnya

Saat Anda menelepontask.result(), pemungutan suara SDK dimulai Amazon Braket untuk melihat apakah tugas kuantum selesai. SDKMenggunakan parameter polling yang Anda tentukan. .run() Setelah tugas kuantum selesai, SDK mengambil hasil dari bucket S3 dan mengembalikannya sebagai QuantumTaskResult objek.

# 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

Batalkan tugas kuantum

Untuk membatalkan tugas kuantum, panggil cancel() metode, seperti yang ditunjukkan pada contoh berikut.

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

Periksa metadata

Anda dapat memeriksa metadata tugas kuantum yang sudah selesai, seperti yang ditunjukkan pada contoh berikut.

# 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

Mengambil tugas atau hasil kuantum

Jika kernel Anda mati setelah Anda mengirimkan tugas kuantum atau jika Anda menutup notebook atau komputer Anda, Anda dapat merekonstruksi task objek dengan uniknya ARN (ID tugas kuantum). Kemudian Anda dapat memanggil task.result() untuk mendapatkan hasil dari bucket S3 tempat penyimpanannya.

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