Вступ до режимів виконання 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 про режими виконання.
- У пакетному режимі завдання не гарантовано виконуються в порядку їх подання. Крім того, хоча завдання пакету виконуються якомога ближче одне до одного, вони не отримують ексклюзивного доступу до Backend. Тому твої пакетні завдання можуть виконуватися паралельно із завданнями інших користувачів, якщо на QPU є достатня потужність обробки. Крім того, між пакетними завданнями можуть запускатися завдання калібрування QPU.
- Час у черзі не зменшується для першого завдання, поданого в пакеті. Тому пакети не дають жодних переваг під час виконання одного завдання.
Щоб запустити в batch mode, вкажи mode=batch під час створення екземпляра примітива або запусти завдання в контекстному менеджері пакету. Приклади дивись у Запуск завдань у пакеті.
Session mode
Виділене вікно для запуску багатозадачного робочого навантаження. Протягом цього вікна користувач має ексклюзивний доступ до системи, і жодні інші завдання не можуть виконуватися — включно із завданнями калібрування. Це дає змогу користувачам експериментувати з варіаційними алгоритмами більш передбачуваним чином і навіть запускати кілька експериментів одночасно, використовуючи переваги паралелізму в стеку. Використання сесій допомагає уникнути затримок, спричинених постановкою кожного завдання в чергу окремо, що особливо корисно для ітеративних задач, які вимагають частого зв'язку між класичними та квантовими ресурсами. Функція вартості на зображенні відповідає функції вартості квантового варіаційного алгоритму, який виконується на локальній машині користувача.
Щоб запустити в session mode, вкажи mode=session під час створення екземпляра примітива або запусти завдання в контекстному менеджері сесії. Дивись Запуск завдань у сесії для прикладів.
- Час у черзі не зменшується для першого завдання, поданого в сесії. Тому сесії не дають жодних переваг під час виконання одного завдання.
- Користувачі плану Open Plan не можуть подавати завдання в режимі сесії.
Базовий робочий процес
Базовий робочий процес для пакетів і сесій подібний:
-
Перше завдання в пакеті або сесії потрапляє до звичайної черги. Для пакетів увесь пакет завдань планується разом.
-
Коли перше завдання починає виконуватися, запускається таймер максимального часу існування (TTL) і не зупиняється та не призупиняється до його вичерпання.
-
Таймер інтерактивного TTL запускається після завершення кожного завдання. Якщо в межах вікна інтерактивного TTL немає готових завдань робочого навантаження, воно тимчасово деактивується і відновлюється звичайний відбір завдань. Завдання може повторно активувати деактивоване навантаження, якщо пакет або сесія не досягли максимального значення TTL.
приміткаЗавдання має пройти через звичайну чергу, щоб повторно активувати навантаження.
-
Якщо максимальне значення TTL досягнуто, навантаження завершується, а всі завдання, що залишилися в черзі, зазнають невдачі. Будь-яке завдання, що зараз виконується, не буде доведено до кінця, якщо це перевищить ліміт витрат інстансу.
Наступне відео ілюструє базовий робочий процес на прикладі сесій:
Повні відомості про таймери TTL дивись у посібнику Максимальний час виконання.