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

Вступ до режимів виконання Qiskit Runtime

Коли Qiskit Runtime тільки з'явився, користувачі могли виконувати Circuit лише як окремі завдання. Із появою різних типів квантових робочих навантажень виникла потреба в різних стратегіях планування. Режими виконання визначають, як плануються твої завдання, а вибір правильного режиму дає змогу ефективно запускати робоче навантаження в межах бюджету. Існує три режими виконання: job (завдання), session (сесія) та batch (пакет).

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

Один запит до примітива estimator або sampler, зроблений без контекстного менеджера. Circuit та вхідні дані упаковуються як primitive unified blocs (PUBs) і надсилаються як задача виконання на квантовий комп'ютер. Щоб запустити в режимі завдання, вкажи mode=backend під час створення екземпляра примітива. Дивись Приклади примітивів для використання.

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

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

Система паралелізує або розподіляє по потоках крок попередньої обробки (класичні обчислення) кожного примітивного завдання, щоб щільніше упакувати квантове виконання між завданнями, а потім швидко запускає квантове виконання кожного завдання одне за одним для найефективнішого результату. Детальніше про розподіл по потоках дивись на сторінці FAQ про режими виконання.

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

Примітки
  • У пакетному режимі завдання не гарантовано виконуються в порядку їх подання. Крім того, хоча завдання пакету виконуються якомога ближче одне до одного, вони не отримують ексклюзивного доступу до Backend. Тому твої пакетні завдання можуть виконуватися паралельно із завданнями інших користувачів, якщо на QPU є достатня потужність обробки. Крім того, між пакетними завданнями можуть запускатися завдання калібрування QPU.
  • Час у черзі не зменшується для першого завдання, поданого в пакеті. Тому пакети не дають жодних переваг під час виконання одного завдання.

Щоб запустити в пакетному режимі, вкажи mode=batch під час створення екземпляра примітива або запусти завдання в контекстному менеджері пакету. Дивись Запуск завдань у пакеті для прикладів.

Режим сесії

Виділене вікно для запуску багатозадачного робочого навантаження. Протягом цього вікна користувач має ексклюзивний доступ до системи, і жодні інші завдання не можуть виконуватися — включно із завданнями калібрування. Це дає змогу користувачам експериментувати з варіаційними алгоритмами більш передбачуваним чином і навіть запускати кілька експериментів одночасно, використовуючи переваги паралелізму в стеку. Використання сесій допомагає уникнути затримок через окреме постановлення кожного завдання в чергу, що особливо корисно для ітеративних задач, які вимагають частого зв'язку між класичними та квантовими ресурсами.

Набір завдань, що виконуються в режимі сесії, а інший — в пакетному режимі. Між кожним завданням є інтерактивний TTL (interactive time to live). Активне вікно починається з моменту запуску першого завдання і закінчується після завершення останнього. Після завершення останнього завдання першого набору активне вікно закривається і сесія призупиняється (але не закривається). Потім починається інший набір завдань, і вони продовжуються аналогічним чином. QPU зарезервовано для твого використання протягом усієї сесії.

Щоб запустити в режимі сесії, вкажи mode=session під час створення екземпляра примітива або запусти завдання в контекстному менеджері сесії. Дивись Запуск завдань у сесії для прикладів.

Примітки
  • Час у черзі не зменшується для першого завдання, поданого в сесії. Тому сесії не дають жодних переваг під час виконання одного завдання.
  • Користувачі плану Open Plan не можуть подавати завдання в режимі сесії.

Базовий робочий процес

Базовий робочий процес для пакетів і сесій подібний:

  1. Перше завдання в пакеті або сесії потрапляє до звичайної черги. Для пакетів увесь пакет завдань планується разом.
  2. Коли перше завдання починає виконуватися, запускається таймер максимального часу існування (TTL) і не зупиняється та не призупиняється до його вичерпання.
  3. Таймер інтерактивного TTL запускається після завершення кожного завдання. Якщо в межах вікна інтерактивного TTL немає готових завдань робочого навантаження, воно тимчасово деактивується і відновлюється звичайний відбір завдань. Завдання може повторно активувати деактивоване навантаження, якщо пакет або сесія не досягли максимального значення TTL.
    примітка

    Завдання має пройти через звичайну чергу, щоб повторно активувати навантаження.

  4. Якщо максимальне значення TTL досягнуто, навантаження завершується, а всі завдання, що залишилися в черзі, зазнають невдачі. Будь-яке завдання, що зараз виконується, не буде доведено до кінця, якщо це перевищить ліміт витрат інстансу.

Наступне відео ілюструє базовий робочий процес на прикладі сесій:

Повні відомості про таймери TTL дивись у посібнику Максимальний час виконання.

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