Lewati ke konten utama

Inisialisasi Qubit

Versi paket

Kode di halaman ini dikembangkan menggunakan persyaratan berikut. Kami merekomendasikan menggunakan versi ini atau yang lebih baru.

qiskit-ibm-runtime~=0.46.1

Saat sebuah sirkuit dieksekusi pada unit pemrosesan kuantum (QPU) IBM®, biasanya dilakukan reset implisit di awal Circuit untuk memastikan qubit diinisialisasi ke nol. Ini dikendalikan oleh flag init_qubits, yang diatur sebagai opsi eksekusi primitive.

Namun, ketidaksempurnaan dalam proses reset bisa menimbulkan kesalahan persiapan state. Untuk mengurangi kesalahan ini, QPU juga menyisipkan waktu tunda repetisi (atau rep_delay) di antara circuit. Setiap Backend memiliki rep_delay default yang berbeda, tapi biasanya diatur untuk menyeimbangkan fidelitas reset dengan total waktu eksekusi. Jalankan backend.default_rep_delay untuk menemukan rep_delay default bagi QPU tertentu.

Karena semua QPU IBM menggunakan eksekusi repetition rate dinamis, kamu bisa mengubah rep_delay untuk setiap job. Circuit yang kamu kirimkan dalam sebuah primitive job digabungkan untuk dieksekusi di QPU. Circuit-circuit ini dieksekusi dengan mengiterasi setiap circuit untuk setiap shot yang diminta; eksekusinya bersifat kolom-per-kolom pada matriks circuit dan shot, seperti yang diilustrasikan pada gambar berikut.

Kolom pertama mewakili shot 0.  Circuit dijalankan secara berurutan dari 0 hingga 3.  Kolom kedua mewakili shot 1.  Circuit dijalankan secara berurutan dari 0 hingga 3.  Kolom-kolom berikutnya mengikuti pola yang sama.

Karena rep_delay disisipkan di antara circuit, setiap shot eksekusi mengalami tunda ini. Oleh karena itu, ketika kamu menurunkan rep_delay, total waktu eksekusi QPU berkurang, dengan konsekuensi meningkatnya tingkat kesalahan persiapan state, seperti yang diilustrasikan pada gambar berikut:

Gambar ini menunjukkan bahwa semakin rendah nilai rep_delay, semakin tinggi tingkat kesalahan persiapan state.

Jika kamu menetapkan rep_delay=0 dan init_qubits=False secara bersamaan, circuit-circuit tersebut "menggabung", karena qubit akan dimulai dari state akhir shot sebelumnya.

Perlu diketahui bahwa meskipun circuit dalam sebuah primitive job digabungkan untuk eksekusi QPU, tidak ada jaminan urutan circuit dari PUB akan dieksekusi. Misalnya, jika kamu mengirimkan pubs=[pub1, pub2], circuit dari pub1 mungkin tidak dijalankan sebelum pub2. Tidak ada pula jaminan bahwa circuit dari job yang sama akan dijalankan sebagai satu batch tunggal di QPU.

Menentukan rep_delay untuk sebuah primitive job

Verifikasi nilai rep_delay untuk sebuah QPU

Selalu verifikasi rentang rep_delay yang didukung untuk QPU tertentu yang kamu gunakan. Nilai-nilai ini tidak sama untuk setiap QPU dan juga dapat berubah seiring waktu.

Perlu diketahui bahwa peningkatan rep_delay akan berdampak langsung pada waktu eksekusi dan konsumsi kapasitasmu.

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler

service = QiskitRuntimeService()

# Make sure your backend supports it
backend = service.least_busy(
operational=True, min_num_qubits=100, dynamic_reprate_enabled=True
)

# Determine the allowable range
backend.rep_delay_range
sampler = Sampler(mode=backend)

# Specify a value in the supported range
sampler.options.execution.rep_delay = 0.0005

Langkah selanjutnya

Rekomendasi