Tempo massimo di esecuzione per i workload di IBM Quantum Compute Service
Per garantire equità, esiste un tempo massimo di esecuzione imposto dal servizio per ogni job. Se un job supera questo limite di tempo, viene annullato forzatamente e viene sollevata un'eccezione RuntimeJobMaxTimeoutError. Puoi anche impostare un tempo massimo di esecuzione sui tuoi job per controllare i costi.
La sessione o il batch viene terminato immediatamente al raggiungimento del limite di costo. Tutti i job attualmente in esecuzione in quella sessione o batch verranno completati, ma tutti i job in sospeso verranno annullati.
Impostare un tempo massimo di esecuzione
Il tempo massimo di esecuzione per un job è il minore tra questi valori:
-
Il valore impostato per
max_execution_time -
Il valore massimo di timeout del servizio (tre ore)
Il valore max_execution_time è basato sull'utilizzo della QPU (solo utilizzo quantistico), non sul tempo effettivo trascorso (wall-clock time).
Imposta il tempo massimo di esecuzione (in secondi) nelle opzioni del job, come mostrato nell'esempio seguente. Consulta le guide Opzioni Estimator, Opzioni Sampler o Opzioni Executor per informazioni su come impostare le opzioni.
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
Puoi anche scoprire quanto utilizzo hanno consumato i job completati recuperando le metriche del job nel seguente modo:
# Find QPU usage of a specific job
print(f"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")
Tempo massimo di esecuzione imposto dal servizio
Il servizio impone un limite massimo di tempo di esecuzione di tre ore per garantire un utilizzo equo del dispositivo. Se per il job è specificato anche un max_execution_time, viene utilizzato il valore minore tra i due.
Per esempio, se specifichi max_execution_time=5000 (circa 83 minuti), allora il job viene annullato dopo circa 83 minuti, anche se il servizio potrebbe consentirgli di essere eseguito per tre ore.
Tempo massimo di esecuzione del batch
Quando un batch viene avviato, gli viene assegnato un valore massimo di tempo di vita (TTL massimo). Al raggiungimento di questo TTL, il batch viene terminato, i job già in esecuzione continuano a essere eseguiti e i job in coda che rimangono nel batch vengono messi in uno stato di errore.
I batch hanno anche un valore di tempo di vita interattivo (TTL interattivo) tra i job che non può essere configurato. Se non chiudi esplicitamente un batch, viene disattivato alla scadenza del TTL interattivo e può essere riattivato in qualsiasi momento fino al raggiungimento del suo TTL massimo.
Per le istruzioni su come lavorare con questi valori, consulta Eseguire job in un batch.
Tempo massimo di esecuzione della sessione
Quando una sessione viene avviata, le viene assegnato un valore TTL massimo che determina per quanto tempo può essere eseguita. Al raggiungimento di questo TTL, la sessione viene terminata, i job già in esecuzione continuano a essere eseguiti e i job in coda che rimangono nella sessione vengono messi in uno stato di errore.
Esiste anche un valore di TTL interattivo che non può essere configurato. Se nessun job della sessione viene messo in coda entro quella finestra temporale, la sessione viene temporaneamente disattivata.
Per le istruzioni su come lavorare con questi valori, consulta Eseguire job in una sessione.
Altre limitazioni
Con il piano Open, puoi utilizzare fino a 10 minuti su una QPU per ogni finestra mobile di 28 giorni. Puoi visualizzare l'utilizzo di un'istanza nella pagina Istanze.
Passi successivi
- Utilizzo del workload.
- Leggi questi suggerimenti: Minimizzare il tempo di esecuzione del job.