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

Поширені запитання про режими виконання Qiskit Runtime

Чи підтримує локальний режим тестування Qiskit Runtime різні режими виконання?

Локальний режим тестування підтримує синтаксис різних режимів виконання, але оскільки під час локального тестування планування не відбувається, режими ігноруються.

Скільки завдань може виконуватися паралельно для конкретного Backend?

Кількість паралельно виконуваних завдань залежить від ступеня паралелізму, налаштованого для Backend, який для більшості Backend сьогодні дорівнює п'яти.

Як відображається використання для невдалих або скасованих завдань?

Дивись розділ Невдалі та скасовані завдання на сторінці режимів виконання.

Сесії

Що відбувається з моїми завданнями, якщо сесію закрито?

Якщо ти використовуєш клас Session у qiskit-ibm-runtime:

  • Session.close() означає, що сесія більше не приймає нові завдання, але наявні завдання виконуються до завершення.
  • Session.cancel() скасовує всі завдання сесії, що очікують виконання.

Якщо ти використовуєш REST API безпосередньо:

  • PATCH /sessions/{id} з accepting_jobs=False означає, що сесія більше не приймає нові завдання, але наявні завдання виконуються до завершення.
  • DELETE /sessions/{id}/close скасовує всі завдання сесії, що очікують виконання.

Якщо я використовую режим сесії і очікую, що мій експеримент триватиме багато годин, чи є спосіб запросити виконання калібрувань?

Ні. Калібрування на вимогу недоступне.

Чи є в режимі сесії інтерактивний тайм-аут (interactive TTL)?

Так. Це зменшує небажані витрати, якщо користувач забув закрити сесію.

Чи можу я змінити інтерактивний TTL або максимальний TTL сесії?

Ти не можеш змінити значення інтерактивного TTL. Ти можеш змінити значення максимального TTL сесії (див. Вказати тривалість сесії), але воно повинно бути меншим за визначений системою максимум. Попроси свого адміністратора зв'язатися зі службою підтримки IBM, якщо тобі потрібен інший інтерактивний TTL або системний максимальний TTL.

Як використання сесій впливає на членів IBM Quantum Network, з яких не стягується плата за використання?

Члени IBM Quantum Network отримують зарезервовану потужність на QPU IBM Quantum®. Використання вираховується з цієї потужності, а екземпляри з меншою потужністю мають довший час очікування в черзі.

Чи отримую я такий самий паралелізм у режимі сесії, як і в пакетному режимі?

Так. Якщо ти надсилаєш кілька завдань одночасно в сесії, ці завдання виконуватимуться паралельно.

Чи можуть сесії перериватися через оновлення або калібрування QPU?

Ні. Сесії виконуються у виділеному режимі, що означає повний доступ користувача до Backend. Сесії ніколи не перериваються калібруванням або оновленням програмного забезпечення.

Чи враховується час компіляції як використання в режимі сесії?

Так. У режимі сесії використання — це астрономічний час, протягом якого QPU прив'язаний до сесії. Відлік починається, коли стартує перше завдання сесії, і закінчується, коли сесія стає неактивною, закривається або коли завершується останнє завдання — залежно від того, що відбудеться пізніше. Таким чином, використання продовжує накопичуватися після завершення сесії, якщо QPU ще виконує завдання. Крім того, час після завершення завдання, поки QPU очікує на інше завдання сесії (інтерактивний TTL), також зараховується як використання. Саме тому слід переконатися, що сесію закрито одразу після відправлення всіх завдань.

Пакетний режим

Скільки завдань виконується паралельно в пакетному режимі?

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

Чим відрізняється виконання N PUB у режимі завдання від виконання N завдань з одним PUB у пакетному режимі?

Головна відмінність — це компроміс між часом і вартістю:

Пакетний режим:

  • Загальний час виконання менший, оскільки класична обробка може виконуватися паралельно.
  • Для кожного завдання є невеликі накладні витрати, тому за пакетні завдання платиш трохи більше. Ці накладні витрати корелюють із розміром завдання. Наприклад, загальне використання двох завдань, кожне з яких містить 40 схем 100×100, на шість секунд більше, ніж одного завдання з 80 схемами.
  • Оскільки пакетний режим не надає тобі ексклюзивного доступу до Backend, завдання всередині пакета можуть виконуватися разом із завданнями інших користувачів або завданнями калібрування.
  • Якщо деякі завдання не виконуються, ти все одно отримуєш результати завершених завдань.
  • Ти можеш реагувати в середині пакетного навантаження на основі результатів завершених завдань. Наприклад, можеш скасувати решту завдань, якщо початкові результати виглядають неправильними.

Режим завдання:

  • Загальний час виконання, ймовірно, буде вищим через відсутність паралелізму.
  • Ти не платиш за додаткові накладні витрати на завдання, пов'язані з пакетними навантаженнями.
  • Усі твої схеми виконуватимуться разом.
  • Якщо це єдине завдання не виконується, ти не отримаєш часткових результатів.
  • Твоє завдання може досягти обмеження, якщо містить надто багато схем або якщо схеми надто великі.

Загалом, якщо кожне з твоїх завдань витрачає менше хвилини часу QPU, розглянь можливість об'єднати їх в одне більше завдання (це стосується всіх режимів виконання).

Скільки завдань я можу надіслати в пакеті?

Хоча немає обмежень на кількість завдань, які можна надіслати в пакеті, для пакета існує максимальний час. Тобто, коли астрономічний час пакета (що починається, коли перше пакетне завдання починає виконуватися) перевищує визначений системою максимальний час, пакет більше не прийматиме нові завдання, а завдання в черзі, що не виконуються, будуть скасовані. Крім того, існують обмеження на те, скільки часу можуть витрачати твої завдання залежно від твого плану. Щоб дізнатися максимальний час пакета, використовуй метод batch.details() і шукай значення max_time.

Коли мої завдання в пакетному режимі виконуватимуться паралельно із завданнями інших користувачів?

Ступінь паралелізму, налаштований для Backend, також називається «доріжками виконання». Якщо є одна або більше доступних доріжок виконання, і твої пакетні завдання є наступними в черзі на виконання, планувальник запускає достатньо завдань, щоб заповнити доріжки. Аналогічно, якщо твій пакет не має достатньо завдань для заповнення доріжок, планувальник запускає завдання інших користувачів.

Приклад: Backend, який ти вибрав, має п'ять доріжок виконання, і дві з них зараз зайняті завданнями інших користувачів. Твій пакет із шести завдань є наступним у черзі на виконання.

Оскільки є три вільні доріжки, планувальник запускає три з шести завдань твого пакета. Він продовжує запускати завдання твого пакета в міру їх завершення та звільнення доріжок виконання. Якщо доріжка звільняється, а в твоєму пакеті більше немає завдань, планувальник запускає наступне завдання в черзі.

Чи всі мої пакетні завдання мають чекати в черзі?

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

Чи завершується пакет автоматично після завершення останнього пов'язаного завдання?

Так. Однак є невелике запізнення, пов'язане з цим автоматичним виявленням, тому завжди слід закривати пакет і сесію вручну.

Чи можуть пакети перериватися через калібрування або оновлення програмного забезпечення?

Так. Пакетні навантаження можуть перериватися через калібрування або оновлення програмного забезпечення.

Чи враховується час компіляції як використання в пакетному режимі?

Ні. У пакетному режимі як використання зараховується лише час, витрачений на квантовому обладнанні.