Maximale Ausführungszeit für Qiskit Runtime-Workloads
Um Fairness zu gewährleisten, gibt es eine vom Dienst berechnete maximale Laufzeit für jeden Qiskit Runtime-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 vom Dienst ermittelte Job-Timeout-Wert
Der Wert max_execution_time basiert auf der QPU-Nutzung, nicht auf der Wanduhrzeit.
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
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
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 berechnete maximale Ausführungszeit
Der Dienst berechnet einen geeigneten Job-Timeout-Wert basierend auf den Eingabe-Circuits und Optionen. Dieser vom Dienst berechnete Timeout ist auf 3 Stunden begrenzt, 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, der Dienst jedoch ermittelt, dass die Ausführung des Jobs nicht länger als 5 Minuten (300 Sekunden) dauern sollte, wird der Job nach 5 Minuten abgebrochen.
Maximale Ausführungszeit für Batches
Wenn ein Batch gestartet wird, wird ihm ein maximaler Time-to-Live-Wert (maximales TTL) zugewiesen. Sobald dieses 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 (interaktives TTL) zwischen Jobs, der nicht konfiguriert werden kann. Wenn du einen Batch nicht explizit schließt, wird er nach Ablauf des interaktiven TTL deaktiviert und kann jederzeit wieder aktiviert werden, bis das 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 dieses 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
- Eingaben für Jobs dürfen 50 MB nicht überschreiten.
- Im Open Plan kannst du bis zu 10 Minuten auf einem QPU pro rollendem 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.