Перейти до основного вмісту

Максимальний час виконання для робочих навантажень Qiskit Runtime

Щоб забезпечити справедливість, для кожного завдання Qiskit Runtime існує розраховане сервісом максимальне обмеження часу виконання. Якщо завдання перевищує цей ліміт, воно примусово скасовується і виникає виняток RuntimeJobMaxTimeoutError. Ти також можеш встановити максимальний час виконання для своїх завдань, щоб краще контролювати витрати.

примітка

Сесія або пакет негайно завершується, коли досягається ліміт витрат.

Встановлення максимального часу виконання

Максимальний час виконання завдання визначається меншим із таких значень:

  • Значення, встановлене для max_execution_time
  • Значення тайм-ауту завдання, визначене сервісом

Значення max_execution_time базується на квантовому часі, а не на астрономічному часі. Квантовий час — це час, протягом якого QPU виділений виключно на обробку твого завдання.

Встанови максимальний час виконання (у секундах) у параметрах завдання, як показано в наступному прикладі. Інформацію про налаштування параметрів дивись у розділі Вказати параметри.

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

Також можна дізнатись, скільки квантового часу використали завершені завдання, отримавши їхні метрики:

# Find quantum time used by the job
print(f"Quantum time used by 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 хвилин квантового часу в рамках 28-денного ковзного вікна. Квантовий час — це час, протягом якого QPU виділений виключно на обробку твого завдання. Використання інстансу можна переглянути на сторінці Instances.

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