Вибір правильного режиму виконання
Робочі навантаження утилітарного масштабу можуть виконуватися впродовж багатьох годин, тому важливо ефективно планувати як класичні, так і квантові ресурси для оптимізації виконання. Режими виконання дають змогу гнучко балансувати між вартістю та часом, щоб оптимально використовувати ресурси для твоїх робочих навантажень. При виборі режиму виконання слід враховувати кілька аспектів: загальний час виконання (максимальний час існування, або TTL) і час між завданнями (інтерактивний TTL).
Переваги кожного режиму наведено нижче:
- Пакетний (Batch)
- Увесь пакет завдань планується разом, і кожне з них не потребує додаткового часу в черзі.
- Класичні обчислення завдань, наприклад компіляція, виконуються паралельно. Тому запуск кількох завдань у пакетному режимі значно швидший, ніж послідовний.
- Зазвичай затримка між завданнями мінімальна, що допомагає уникнути дрейфу.
- Якщо ти розбиваєш робоче навантаження на кілька завдань і запускаєш їх у пакетному режимі, то можеш отримувати результати від окремих завдань — це забезпечує більшу гнучкість у роботі. Наприклад, якщо результати якогось завдання не відповідають очікуванням, можна скасувати решту завдань. А якщо одне завдання зазнає невдачі — достатньо повторно надіслати лише його, а не перезапускати весь обсяг роботи.
- Загалом дешевший за сесії.
- Сесія (Session)
- Уся функціональність пакетного режиму (але з підвищеним використанням; докладніше про розрахунок використання — у розділі Використання робочого навантаження).
- Виділений і ексклюзивний доступ до QPU протягом активного вікна сесії.
- Корисний для робочих навантажень, у яких не всі вхідні дані готові з самого початку, для ітеративних робочих навантажень, що потребують класичної постобробки перед наступним запуском, а також для експериментів, які мають виконуватися якомога щільніше один за одним.
- Завдання (Job)
- Найпростіший варіант для запуску невеликого експерименту.
- Може розпочатися швидше, ніж у пакетному режимі.
Рекомендації та найкращі практики
Загалом використовуй пакетний режим, якщо тільки у твоїх робочих навантаженнях не всі вхідні дані готові з самого початку.
-
Використовуй пакетний режим для одночасного надсилання кількох примітивних завдань, щоб скоротити час обробки.
-
Використовуй сесійний режим для ітеративни х робочих навантажень або якщо потрібен виділений доступ до QPU.
-
Завжди використовуй режим завдання для надсилання одного примітивного запиту.
-
Оскільки сесії загалом дорожчі, рекомендується використовувати пакетний режим щоразу, коли додаткові переваги сесій не потрібні.
-
Користувачі тарифного плану Open не можуть надсилати сесійні завдання.
Для забезпечення найефективнішого використання режимів виконання рекомендуються такі практики:
-
З кожним запуском завдання пов'язані фіксовані накладні витрати. Загалом, якщо кожне твоє завдання використовує менше однієї хвилини часу QPU, розглянь можливість об'єднання кількох завдань в одне більше (це стосується всіх режимів виконання). «Час QPU» — це час, який комплекс QPU витрачає на обробку твого завдання.
-
Якщо кожне з твоїх завдань споживає більше однієї хвилини часу QPU або об'єднання завдань практично неможливе, ти все одно можеш запускати кілька завдань паралельно. Кожне завдання проходить як класичну, так і квантову обробку. Хоча QPU може обробляти лише одне завдання за раз, до п'яти класичних завдань можуть оброблятися паралельно. Ти можеш скористатися цим, надсилаючи кілька завдань у режимі виконання пакетним або сесійним способом.
Наведене вище — загальні рекомендації, тому варто налаштувати своє робоче навантаження, щоб знайти оптимальне співвідношення, особливо при використанні сесій. Наприклад, якщо ти використовуєш сесію для отримання ексклюзивного доступу до бекенду, розглянь можливість розбиття великих завдань на менші та їх паралельного виконання. Це може бути економічнішим варіантом, оскільки здатне скоротити реальний час виконання.
Приклади
Запуск квантового варіаційного алгоритму
Запус к квантового варіаційного алгоритму зазвичай передбачає такий процес:
- Підготувати анзац.
- Обчислити функцію вартості на QPU.
- Взяти результат попереднього кроку і пропустити його через класичний оптимізатор.
- Скоригувати параметри відповідно до результату кроку (3), потім повернутися до кроку (2).
У цьому випадку, якщо ти використовуєш режим завдання або пакетний режим, кожне завдання, згенероване на кроці (2), має знову пройти чергу. Це суттєво збільшує тривалість експерименту (реальний час виконання) через час очікування в черзі. Також може знадобитися більше часу для збіжності через дрейф пристрою. Тобто кожна ітерація мала б давати кращий результат, але дрейф пристрою може погіршувати наступні результати.
Крім того, якщо ти використовуєш PEA або PEC, ти можеш навчити модель шуму один раз і застосовувати її до наступних завдань при роботі в виділеній сесії. Зазвичай це не працює з пакетним режимом або режимом завдання, оскільки модель шуму може застаріти до того, як наступне завдання вийде з черги.
Порівняння налаштувань пом'якшення помилок
Щоб порівняти ефекти доступних методів пом'якшення помилок, можна дотримуватися такого процесу:
- Побудувати Circuit та спостережувану величину.
- Надіслати примітивні завдання з різними комбінаціями налаштувань пом'якшення помилок.
- Побудувати графіки результатів, щоб спостерігати ефекти різних налаштувань.
У цьому випадку всі завдання (пов'язані між собою, але незалежні) доступні з самого початку. При використанні пакетного режиму вони плануються колективно, тому чекати в черзі потрібно лише один раз. Крім того, оскільки метою є порівняння ефектів різних методів пом'якшення помилок, вигідно, щоб вони виконувалися якомога ближче один до одного. Отже, пакетний режим буде хорошим вибором. Ці завдання можна виконувати й у сесії, але оскільки сесії загалом дорожчі, рекомендується використовувати пакетний режим щоразу, коли додаткова функціональність сесій не потрібна.