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

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

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

Job mode​

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

Batch mode​

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

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

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

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

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

Session mode​

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

A sets of jobs being run in session mode and the other is being run in batch mode.  Between each job is the interactive TTL (interactive time to live).  The active window starts when the first job starts and ends after the last job is completed. After the final job of the first set of jobs completes, the active window ends and the session is paused (but not closed).  Another set of jobs then starts and jobs continue in a similar manner. The QPU is reserved for your use during the entire session.

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

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

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

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

  1. Перше завдання в пакеті або сесії потрапляє до звичайної черги. Для пакетів увесь пакет завдань планується разом.

  2. Коли перше завдання починає виконуватися, запускається таймер максимального часу існування (TTL) і не зупиняється та не призупиняється до його вичерпання.

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

    примітка

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

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

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

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

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