Вступ до режимів виконання Qiskit Runtime
Коли Qiskit Runtime тільки з'явився, користувачі могли виконувати Circuit лише як окремі завдання. Із появою різних типів квантових робочих навантажень виникла потреба в різних стратегіях планування. Режими виконання визначають, як плануються твої завдання, а вибір правильного режиму дає змогу ефективно запускати робоче навантаження в межах бюджету. Існує три режими виконання: job (завдання), session (сесія) та batch (пакет).
Режим завдання
Один запит до примітива estimator або sampler, зроблений без контекстного менеджера. Circuit та вхідні дані упаковуються як primitive unified blocs (PUBs) і надсилаються як задача виконання на квантовий комп'ютер. Щоб запустити в режимі завдання, вкажи mode=backend під час створення екземпляра примітива. Дивись Приклади примітивів для використання.
Пакетний режим
Менеджер для ефективного запуску експериментів із багатьма завданнями. Такі робочі навантаження складаються з незалежно виконуваних завдань, між якими немає умовних залежностей. У пакетному режимі користувачі надсилають усі завдання одночасно.
Система паралелізує або розподіляє по потоках крок попередньої обробки (класичні обчислення) кожного примітивного завдання, щоб щільніше упакувати квантове виконання між завданнями, а потім швидко запускає квантове виконання кожного завдання одне за одним для най ефективнішого результату. Детальніше про розподіл по потоках дивись на сторінці FAQ про режими виконання.
- У пакетному режимі завдання не гарантовано виконуються в порядку їх подання. Крім того, хоча завдання пакету виконуються якомога ближче одне до одного, вони не отримують ексклюзивного доступу до Backend. Тому твої пакетні завдання можуть виконуватися паралельно із завданнями інших користувачів, якщо на QPU є достатня потужність обробки. Крім того, між пакетними завданнями можуть запускатися завдання калібрування QPU.
- Час у черзі не зменшується для першого завдання, поданого в пакеті. Тому пакети не дають жодних переваг під час виконання одного завдання.
Щоб запустити в пакетному режимі, вкажи mode=batch під час створення екземпляра примітива або запусти завдання в контекстному менеджері пакету. Дивись Запуск завдань у пакеті для прикладів.
Режим сесії
Виділене вікно для запуску багатозадачного робочого навантаження. Протягом цього вікна користувач має ексклюзивний доступ до системи, і жодні інші завдання не можуть виконуватися — включно із завданнями калібрування. Це дає змогу користувачам експериментувати з варіаційними алгоритмами більш передбачуваним чином і навіть запускати кілька експериментів одночасно, використовуючи переваги паралелізму в стеку. Використання сесій допомагає уникнути затримок через окреме постановлення кожного завдання в чергу, що особливо корисно для ітеративних задач, які вимагають частого зв'язку між класичними та квантовими ресурсами.
Щоб запустити в режимі сесії, вкажи mode=session під час створення екземпляра примітива або запусти завдання в контекстному менеджері сесії. Дивись Запуск завдань у сесії для прикладів.
- Час у черзі не зменшується для першого завдання, поданого в сесії. Тому сесії не дають жодних переваг під час виконання одного завдання.
- Користувачі плану Open Plan не можуть подавати завдання в режимі сесії.
Базовий робочий процес
Базовий робочий процес для пакетів і сесій подібний:
- Перше завдання в пакеті або сесії потрапляє до звичайної черги. Для пакетів увесь пакет завдань планується разом.
- Коли перше завдання починає виконуватися, запускається таймер максимального часу існування (TTL) і не зупиняється та не призупиняється до його вичерпання.
- Таймер інтерактивного TTL запускається після завершення кожного завдання. Якщо в межах вікна інтерактивного TTL немає готових завдань робочого навантаження, воно тимчасово деактивується і відновлюється звичайний відбір завдань. Завдання може повторно активувати деактивоване навантаження, якщо пакет або сесія не досягли максимального значення TTL.
примітка
Завдання має пройти через звичайну чергу, щоб повторно активувати навантаження.
- Якщо максимальне значення TTL досягнуто, навантаження завершується, а всі завдання, що залишилися в черзі, зазнають невдачі. Будь-яке завдання, що зараз виконується, не буде доведено до кінця, якщо це перевищить ліміт витрат інстансу.
Наступне відео ілюструє базовий робочий процес на прикладі сесій:
Повні відомості про таймери TTL дивись у посібнику Максимальний час виконання.