Sari la conținutul principal

Timpul maxim de execuție pentru sarcinile Qiskit Runtime

Pentru a asigura echitatea, există o durată maximă de timp calculată de serviciu în care fiecare job Qiskit Runtime poate rula. Dacă un job depășește această limită de timp, este anulat forțat și este ridicată o excepție RuntimeJobMaxTimeoutError. Poți, de asemenea, să setezi un timp maxim de execuție pentru joburile tale pentru a controla costurile.

notă

Sesiunea sau lotul este terminat imediat când se atinge limita de cost.

Setarea unui timp maxim de execuție

Timpul maxim de execuție pentru un job este cel mai mic dintre aceste valori:

  • Valoarea setată pentru max_execution_time
  • Valoarea de timeout a jobului determinată de serviciu

Valoarea max_execution_time se bazează pe timpul cuantic, nu pe timpul real al ceasului. Timpul cuantic reprezintă durata în care QPU-ul este dedicat procesării jobului tău.

Setează timpul maxim de execuție (în secunde) în opțiunile jobului, așa cum se arată în exemplul următor. Consultă Specificarea opțiunilor pentru informații despre setarea opțiunilor.

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

Poți, de asemenea, să afli câte secunde de timp cuantic au folosit joburile finalizate, returnând metricile jobului astfel:

# Find quantum time used by the job
print(f"Quantum time used by job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")

Timpul maxim de execuție calculat de serviciu

Serviciul calculează o valoare de timeout adecvată pentru job pe baza circuitelor și opțiunilor introduse. Acest timeout calculat de serviciu este limitat la 3 ore pentru a asigura utilizarea echitabilă a dispozitivului. Dacă este specificat și un max_execution_time pentru job, se folosește valoarea mai mică dintre cele două.

De exemplu, dacă specifici max_execution_time=5000 (aproximativ 83 de minute), dar serviciul determină că execuția jobului nu ar trebui să dureze mai mult de 5 minute (300 de secunde), atunci jobul este anulat după 5 minute.

Timpul maxim de execuție al lotului

Când un lot este pornit, i se atribuie o valoare maximă de timp de viață (TTL maxim). După ce acest TTL este atins, lotul este terminat, joburile care rulează deja continuă să ruleze, iar joburile din coadă rămase în lot sunt trecute într-o stare de eșec.

Loturile au, de asemenea, o valoare de timp de viață interactiv (TTL interactiv) între joburi care nu poate fi configurată. Dacă nu închizi explicit un lot, acesta este dezactivat după expirarea TTL-ului interactiv și poate fi reactivat oricând până când atinge TTL-ul maxim.

Pentru instrucțiuni de lucru cu aceste valori, consultă Rularea joburilor într-un lot.

Timpul maxim de execuție al sesiunii

Când o sesiune este pornită, i se atribuie o valoare maximă de TTL care determină cât timp poate rula o sesiune. După ce acest TTL este atins, sesiunea este terminată, joburile care rulează deja continuă să ruleze, iar joburile din coadă rămase în sesiune sunt trecute într-o stare de eșec.

Există, de asemenea, o valoare de TTL interactiv care nu poate fi configurată. Dacă niciun job din sesiune nu este adăugat în coadă în acea fereastră de timp, sesiunea este dezactivată temporar.

Pentru instrucțiuni de lucru cu aceste valori, consultă Rularea joburilor într-o sesiune.

Alte limitări

  • Datele de intrare pentru joburi nu pot depăși 50 MB ca dimensiune.
  • Utilizatorii planului Open pot folosi până la 10 minute de timp cuantic per fereastră mobilă de 28 de zile. Timpul cuantic reprezintă durata în care QPU-ul este dedicat procesării jobului tău. Poți vizualiza utilizarea unei instanțe pe pagina Instances.

Pași următori