Maximale Ausführungszeit für IBM Quantum Compute Service-Workloads
Um Fairness zu gewährleisten, gibt es eine vom Dienst durchgesetzte maximale Laufzeit für jeden Job. Überschreitet ein Job dieses Zeitlimit, wird er zwangsweise abgebrochen und eine RuntimeJobMaxTimeoutError-Ausnahme wird ausgelöst. Du kannst auch eine maximale Ausführungszeit für deine Jobs festlegen, um die Kosten zu kontrollieren.
Die Session oder der Batch wird sofort beendet, wenn das Kostenlimit erreicht ist. Alle Jobs, die in dieser Session oder diesem Batch gerade ausgeführt werden, werden bis zum Abschluss weitergeführt, aber alle ausstehenden Jobs werden abgebrochen.
Maximale Ausführungszeit festlegen
Die maximale Ausführungszeit für einen Job ist der kleinere der folgenden Werte:
-
Der für
max_execution_timefestgelegte Wert -
Der maximale Timeout-Wert des Dienstes (drei Stunden)
Der Wert max_execution_time basiert auf der QPU-Nutzung (nur Quantennutzung), nicht auf der tatsächlich verstrichenen Zeit (Wall-Clock-Zeit).
Lege die maximale Ausführungszeit (in Sekunden) in den Job-Optionen fest, wie im folgenden Beispiel gezeigt. Weitere Informationen zum Festlegen von Optionen findest du in den Anleitungen Estimator-Optionen, Sampler-Optionen oder Executor-Optionen.
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
Du kannst auch abfragen, wie viel Nutzung abgeschlossene Jobs verbraucht haben, indem du die Job-Metriken wie folgt abrufst:
# Find QPU usage of a specific job
print(f"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")
Vom Dienst durchgesetzte maximale Ausführungszeit
Der Dienst setzt ein maximales Ausführungszeitlimit von drei Stunden durch, um eine faire Gerätenutzung sicherzustellen. Wenn zusätzlich eine max_execution_time für den Job angegeben ist, wird der kleinere der beiden Werte verwendet.
Wenn du zum Beispiel max_execution_time=5000 (ungefähr 83 Minuten) angibst, wird der Job nach ungefähr 83 Minuten abgebrochen, obwohl der Dienst ihn für drei Stunden laufen lassen könnte.
Maximale Ausführungszeit für Batches
Wenn ein Batch gestartet wird, wird ihm ein maximaler Time-to-Live-Wert (maximale TTL) zugewiesen. Sobald diese TTL erreicht ist, wird der Batch beendet, bereits laufende Jobs werden weiter ausgeführt, und alle in der Warteschlange verbleibenden Jobs des Batches werden in einen Fehlerzustand versetzt.
Batches haben außerdem einen interaktiven Time-to-Live-Wert (interaktive TTL) zwischen Jobs, der nicht konfiguriert werden kann. Wenn du einen Batch nicht explizit schließt, wird er nach Ablauf der interaktiven TTL deaktiviert und kann jederzeit wieder aktiviert werden, bis die maximale TTL erreicht ist.
Anweisungen zur Arbeit mit diesen Werten findest du unter Jobs in einem Batch ausführen.
Maximale Ausführungszeit für Sessions
Wenn eine Session gestartet wird, wird ihr ein maximaler TTL-Wert zugewiesen, der bestimmt, wie lange eine Session laufen kann. Sobald diese TTL erreicht ist, wird die Session beendet, bereits laufende Jobs werden weiter ausgeführt, und alle in der Warteschlange verbleibenden Jobs der Session werden in einen Fehlerzustand versetzt.
Es gibt auch einen interaktiven TTL-Wert, der nicht konfiguriert werden kann. Wenn innerhalb dieses Zeitfensters keine Session-Jobs in der Warteschlange sind, wird die Session vorübergehend deaktiviert.
Anweisungen zur Arbeit mit diesen Werten findest du unter Jobs in einer Session ausführen.
Weitere Einschränkungen
Im Open Plan kannst du bis zu 10 Minuten auf einer QPU pro rollierendem 28-Tage-Fenster nutzen. Du kannst die Nutzung einer Instanz auf der Seite Instanzen einsehen.
Nächste Schritte
- Workload-Nutzung.
- Lies diese Tipps: Job-Laufzeit minimieren.