Jalankan sirkuit pertama Anda menggunakan SDK Python Amazon Braket - Amazon Braket

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

Jalankan sirkuit pertama Anda menggunakan SDK Python Amazon Braket

Tip

Pelajari dasar-dasar komputasi kuantum dengan AWS! Daftar di Amazon Braket Digital Learning Plan dan dapatkan lencana Digital Anda sendiri setelah menyelesaikan serangkaian kursus pembelajaran dan penilaian digital.

Setelah instans notebook Anda diluncurkan, buka instans dengan antarmuka Jupyter standar dengan memilih notebook yang baru saja Anda buat.

Antarmuka notebook yang menunjukkan instance notebook yang ada bernama amazon-braket-test dengan status InService dan URL-nya.

AmazonInstans notebook Braket sudah diinstal sebelumnya dengan Amazon Braket SDK dan semua dependensinya. Mulailah dengan membuat notebook baru dengan Kernel conda_braket.

Antarmuka peluncur untuk Notebook, Konsol, dan alat lainnya seperti Terminal, File Teks, File Markdown, File Python, dengan lingkungan Python conda_braket yang disorot.

Anda bisa mulai dengan yang sederhana seperti “Halo, dunia!” contoh. Pertama, bangun sirkuit yang mempersiapkan keadaan Bell, dan kemudian jalankan sirkuit pada perangkat yang berbeda untuk mendapatkan hasil.

Mulailah dengan mengimpor modul Amazon Braket SDK dan mendefinisikan sirkuit Bell State sederhana.

import boto3 from braket.aws import AwsDevice from braket.devices import LocalSimulator from braket.circuits import Circuit # create the circuit bell = Circuit().h(0).cnot(0, 1)

Anda dapat memvisualisasikan sirkuit dengan perintah ini:

print(bell)

Jalankan sirkuit Anda di simulator lokal

Selanjutnya, pilih perangkat kuantum untuk menjalankan sirkuit. AmazonBraket SDK hadir dengan simulator lokal untuk pembuatan prototipe dan pengujian cepat. Kami merekomendasikan menggunakan simulator lokal untuk sirkuit yang lebih kecil, yang bisa mencapai 25 qubits (tergantung pada perangkat keras lokal Anda).

Berikut cara untuk instantiate simulator lokal:

# instantiate the local simulator local_sim = LocalSimulator()

dan menjalankan sirkuit:

# run the circuit result = local_sim.run(bell, shots=1000).result() counts = result.measurement_counts print(counts)

Anda seharusnya melihat hasil seperti ini:

Counter({'11': 503, '00': 497})

Status Bell spesifik yang telah Anda siapkan adalah superposisi yang sama dari |00> dan |11>, dan Anda akan menemukan distribusi 00 dan 11 yang kira-kira sama (hingga shot noise) sebagai hasil pengukuran, seperti yang diharapkan.

Jalankan sirkuit Anda pada simulator sesuai permintaan

AmazonBraket juga menyediakan akses ke simulator berkinerja tinggi sesuai permintaanSV1, untuk menjalankan sirkuit yang lebih besar. SV1adalah simulator vektor negara sesuai permintaan yang memungkinkan simulasi sirkuit kuantum hingga 34. qubits Anda dapat menemukan informasi selengkapnya SV1 di bagian Perangkat yang Didukung dan di AWS konsol. Saat menjalankan tugas kuantum pada SV1 (dan di TN1 atau QPU apa pun), hasil tugas kuantum Anda disimpan dalam bucket S3 di akun Anda. Jika Anda tidak menentukan bucket, Braket SDK akan membuat bucket default amazon-braket-{region}-{accountID} untuk Anda. Untuk mempelajari lebih lanjut, lihat Mengelola akses ke Amazon Braket.

catatan

Isi nama bucket sebenarnya yang ada di mana contoh berikut menunjukkan example-bucket sebagai nama bucket Anda. Nama bucket untuk Amazon Braket selalu dimulai dengan amazon-braket- diikuti oleh karakter pengenal lain yang Anda tambahkan. Jika Anda memerlukan informasi tentang cara menyiapkan bucket S3, lihat Memulai Amazon S3.

