Durée d'exécution maximale pour les charges de travail du service de calcul d' IBM Quantum
Afin de garantir l'équité, le service impose une durée maximale d'exécution pour chaque tâche. Si une tâche dépasse ce délai, elle est annulée de force et une exception RuntimeJobMaxTimeoutError est levée. Vous pouvez également définir une durée maximale d'exécution pour vos tâches afin de mieux maîtriser les coûts.
La session ou le lot est immédiatement interrompu lorsque la limite de coût est atteinte. Les tâches en cours d'exécution dans cette session ou ce lot seront menées à terme, mais toutes les tâches en attente seront annulées.
Définir un délai d'exécution maximal
La durée maximale d'exécution d'un travail est la plus petite de ces valeurs :
- La valeur fixée pour
max_execution_time - La durée maximale de déconnexion du service (trois heures)
Cette valeur max_execution_time est calculée en fonction de l'utilisation du QPU (utilisation quantique uniquement), et non en fonction du temps réel.
Définissez la durée maximale d'exécution (en secondes) dans les options de la tâche, comme indiqué dans l'exemple suivant. Pour plus d'informations sur la configuration des options, consultez les guides consacrés aux options de l'estimateur, de l'échantillonneur ou de l'exécuteur.
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 = 2500Vous pouvez également connaître la quantité de ressources consommées par les tâches terminées en récupérant les métriques de ces tâches comme suit :
# Find QPU usage of a specific job
print(f"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")Durée d'exécution maximale imposée par le service
Le service impose une limite maximale d'exécution de trois heures afin de garantir une utilisation équitable des appareils. Si une valeur max_execution_time est également spécifiée pour la tâche, c'est la plus petite des deux valeurs qui est utilisée.
Par exemple, si vous indiquez max_execution_time=5000 (environ 83 minutes), la tâche sera alors annulée au bout d'environ 83 minutes, même si le service pourrait lui permettre de s'exécuter pendant trois heures.
Durée maximale d'exécution par lot
Lorsqu'un lot est lancé, il se voit attribuer une valeur maximale de durée de vie (maximum time to live ou TTL). Une fois ce délai atteint, le lot est terminé, les tâches déjà en cours d'exécution se poursuivent et les tâches en file d'attente qui restent dans le lot sont placées en état d'échec.
Les lots ont également une valeur TTL interactive (interactive time to live) entre les travaux qui ne peut pas être configurée. Si vous ne fermez pas explicitement un lot, il est désactivé après l'expiration du TTL interactif et peut être réactivé à tout moment jusqu'à ce qu'il atteigne son TTL maximal.
Pour obtenir des instructions sur l'utilisation de ces valeurs, consultez la section Exécuter des tâches par lots.
Durée maximale d'exécution d'une session
Lorsqu'une session est lancée, elle se voit attribuer une valeur TTL maximale qui détermine la durée de la session. Une fois ce délai atteint, la session est terminée, les travaux déjà en cours continuent de s'exécuter et les travaux en file d'attente qui restent dans la session sont placés dans un état d'échec.
Il existe également une valeur TTL interactive qui ne peut pas être configurée. Si aucune tâche de session n'est mise en file d'attente dans cette fenêtre, la session est temporairement désactivée.
Pour obtenir des instructions sur l'utilisation de ces valeurs, consultez la section Exécuter des tâches dans une session.
Autres limitations
Avec la formule Open Plan, vous pouvez utiliser jusqu'à 10 minutes de QPU par période de 28 jours glissants. Vous pouvez consulter l'utilisation d'une instance sur la page Instances.
Etapes suivantes
- Utilisation de la charge de travail.
- Consultez ces conseils : réduisez la durée d'exécution des tâches.