Tempo massimo di esecuzione per i carichi di lavoro del servizio di elaborazione " IBM Quantum "
Per garantire l'equità, il servizio impone un limite massimo di tempo per l'esecuzione di ogni processo. Se un'operazione supera tale limite di tempo, viene annullata forzatamente e viene generata un'eccezione RuntimeJobMaxTimeoutError . È inoltre possibile impostare un tempo massimo di esecuzione per i propri lavori, al fine di contenere i costi.
La sessione o il batch vengono immediatamente interrotti al raggiungimento del limite di costo. I processi attualmente in esecuzione in quella sessione o in quel batch verranno portati a termine, mentre quelli in sospeso verranno annullati.
Imposta un tempo massimo di esecuzione
Il tempo massimo di esecuzione di un lavoro è il più piccolo di questi valori:
- Il valore impostato per
max_execution_time - Il valore massimo del timeout del servizio (tre ore)
Il valore max_execution_time si basa sull 'utilizzo della QPU (esclusivamente l'utilizzo quantistico), non sul tempo trascorso in termini di orologio.
Impostare il tempo massimo di esecuzione (in secondi) nelle opzioni del processo, come illustrato nell'esempio seguente. Per informazioni sulla configurazione delle opzioni, consultare le guide relative alle opzioni di Estimator, Sampler o Executor.
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È inoltre possibile verificare la quantità di risorse consumate dai lavori completati recuperando le metriche dei lavori come segue:
# 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 tre ore per l'esecuzione, al fine di garantire un utilizzo equo dei dispositivi. Se per il lavoro max_execution_time viene specificato anche un valore a, viene utilizzato il minore dei due valori.
Ad esempio, se si specifica max_execution_time=5000 (circa 83 minuti), il processo verrà annullato dopo circa 83 minuti, anche se il servizio potrebbe consentirne l'esecuzione 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). Dopo il raggiungimento di questo TTL, il batch viene terminato, i lavori già in esecuzione continuano ad essere eseguiti e i lavori in coda che rimangono nel batch vengono messi in stato di fallimento.
I batch hanno anche un valore di tempo di vita interattivo (interactive TTL) tra i lavori che non può essere configurato. Se non si chiude esplicitamente un batch, questo viene disattivato dopo la scadenza del TTL interattivo e può essere riattivato in qualsiasi momento finché non raggiunge il TTL massimo.
Per istruzioni su come utilizzare questi valori, vedere Eseguire lavori in batch.
Tempo massimo di esecuzione della sessione
Quando una sessione viene avviata, le viene assegnato un valore TTL massimo che determina la durata della sessione. Dopo il raggiungimento di questo TTL, la sessione viene terminata, i lavori già in esecuzione continuano ad essere eseguiti e i lavori in coda che rimangono nella sessione vengono messi in stato di fallimento.
Esiste anche un valore TTL interattivo che non può essere configurato. Se non vengono accodati lavori di sessione entro tale finestra, la sessione viene temporaneamente disattivata.
Per istruzioni su come utilizzare questi valori, vedere Eseguire lavori in una sessione.
Altre limitazioni
Con il piano Open Plan, puoi utilizzare fino a 10 minuti su una QPU ogni 28 giorni. È possibile visualizzare l'utilizzo di un'istanza nella pagina " Istanze ".
Passi successivi
- Utilizzo del carico di lavoro.
- Tieni presente questi consigli: riduci al minimo la durata dell'elaborazione.