Перейти до основного вмісту

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

Package versions

The code on this page was developed using the following requirements. We recommend using these versions or newer.

qiskit-ibm-runtime~=0.46.1

Коли схема виконується на квантовому процесорі (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 — 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

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

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