# get the account ID aws_account_id = boto3.client("sts").get_caller_identity()["Account"] # the name of the bucket my_bucket = "example-bucket" # the name of the folder in the bucket my_prefix = "simulation-output" s3_folder = (my_bucket, my_prefix)

Untuk menjalankan sirkuitSV1, Anda harus memberikan lokasi bucket S3 yang sebelumnya Anda pilih sebagai argumen posisi dalam panggilan. .run()

# choose the cloud-based on-demand simulator to run your circuit device = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1") # run the circuit task = device.run(bell, s3_folder, shots=100) # display the results print(task.result().measurement_counts)

Konsol Amazon Braket memberikan informasi lebih lanjut tentang tugas kuantum Anda. Arahkan ke tab Quantum Tasks di konsol dan tugas kuantum Anda harus berada di bagian atas daftar. Atau, Anda dapat mencari tugas kuantum Anda menggunakan ID tugas kuantum unik atau kriteria lainnya.

catatan

Setelah 90 hari, Amazon Braket secara otomatis menghapus semua ID tugas kuantum dan metadata lain yang terkait dengan tugas kuantum Anda. Untuk informasi lebih lanjut, lihat Retensi data.

Berjalan di QPU

Dengan Amazon Braket, Anda dapat menjalankan contoh sirkuit kuantum sebelumnya pada komputer kuantum fisik hanya dengan mengubah satu baris kode. Amazon Braket menyediakan akses ke QPU perangkat dariIonQ,, Oxford Quantum CircuitsQuEra, dan. Rigetti Anda dapat menemukan informasi tentang berbagai perangkat dan jendela ketersediaan di bagian Perangkat yang Didukung, dan di AWS konsol di bawah tab Perangkat. Contoh berikut menunjukkan cara membuat instance perangkat. Rigetti

# choose the Rigetti hardware to run your circuit device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3")

Pilih IonQ perangkat dengan kode ini:

# choose the Ionq device to run your circuit device = AwsDevice("arn:aws:braket:us-east-1::device/qpu/ionq/Harmony")

Setelah memilih perangkat dan sebelum menjalankan beban kerja, Anda dapat menanyakan kedalaman antrian perangkat dengan kode berikut untuk menentukan jumlah tugas kuantum atau pekerjaan hibrida. Selain itu, pelanggan dapat melihat kedalaman antrian khusus perangkat di halaman Perangkat. Amazon Braket Management Console

# Print your queue depth print(device.queue_depth().quantum_tasks) # returns the number of quantum tasks queued on the device {<QueueType.NORMAL: 'Normal'>: '0', <QueueType.PRIORITY: 'Priority'>: '0'} print(device.queue_depth().jobs) '2' # returns the number of hybrid jobs queued on the device

Saat Anda menjalankan tugas, SDK Amazon Braket melakukan polling untuk hasil (dengan batas waktu default 5 hari). Anda dapat mengubah default ini dengan memodifikasi poll_timeout_seconds parameter dalam .run() perintah seperti yang ditunjukkan pada contoh berikut. Perlu diingat bahwa jika batas waktu polling Anda terlalu pendek, hasil mungkin tidak dikembalikan dalam waktu polling, seperti ketika QPU tidak tersedia dan kesalahan batas waktu lokal dikembalikan. Anda dapat merestart pemungutan suara dengan memanggil fungsi task.result().

# define quantum task with 1 day polling timeout task = device.run(bell, s3_folder, poll_timeout_seconds=24*60*60) print(task.result().measurement_counts)

Selain itu, setelah mengirimkan tugas kuantum atau pekerjaan hibrida Anda, Anda dapat memanggil queue_position() fungsi untuk memeriksa posisi antrian Anda.

print(task.queue_position().queue_position) # Return the number of quantum tasks queued ahead of you '2'