Максимальний час виконання для робочих навантажень Qiskit Runtime
Щоб забезпечити справедливість, для кожного завдання Qiskit Runtime існує розраховане сервісом максимальне обмеження часу виконання. Якщо завдання перевищує цей ліміт, воно примусово скасовується і виникає виняток RuntimeJobMaxTimeoutError. Ти також можеш встановити максимальний час виконання для своїх завдань, щоб краще контролювати витрати.
Сесія або пакет негайно завершується, коли досягається ліміт витрат. Завдання, що вже виконуються в цій сесії або пакеті, завершаться до кінця, але всі завдання в очікуванні будуть скасовані.
Встановлення максимального часу виконання
Максимальний час виконання завдання визначається меншим із таких значень:
- Значення, встановлене для
max_execution_time - Значення тайм-ауту завдання, визначене сервісом
Значення max_execution_time базується на обсязі використання QPU, а не на астрономічному часі.
Встанови максимальний час виконання (у секундах) у параметрах завдання, як показано в наступному прикладі. Інформацію про налаштування параметрів дивись у посібниках Параметри Estimator, Параметри Sampler або Параметри Executor.
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
estimator = Estimator(mode=backend)
estimator.options.max_execution_time = 2500
Також можна дізнатись, скільки ресурсів QPU використали завершені завдання, отримавши їхні метрики:
# Find QPU usage of a specific job
print(f"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")
Максимальний час виконання, розрахований сервісом
Сервіс розраховує відповідне значення тайм-ауту завдання на основі вхідних схем і параметрів. Цей розрахований сервісом тайм-аут обмежений 3 годинами, щоб забезпечити справедливе використання пристрою. Якщо для завдання також вказано max_execution_time, використовується менше з двох значень.
Наприклад, якщо ти вказуєш max_execution_time=5000 (приблизно 83 хвилини), але сервіс визначає, що виконання завдання не повинно займати більше 5 хвилин (300 секунд), завдання буде скасовано через 5 хвилин.
Максимальний час виконання пакету
Коли пакет запускається, йому призначається максимальне значення часу життя (максимальний TTL). Після досягнення цього TTL пакет завершується: завдання, які вже виконуються, про довжують виконуватись, а завдання в черзі, що залишились у пакеті, переходять у стан помилки.
Пакети також мають значення інтерактивного часу життя (interactive TTL) між завданнями, яке не можна налаштувати. Якщо ти явно не закрив пакет, він деактивується після закінчення інтерактивного TTL і може бути повторно активований будь-коли до досягнення максимального TTL.
Інструкції для роботи з цими значеннями дивись у розділі Запуск завдань у пакеті.
Максимальний час виконання сесії
Коли сесія запускається, їй призначається максимальне значення TTL, яке визначає, як довго може тривати сесія. Після досягнення цього TTL сесія завершується: завдання, які вже виконуються, продовжують виконуватись, а завдання в черзі, що залишились у сесії, переходять у стан помилки.
Також існує значення інтерактивного TTL, яке не можна налаштувати. Якщо протягом цього вікна в черзі сесії немає жодного завдання, сесія тимчасово деактивується.
Інструкції для роботи з цими значеннями дивись у розділі Запуск завдань у сесії.
Інші обмеження
- Розмір вхідних даних для завдань не може перевищувати 50 МБ.
- На тарифі Open Plan можна використовувати до 10 хвилин роботи QPU в рамках 28-денного ковзного вікна. Використання інстансу можна переглянути на сторінці Instances.
Наступні кроки
- Використання робочого навантаження.
- Переглянь ці поради: Мінімізуйте час виконання завдання.