אתחול Qubit
Package versions
הקוד בעמוד זה פותח באמצעות הדרישות הבאות. אנו ממליצים להשתמש בגרסאות אלו או חדשות יותר.
qiskit-ibm-runtime~=0.47.0
כאשר Circuit מבוצע על יחידת עיבוד קוונטית (QPU) של IBM®, איפוס מרומז מוכנס בדרך כלל בתחילת ה-Circuit כדי להבטיח שה-Qubit מאותחלים לאפס. הדבר נשלט על ידי הדגל init_qubits, המוגדר כאפשרות ביצוע של הפרימיטיב.
עם זאת, פגמים בתהליך האיפוס עלולים להכניס שגיאות הכנת מצב. כדי לצמצם את השגיאה, ה-QPU גם מכניס זמן עיכוב חזרה (או rep_delay) בין Circuits. לכל Backend יש rep_delay שונה כברירת מחדל, אך בדרך כלל הוא נקבע כך שיאזן בין נאמנות האיפוס (fidelity) לבין זמן הביצוע הכולל. הפעל את backend.default_rep_delay כדי למצוא את ה-rep_delay כברירת מחדל עבור QPU ספציפי.
מכיוון שכל ה-QPU של IBM משתמשים בביצוע בקצב חזרה דינמי, אתה יכול לשנות את rep_delay לכל עבודה. ה-Circuits שאתה מגיש בעבודת פרימיטיב מקובצים יחד לביצוע על ה-QPU. ה-Circuits הללו מבוצעים באיטרציה על ה-Circuits לכל shot שהתבקש; הביצוע הוא לפי עמודות על מטריצת Circuits ו-shots, כפי שמוצג בתרשים הבא.

מכיוון ש-rep_delay מוכנס בין Circuits, כל shot של הביצוע נתקל בעיכוב זה. לכן, ככל שמורידים את ה-rep_delay, זמן ביצוע ה-QPU הכולל פוחת, על חשבון עלייה בשיעור שגיאת הכנת המצב, כפי שהתמונה הבאה ממחישה:

אם תגדיר גם rep_delay=0 וגם init_qubits=False, ה-Circuits "יתמזגו" יחד, מכיוון שה-Qubit יתחילו במצב הסופי מה-shot הקודם.
שים לב שאף ש-Circuits בעבודת פרימיטיב מקובצים יחד לביצוע על ה-QPU, אין ערובה לגבי הסדר שבו ה-Circuits מה-PUBs מבוצעים. לדוגמה, אם אתה מגיש pubs=[pub1, pub2], ייתכן ש-Circuits מ-pub1 לא יופעלו לפני אלה מ-pub2. כמו כן, אין ערובה שה-Circuits מאותה עבודה יפעלו כ-batch יחיד על ה-QPU.
ציין rep_delay לעבודת פרימיטיב
אמת תמיד את טווח ה-rep_delay הנתמך עבור ה-QPU הספציפי שבו אתה משתמש. ערכים אלה אינם זהים לכל QPU ויכולים גם להשתנות עם הזמן.
שים לב שלעלייה ב-rep_delay תהיה השפעה ישירה על זמן הביצוע ועל צריכת הקיבולת שלך.
# 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, 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
הצעדים הבאים
- נסה דוגמה במדריך אלגוריתם האופטימיזציה הקוונטי המקורב (QAOA).
- ראה כיצד להתחיל עם Estimator.
- ראה כיצד להתחיל עם Sampler.