Lewati ke konten utama
Proyek ini masih dalam tahap beta. Menemukan bug? Buat isu GitHub. Punya pertanyaan atau ide? Tanya di Discussions — kami sangat menghargai masukan kamu!
Bagaimana kualitas terjemahan di halaman ini?

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.50.0

Saat sebuah circuit 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 "menyatu", 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 mengenai urutan eksekusi circuit dari PUB. 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 — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime v0.50.0
# from qiskit_ibm_runtime import QiskitRuntimeService, Sampler

# Client-side primitive introduced in qiskit-ibm-runtime v0.50.0
from qiskit_ibm_runtime.executor_sampler import 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