Tempo máximo de execução para cargas de trabalho d Qiskit Runtime
Para garantir a equidade, há um limite máximo de tempo, imposto pelo serviço, durante o qual cada tarefa do Qiskit Runtime pode ser executada. Se uma tarefa ultrapassar esse limite de tempo, ela é cancelada à força e é gerada uma exceção RuntimeJobMaxTimeoutError . Você também pode definir um tempo máximo de execução para seus trabalhos, a fim de ajudar a controlar os custos.
A sessão ou o lote é encerrado imediatamente quando o limite de custo é atingido. Quaisquer tarefas que estejam em execução nessa sessão ou lote serão concluídas, mas as tarefas pendentes serão canceladas.
Definir um tempo máximo de execução
O tempo máximo de execução de um trabalho é o menor desses valores:
- O valor definido para
max_execution_time - O valor máximo de tempo limite do serviço (três horas)
O valor max_execution_time é baseado no uso da QPU (apenas uso quântico), e não no tempo real.
Defina o tempo máximo de execução (em segundos) nas opções da tarefa, conforme mostrado no exemplo a seguir. Consulte os guias de opções do Estimador, do Amostrador ou do Executor para obter informações sobre como definir as opções.
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 = 2500Você também pode verificar o consumo de recursos dos trabalhos concluídos recuperando as métricas dos trabalhos da seguinte forma:
# Find QPU usage of a specific job
print(f"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")Tempo máximo de execução imposto pelo serviço
O serviço impõe um limite máximo de tempo de execução de três horas para garantir o uso justo dos dispositivos. Se também max_execution_time for especificado um para a tarefa, será utilizado o menor dos dois valores.
Por exemplo, se você especificar max_execution_time=5000 (aproximadamente 83 minutos), o trabalho será cancelado após aproximadamente 83 minutos, mesmo que o serviço permita que ele seja executado por três horas.
Tempo máximo de execução do lote
Quando um lote é iniciado, é atribuído a ele um valor de tempo máximo de vida (TTL máximo). Depois que esse TTL é atingido, o lote é encerrado, todos os trabalhos que já estão em execução continuam em execução e todos os trabalhos em fila que permanecem no lote são colocados em um estado de falha.
Os lotes também têm um valor de tempo de vida interativo (TTL interativo) entre os trabalhos que não pode ser configurado. Se você não fechar explicitamente um lote, ele será desativado após a expiração do TTL interativo e poderá ser reativado a qualquer momento até atingir o TTL máximo.
Para obter instruções sobre como trabalhar com esses valores, consulte Executar tarefas em lote.
Tempo máximo de execução da sessão
Quando uma sessão é iniciada, é atribuído a ela um valor TTL máximo que determina por quanto tempo uma sessão pode ser executada. Depois que esse TTL é atingido, a sessão é encerrada, todos os trabalhos que já estão em execução continuam em execução e todos os trabalhos em fila que permanecem na sessão são colocados em um estado de falha.
Há também um valor TTL interativo que não pode ser configurado. Se nenhum trabalho de sessão for enfileirado dentro dessa janela, a sessão será temporariamente desativada.
Para obter instruções sobre como trabalhar com esses valores, consulte Executar tarefas em uma sessão.
Outras limitações
No Plano Aberto, você pode utilizar até 10 minutos por QPU a cada período de 28 dias. Você pode visualizar o uso de uma instância na página Instâncias.
Próximas etapas
- Utilização da carga de trabalho.
- Confira estas dicas: Reduza o tempo de execução da tarefa.