Максимальний час виконання для робочих навантажень IBM Quantum Compute Service
Щоб забезпечити справедливість, існує встановлений сервісом максимальний час виконання для кожного завдання. Якщо завдання перевищує цей ліміт, воно примусово скасовується і виникає виняток RuntimeJobMaxTimeoutError. Ти також можеш встановити максимальний час виконання для своїх завдань, щоб краще контролювати витрати.
Сесія або пакет негайно завершується, коли досягається ліміт витрат. Завдання, що вже виконуються в цій сесії або пакеті, завершаться до кінця, але всі завдання в очікуванні будуть скасовані.
Встановлення максимального часу виконання
Максимальний час виконання завдання визначається меншим із таких значень:
-
Значення, встановлене для
max_execution_time -
Максимальне значення тайм-ауту сервісу (три години)
Значення max_execution_time базується на обсязі використання QPU (лише квантове використання), а не на астрономічному часі.
Встанови максимальний час виконання (у секундах) у параметрах завдання, як показано в наступному прикладі. Інформацію про налаштування параметрів дивись у посібниках Параметри Estimator, Параметри Sampler або Параметри Executor.
from qiskit_ibm_runtime import QiskitRuntimeService
# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator
# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import 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")
Максимальний час виконання, встановлений сервісом
Сервіс встановлює ліміт максимального часу виконання в три години, щоб забезпечити справедливе використання пристрою. Якщо для завдання також вказано max_execution_time, використовується менше з двох значень.
Наприклад, якщо ти вказуєш max_execution_time=5000 (приблизно 83 хвилини), то завдання скасовується приблизно через 83 хвилини, навіть якщо сервіс міг би дозволити йому виконуватися три години.
Максимальний час виконання пакету
Коли пакет запускається, йому призначається максимальне значення часу життя (максимальний TTL). Після досягнення цього TTL пакет завершується: завдання, які вже виконуються, продовжують виконуватись, а завдання в черзі, що залишились у пакеті, переходять у стан помилки.
Пакети також мають значення інтерактивного часу життя (interactive TTL) між завданнями, яке не можна налаштувати. Якщо ти явно не закрив пакет, він деактивується після закінчення інтерактивного TTL і може бути повторно активований будь-коли до досягнення максимального TTL.
Інструкції для роботи з цими значеннями дивись у розділі Запуск завдань у пакеті.
Максимальний час виконання сесії
Коли сесія запускається, їй призначається максимальне значення TTL, яке визначає, як довго може тривати сесія. Після досягнення цього TTL сесія завершується: завдання, які вже виконуються, продовжують виконуватись, а завдання в черзі, що залишились у сесії, переходять у стан помилки.
Також існує значення інтерактивного TTL, яке не можна налаштувати. Якщо протягом цього вікна в черзі сесії немає жодного завдання, сесія тимчасово деактивується.
Інструкції для роботи з цими значеннями дивись у розділі Запуск завдань у сесії.
Інші обмеження
На тарифі Open Plan можна використовувати до 10 хвилин роботи QPU в рамках 28-денного ковзного вікна. Використання інстансу можна переглянути на сторінці Instances.
Наступні кроки
- Використання робочого навантаження.
- Переглянь ці поради: Мінімізуй час виконання завдання.