Membangun sirkuit pertama Anda - Amazon Braket

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

Membangun sirkuit pertama Anda

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

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

Instans notebook Amazon Braket sudah diinstal sebelumnya dengan Amazon Braket dan semua dependensinya. SDK 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 SDK Braket 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. Amazon Braket 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 yang kira-kira sama (hingga shot noise) distribusi 00 dan 11 sebagai hasil pengukuran, seperti yang diharapkan.

Jalankan sirkuit Anda pada simulator sesuai permintaan

Amazon Braket juga menyediakan akses ke simulator berkinerja tinggi sesuai permintaan, SV1, untuk menjalankan sirkuit yang lebih besar. SV1 adalah simulator vektor negara sesuai permintaan yang memungkinkan simulasi sirkuit kuantum hingga 34 qubits. Anda dapat menemukan informasi lebih lanjut tentang SV1 di bagian Perangkat yang Didukung dan di AWS konsol. Saat menjalankan tugas kuantum di SV1 (dan pada TN1 atau apa sajaQPU), hasil tugas kuantum Anda disimpan dalam ember S3 di akun Anda. Jika Anda tidak menentukan bucket, Braket akan SDK 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 amzn-s3-demo-bucket sebagai nama bucket Anda. Nama ember 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 = "amzn-s3-demo-bucket" # the name of the folder in the bucket my_prefix = "simulation-output" s3_folder = (my_bucket, my_prefix)

Untuk menjalankan sirkuit SV1, 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 tugas kuantum IDs 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 dari IonQ, IQM, QuEra, 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 bagaimana membuat instance IQM perangkat.

# choose the IQM hardware to run your circuit device = AwsDevice("arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet")

Atau pilih sebuah IonQ perangkat dengan kode ini:

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

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, Amazon Braket melakukan SDK 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 singkat, hasil mungkin tidak dikembalikan dalam waktu polling, seperti ketika tidak QPU 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'