Tempo massimo di esecuzione per i workload di Qiskit Runtime
Per garantire equità, esiste un tempo massimo di esecuzione calcolato dal servizio per ogni job di Qiskit Runtime. 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.
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 di timeout del job determinato dal servizio
Il valore max_execution_time è basato sul tempo quantistico, non sul tempo reale. Il tempo quantistico è la quantità di tempo che il QPU dedica all'elaborazione del tuo job.
Imposta il tempo massimo di esecuzione (in secondi) nelle opzioni del job, come mostrato nell'esempio seguente. Consulta Specificare le opzioni per informazioni su come impostare le opzioni.
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
Puoi anche scoprire quanto tempo quantistico hanno usato i job completati recuperando le metriche del job nel seguente modo:
# Find quantum time used by the job
print(f"Quantum time used by job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")
Tempo massimo di esecuzione calcolato dal servizio
Il servizio calcola un valore di timeout appropriato per il job in base ai circuito in input e alle opzioni. Questo timeout calcolato dal servizio è limitato a 3 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.
Ad esempio, se specifichi max_execution_time=5000 (circa 83 minuti), ma il servizio determina che il job non dovrebbe impiegare più di 5 minuti (300 secondi), allora il job viene annullato dopo 5 minuti.
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
- Gli input dei job non possono superare i 50 MB di dimensione.
- Gli utenti del piano Open possono utilizzare fino a 10 minuti di tempo quantistico per ogni finestra temporale rotante di 28 giorni. Il tempo quantistico è la quantità di tempo che il QPU dedica all'elaborazione del tuo job. 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.