Перейти до основного вмісту
Цей проєкт у бета-версії. Знайшов(-ла) помилку? Відкрити issue на GitHub. Є запитання чи ідея? Запитати в Discussions — будемо раді твоєму відгуку!
Яка якість перекладу на цій сторінці?

Ініціалізація кубітів

Package versions

Код на цій сторінці розроблено з використанням таких вимог. Ми рекомендуємо використовувати ці версії або новіші.

qiskit-ibm-runtime~=0.47.0

Коли схема виконується на квантовому процесорі (QPU) IBM®, на початку схеми зазвичай вставляється неявне скидання, щоб гарантувати ініціалізацію кубітів до нуля. Це контролюється прапором init_qubits, встановленим як параметр виконання примітиву.

Однак недосконалість процесу скидання може призводити до помилок підготовки стану. Щоб пом'якшити помилку, QPU також вставляє час затримки повторення (rep_delay) між схемами. Кожен бекенд має різне значення rep_delay за замовчуванням, але воно зазвичай встановлюється так, щоб збалансувати точність скидання та загальний час виконання. Виконай backend.default_rep_delay, щоб дізнатися значення rep_delay за замовчуванням для конкретного QPU.

Оскільки всі QPU IBM використовують виконання з динамічною частотою повторення, ти можеш змінювати rep_delay для кожного завдання. Схеми, які ти подаєш у завданні з примітивом, групуються разом для виконання на QPU. Ці схеми виконуються шляхом перебору схем для кожного запитаного знімка; виконання відбувається по стовпцях у матриці схем і знімків, як показано на наступному малюнку.

Перший стовпець представляє знімок 0. Схеми виконуються по порядку від 0 до 3. Другий стовпець представляє знімок 1. Схеми виконуються по порядку від 0 до 3. Решта стовпців слідують тому ж шаблону.

Оскільки rep_delay вставляється між схемами, кожен знімок під час виконання зустрічає цю затримку. Тому зі зменшенням rep_delay загальний час виконання на QPU скорочується, але коштом збільшення частоти помилок підготовки стану, як ілюструє наступне зображення:

Це зображення показує, що зі зменшенням значення rep_delay частота помилок підготовки стану зростає.

Якщо встановити одночасно rep_delay=0 та init_qubits=False, схеми «зливаються» разом, оскільки кубіти починатимуться у кінцевому стані від попереднього знімка.

Зауваж, що хоча схеми в завданні з примітивом групуються разом для виконання на QPU, порядок виконання схем з PUB не гарантується. Наприклад, якщо ти подаєш pubs=[pub1, pub2], схеми з pub1 можуть не виконуватися раніше, ніж схеми з pub2. Також немає гарантії, що схеми з одного завдання будуть виконані як один пакет на QPU.

Вказати rep_delay для завдання з примітивом​

Перевір значення rep_delay для QPU

Завжди перевіряй підтримуваний діапазон 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

Наступні кроки​

Рекомендації