Skip to main content
IBM Quantum Platform

Tiempo máximo de ejecución para cargas de trabajo de Qiskit Runtime

Para garantizar la equidad, el servicio impone un límite máximo de tiempo de ejecución para cada tarea de Qiskit Runtime. Si un trabajo supera este límite de tiempo, se cancela de forma forzada y se genera una excepción RuntimeJobMaxTimeoutError . También puedes establecer un tiempo máximo de ejecución para tus trabajos, lo que te ayudará a controlar los costes.

La sesión o el lote se interrumpe inmediatamente al alcanzarse el límite de coste. Los trabajos que se estén ejecutando actualmente en esa sesión o lote se completarán, pero los trabajos pendientes se cancelarán.


Establecer un tiempo máximo de ejecución

El tiempo máximo de ejecución de un trabajo es el menor de estos valores:

  • El valor fijado para max_execution_time
  • El límite máximo establecido por el servicio (tres horas)

El max_execution_time valor se basa en el uso de la QPU, no en el tiempo real.

Establezca el tiempo máximo de ejecución (en segundos) en las opciones del trabajo, tal y como se muestra en el siguiente ejemplo. Consulte las guías de opciones del Estimador, del Muestreador o del Ejecutor para obtener información sobre cómo configurar las opciones.

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

También puedes averiguar cuánto consumo han generado los trabajos completados recuperando las métricas del trabajo de la siguiente manera:

# Find QPU usage of a specific job
print(f"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")

Tiempo máximo de ejecución impuesto por el servicio

El servicio aplica un límite máximo de tiempo de ejecución de tres horas para garantizar un uso equitativo de los dispositivos. Si también max_execution_time se especifica un para el trabajo, se utiliza el menor de los dos valores.

Por ejemplo, si se especifica max_execution_time=5000 (aproximadamente 83 minutos), el trabajo se cancela al cabo de aproximadamente 83 minutos, aunque el servicio permita que se ejecute durante tres horas.


Tiempo máximo de ejecución por lote

Cuando se inicia un lote, se le asigna un valor de tiempo máximo de vida (TTL máximo). Una vez alcanzado este TTL, el lote finaliza, los trabajos que ya se estén ejecutando continúan ejecutándose y los trabajos en cola que permanezcan en el lote pasan a un estado fallido.

Los lotes también tienen un valor de tiempo de vida interactivo (TTL interactivo) entre trabajos que no se puede configurar. Si no cierra explícitamente un lote, éste se desactiva cuando expira el TTL interactivo y puede reactivarse en cualquier momento hasta que alcance su TTL máximo.

Para obtener instrucciones sobre cómo trabajar con estos valores, consulte Ejecutar trabajos en un lote.


Tiempo máximo de ejecución de la sesión

Cuando se inicia una sesión, se le asigna un valor TTL máximo que determina cuánto tiempo puede durar una sesión. Una vez alcanzado este TTL, la sesión finaliza, los trabajos que ya estén en ejecución continúan ejecutándose y los trabajos en cola que permanezcan en la sesión pasan a un estado fallido.

También hay un valor TTL interactivo que no se puede configurar. Si no hay trabajos de sesión en cola dentro de esa ventana, la sesión se desactiva temporalmente.

Para obtener instrucciones sobre cómo trabajar con estos valores, consulte Ejecutar trabajos en una sesión.


Otras limitaciones

En el plan Open, puedes utilizar hasta 10 minutos de QPU por cada periodo de 28 días consecutivos. Puedes consultar el uso de una instancia en la página «Instancias ».


Próximos pasos

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.