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.
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 Quantenzeit, nicht auf der Wanduhrzeit. Quantenzeit ist die Zeit, die der QPU ausschließlich für die Verarbeitung deines Jobs gewidmet ist.
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 unter Optionen angeben.
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 Quantenzeit abgeschlossene Jobs verbraucht haben, indem du die Job-Metriken wie folgt abrufst:
# Find quantum time used by the job
print(f"Quantum time used by 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.
- Nutzer des Open Plans können bis zu 10 Minuten Quantenzeit pro rollendem 28-Tage-Fenster verwenden. Quantenzeit ist die Zeit, die der QPU ausschließlich für die Verarbeitung deines Jobs gewidmet ist. Du kannst die Nutzung einer Instanz auf der Seite Instanzen einsehen.
Nächste Schritte
- Workload-Nutzung.
- Lies diese Tipps: Job-Laufzeit minimieren.