Maksymalny czas wykonania zadań Qiskit Runtime
Aby zapewnić sprawiedliwy dostęp, istnieje obliczany przez usługę maksymalny czas działania każdego zadania Qiskit Runtime. Jeśli zadanie przekroczy ten limit czasu, zostaje przymusowo anulowane i zgłaszany jest wyjątek RuntimeJobMaxTimeoutError. Możesz również ustawić maksymalny czas wykonania swoich zadań, aby lepiej kontrolować koszty.
Sesja lub batch jest natychmiast kończona po osiągnięciu limitu kosztów. Wszystkie aktualnie uruchomione zadania w danej sesji lub batchu zostaną ukończone, ale oczekujące zadania zostaną anulowane.
Ustawianie maksymalnego czasu wykonania
Maksymalny czas wykonania zadania to mniejsza z poniższych wartości:
- Wartość ustawiona dla
max_execution_time - Wartość limitu czasu zadania określona przez usługę
Wartość max_execution_time opiera się na użyciu QPU, a nie na czasie zegarowym.
Ustaw maksymalny czas wykonania (w sekundach) w opcjach zadania, jak pokazano w poniższym przykładzie. Informacje o ustawianiu opcji znajdziesz w przewodnikach Estimator options, Sampler options lub Executor options.
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
Możesz również sprawdzić, ile zasobów QPU zostało zużyte przez ukończone zadania, zwracając metryki zadania w następujący sposób:
# Find QPU usage of a specific job
print(f"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")
Maksymalny czas wykonania obliczany przez usługę
Usługa oblicza odpowiednią wartość limitu czasu zadania na podstawie podanych Circuit i opcji. Ten obliczony przez usługę limit czasu jest ograniczony do 3 godzin, aby zapewnić sprawiedliwe korzystanie z urządzenia. Jeśli dla zadania podano również max_execution_time, używana jest mniejsza z dwóch wartości.
Na przykład, jeśli ustawisz max_execution_time=5000 (około 83 minut), ale usługa uzna, że wykonanie zadania nie powinno zająć więcej niż 5 minut (300 sekund), zadanie zostanie anulowane po 5 minutach.
Maksymalny czas wykonania dla batch
Gdy batch jest uruchamiany, przypisywana mu jest maksymalna wartość czasu życia (maksymalne TTL). Po osiągnięciu tego TTL batch jest kończony, wszystkie już uruchomione zadania kontynuują działanie, a pozostałe zadania w kolejce w danym batchu przechodzą w stan błędu.
Batche mają również wartość interaktywnego czasu życia (interaktywne TTL) między zadaniami, której nie można konfigurować. Jeśli nie zamkniesz batcha jawnie, zostanie on dezaktywowany po wygaśnięciu interaktywnego TTL i może zostać ponownie aktywowany w dowolnym momencie, dopóki nie osiągnie swojego maksymalnego TTL.
Instrukcje dotyczące pracy z tymi wartościami znajdziesz w artykule Run jobs in a batch.
Maksymalny czas wykonania dla Session
Gdy Session jest uruchamiana, przypisywana jej jest maksymalna wartość TTL, która określa, jak długo Session może działać. Po osiągnięciu tego TTL Session jest kończona, wszystkie już uruchomione zadania kontynuują działanie, a pozostałe zadania w kolejce w danej Session przechodzą w stan błędu.
Istnieje również wartość interaktywnego TTL, której nie można konfigurować. Jeśli w tym oknie czasowym nie zostaną dodane do kolejki żadne zadania Session, Session zostaje tymczasowo dezaktywowana.
Instrukcje dotyczące pracy z tymi wartościami znajdziesz w artykule Run jobs in a session.
Inne ograniczenia
- Dane wejściowe do zadań nie mogą przekraczać 50 MB.
- W ramach planu Open możesz korzystać z QPU przez maksymalnie 10 minut w każdym 28-dniowym oknie kroczącym. Wykorzystanie instancji możesz sprawdzić na stronie Instances.
Następne kroki
- Workload usage.
- Zapoznaj się z tymi wskazówkami: Minimize job run time.