Pengawalan Qubit
Versi pakej
Kod pada halaman ini dibangunkan menggunakan keperluan berikut. Kami mengesyorkan menggunakan versi ini atau yang lebih baharu.
qiskit-ibm-runtime~=0.50.0
Apabila litar dilaksanakan pada unit pemprosesan kuantum (QPU) IBM®, set semula tersirat biasanya dimasukkan pada permulaan litar untuk memastikan qubit diinisialisasi kepada sifar. Ini dikawal oleh bendera init_qubits, ditetapkan sebagai pilihan pelaksanaan primitif.
Walau bagaimanapun, ketidaksempurnaan dalam proses set semula boleh menyebabkan ralat penyediaan keadaan. Untuk mengurangkan ralat, QPU juga memasukkan masa lengah pengulangan (atau rep_delay) antara Circuit. Setiap backend mempunyai rep_delay lalai yang berbeza, tetapi biasanya ditetapkan untuk mengimbangi kesetiaan set semula dengan jumlah masa pelaksanaan. Jalankan backend.default_rep_delay untuk mencari rep_delay lalai bagi QPU tertentu.
Kerana semua QPU IBM menggunakan pelaksanaan kadar pengulangan dinamik, anda boleh menukar rep_delay untuk setiap kerja. Circuit yang anda hantar dalam kerja primitif dibungkus bersama untuk dilaksanakan pada QPU. Circuit ini dilaksanakan dengan berulang ke atas Circuit untuk setiap shot yang diminta; pelaksanaan adalah mengikut lajur atas matriks Circuit dan shot, seperti yang ditunjukkan dalam rajah berikut.

Kerana rep_delay dimasukkan antara Circuit, setiap shot pelaksanaan menghadapi lengahan ini. Oleh itu, apabila anda menurunkan rep_delay, jumlah masa pelaksanaan QPU berkurang, tetapi kadar ralat penyediaan keadaan akan meningkat, seperti yang ditunjukkan oleh imej berikut:

Jika anda menetapkan kedua-dua rep_delay=0 dan init_qubits=False, Circuit "bergabung" bersama, kerana qubit akan bermula dalam keadaan akhir dari shot sebelumnya.
Perhatikan bahawa walaupun Circuit dalam kerja primitif dibungkus bersama untuk pelaksanaan QPU, tiada jaminan tentang urutan pelaksanaan Circuit dari PUB. Sebagai contoh, jika anda menghantar pubs=[pub1, pub2], Circuit dari pub1 mungkin tidak berjalan sebelum Circuit dari pub2. Juga tiada jaminan bahawa Circuit dari kerja yang sama akan berjalan sebagai satu kelompok pada QPU.
Tentukan rep_delay untuk kerja primitif
Sentiasa sahkan julat rep_delay yang disokong untuk QPU tertentu yang anda gunakan. Nilai-nilai ini tidak sama untuk setiap QPU dan juga boleh berubah dari masa ke masa.
Sila ambil perhatian bahawa peningkatan dalam rep_delay akan memberi kesan langsung kepada masa pelaksanaan dan penggunaan kapasiti anda.
# 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 seterusnya
- Cuba contoh dalam tutorial Algoritma pengoptimuman anggaran kuantum (QAOA).
- Semak cara memulakan dengan Estimator.
- Semak cara memulakan dengan Sampler.