Introduction aux modes d'exécution de l'informatique quantique
Lors du lancement du service de calcul « IBM Quantum », les utilisateurs ne pouvaient exécuter les circuits que sous forme de tâches individuelles. À mesure que différents types de charges de travail quantiques ont fait leur apparition, la nécessité de mettre en place différentes stratégies d'ordonnancement est devenue évidente. Les modes d'exécution déterminent la manière dont vos tâches sont planifiées, et le choix du mode d'exécution approprié permet à votre charge de travail de s'exécuter efficacement tout en respectant votre budget. Il existe trois modes d'exécution : « job », « session » et « batch ».
Job Mode
Une simple requête primitive effectuée sans gestionnaire de contexte. Les circuits et les entrées sont regroupés sous forme de blocs primitifs unifiés (PUB) et soumis sous forme de tâche d'exécution sur l'ordinateur quantique. Pour exécuter en mode tâche, indiquez-le mode=backend lors de l'instanciation d'une primitive. Consultez les exemples d'Estimator et d'Sampler pour connaître leur utilisation.
Mode de traitement par lots
Un gestionnaire multi-tâches pour exécuter efficacement des expériences comprenant des charges de travail multi-tâches. Ces charges de travail sont constituées de tâches exécutables indépendamment les unes des autres, sans relation conditionnelle entre elles. En mode batch, les utilisateurs soumettent tous leurs travaux en même temps.
Le système parallélise ou threadise l'étape de prétraitement (calcul classique) de chaque tâche primitive afin de regrouper plus étroitement l'exécution quantique entre les tâches, puis exécute rapidement l'exécution quantique de chaque tâche afin d'obtenir les résultats les plus efficaces. Pour plus d'informations sur le threading, consultez la page FAQ sur le mode d'exécution.
- Lors de la mise en lots, l'exécution des travaux n'est pas garantie dans l'ordre où ils sont soumis. En outre, même si vos travaux par lots sont exécutés aussi étroitement que possible, ils ne bénéficient pas d'un accès exclusif au backend. Par conséquent, vos travaux par lots peuvent être exécutés en parallèle avec les travaux d'autres utilisateurs si la capacité de traitement de la QPU est suffisante. En outre, les travaux d'étalonnage de la QPU peuvent être exécutés entre les travaux en lots.
- Le temps d'attente ne diminue pas pour le premier travail soumis dans un lot. Par conséquent, les lots n'offrent aucun avantage par rapport à l'exécution d'un seul travail.
Pour l'exécuter en mode batch, spécifiez mode=batch lors de l'instanciation d'une primitive ou exécutez le travail dans un gestionnaire de contexte batch. Pour des exemples, voir Exécuter des travaux par lots.
Mode session
Une fenêtre dédiée à l'exécution d'une charge de travail multi-tâches. Pendant cette fenêtre, l'utilisateur a un accès exclusif au système et aucune autre tâche ne peut être exécutée, y compris les tâches d'étalonnage. Cela permet aux utilisateurs d'expérimenter les algorithmes variationnels d'une manière plus prévisible et même d'exécuter plusieurs expériences simultanément, en tirant parti du parallélisme dans la pile. L'utilisation de sessions permet d'éviter les retards causés par la mise en file d'attente de chaque tâche séparément, ce qui peut être particulièrement utile pour les tâches itératives qui nécessitent une communication fréquente entre les ressources classiques et quantiques.
Pour exécuter en mode session, spécifiez mode=session lors de l'instanciation d'une primitive ou exécutez le travail dans un gestionnaire de contexte de session. Pour des exemples, voir Exécuter des tâches dans une session.
- Le temps d'attente ne diminue pas pour le premier travail soumis au cours d'une session. Par conséquent, les sessions n'offrent aucun avantage lors de l'exécution d'un seul travail.
- Les utilisateurs de plans ouverts ne peuvent pas soumettre de travaux de session.
Flux de travail de base
Le flux de travail de base pour les lots et les sessions est similaire :
- Le premier travail d'un lot ou d'une session entre dans la file d'attente normale. Pour les lots, l'ensemble du lot de travaux est planifié en même temps.
- Lorsque le premier travail commence à être exécuté, le délai maximum de vie (TTL) démarre et ne s'arrête pas ou ne fait pas de pause jusqu'à ce que la fin soit atteinte.
- Le minuteur TTL interactif démarre après la fin de chaque tâche. Si aucun travail n'est prêt dans la fenêtre TTL interactive, la charge de travail est temporairement désactivée et la sélection normale des travaux reprend. Un travail peut réactiver la charge de travail désactivée si le lot ou la session n'a pas atteint sa valeur TTL maximale.
Note
La tâche doit passer par la file d'attente normale pour réactiver la charge de travail.
- Si la valeur maximale du TTL est atteinte, la charge de travail se termine et les travaux restants en file d'attente échouent. Tout travail en cours d'exécution ne sera pas exécuté jusqu'à son terme si cela risque de dépasser la limite de coût de l'instance.
La vidéo suivante illustre le flux de travail de base, en utilisant les sessions comme exemple :
Pour plus de détails sur les temporisations TTL, voir le guide Temps d'exécution maximum.