Choisir le bon mode d'exécution
Les charges de travail à l'échelle de l'utilité peuvent prendre de nombreuses heures, il est donc important que les ressources classiques et quantiques soient programmées efficacement pour rationaliser l'exécution. Les modes d'exécution permettent d'équilibrer les coûts et les délais afin d'utiliser les ressources de manière optimale pour vos charges de travail. Plusieurs aspects doivent être pris en compte lors du choix du mode d'exécution, tels que le temps d'exécution global (maximum time to live, ou TTL) et le temps entre les tâches (TTL interactif).
Les avantages de chacun d'entre eux sont résumés ci-dessous :
- Lot
- L'ensemble du lot de travaux est programmé ensemble et il n'y a pas de temps d'attente supplémentaire pour chacun d'entre eux.
- Les calculs classiques des tâches, tels que la compilation, sont exécutés en parallèle. Ainsi, l'exécution de plusieurs travaux par lots est nettement plus rapide que l'exécution en série.
- Les délais entre les travaux sont généralement minimes, ce qui permet d'éviter les dérives.
- Si vous divisez votre charge de travail en plusieurs tâches et que vous les exécutez en mode batch, vous pouvez obtenir des résultats à partir de tâches individuelles, ce qui les rend plus flexibles. Par exemple, si les résultats d'un travail ne répondent pas à vos attentes, vous pouvez annuler les autres travaux. En outre, si une tâche échoue, vous pouvez la soumettre à nouveau au lieu de réexécuter l'ensemble de la charge de travail.
- Est généralement moins coûteux que les sessions.
- Session
- Toutes les fonctionnalités du mode batch (mais nécessitant une utilisation accrue; voir Utilisation de la charge de travail pour plus de détails sur le calcul de l'utilisation).
- Accès dédié et exclusif au QPU pendant la fenêtre active de la session.
- Utile pour les charges de travail dont toutes les entrées ne sont pas prêtes au départ, pour les charges de travail itératives qui nécessitent un post-traitement classique avant que la suivante ne puisse être exécutée, et pour les expériences qui doivent être exécutées de la manière la plus étroite possible.
- tâche planifiée
- Plus facile à utiliser lors d'une petite expérience.
- Il est possible qu'il s'exécute plus rapidement qu'en mode batch.
Recommandations et bonnes pratiques
En règle générale, utilisez le mode batch, sauf si vous avez des charges de travail pour lesquelles toutes les entrées ne sont pas prêtes dès le départ.
-
Utilisez le mode batch pour soumettre simultanément plusieurs travaux primitifs afin de réduire le temps de traitement.
-
Utilisez le mode session pour les charges de travail itératives ou si vous avez besoin d'un accès dédié au QPU.
-
Utilisez toujours le mode "job" pour soumettre une seule demande primitive.
-
Les sessions étant généralement plus coûteuses, il est recommandé d'utiliser le traitement par lots chaque fois que vous n'avez pas besoin des avantages supplémentaires offerts par les sessions.
-
Les utilisateurs du plan ouvert ne peuvent pas soumettre de travaux de session.
Pour garantir l'utilisation la plus efficace possible des modes d'exécution, les pratiques suivantes sont recommandées :
-
L'exécution d'un travail entraîne des frais généraux fixes. En général, si chacun de vos travaux utilise moins d'une minute de temps QPU, envisagez d'en combiner plusieurs en un seul travail plus important (ceci s'applique à tous les modes d'exécution). le "temps QPU" correspond au temps passé par le complexe QPU pour traiter votre demande.
-
Si chacun de vos travaux consomme plus d'une minute de temps QPU, ou s'il n'est pas pratique de combiner les travaux, vous pouvez toujours exécuter plusieurs travaux en parallèle. Chaque travail passe par un traitement classique et un traitement quantique. Alors qu'une QPU ne peut traiter qu'un seul travail à la fois, jusqu'à cinq travaux classiques peuvent être traités en parallèle. Vous pouvez en tirer parti en soumettant plusieurs travaux en mode d'exécution par lots ou par sessions.
Il s'agit de lignes directrices générales, et vous devez adapter votre charge de travail pour trouver le ratio optimal, en particulier lors de l'utilisation de sessions. Par exemple, si vous utilisez une session pour obtenir un accès exclusif à un backend, envisagez de diviser les tâches importantes en tâches plus petites et de les exécuter en parallèle. Cette solution pourrait être plus rentable, car elle permet de réduire le temps d'horloge murale.
Exemples
Exécuter un algorithme variationnel quantique
L'exécution d'un algorithme variationnel quantique suit généralement ce flux :
- Préparer l'ansatz.
- Évaluer la fonction de coût sur une QPU.
- Prenez le résultat de l'étape précédente et passez-le dans un optimiseur classique.
- Ajustez les paramètres en fonction des résultats de l'étape (3), puis revenez à l'étape (2).
Dans ce cas, si vous utilisiez le mode job ou batch, chaque job généré par l'étape (2) doit repasser par la file d'attente. Cela augmente considérablement la durée de l'expérience (temps d'horloge) en raison du temps d'attente. La convergence pourrait également prendre plus de temps en raison de la dérive de l'appareil. En d'autres termes, chaque itération est censée donner un meilleur résultat, mais la dérive des appareils peut aggraver les résultats ultérieurs.
En outre, si vous utilisez PEA ou PEC, vous pouvez apprendre le modèle de bruit une seule fois et l'appliquer aux travaux suivants lorsqu'ils sont exécutés dans une session dédiée. Cela ne fonctionne généralement pas en mode batch ou job, car le modèle de bruit risque d'être périmé au moment où le travail suivant sort de la file d'attente.
Comparer les paramètres d'atténuation des erreurs
Pour comparer les effets des méthodes d'atténuation des erreurs disponibles, vous pouvez suivre la procédure suivante :
- Construire un circuit et un observable.
- Soumettre des travaux primitifs qui utilisent différentes combinaisons de paramètres d'atténuation des erreurs.
- Tracez les résultats pour observer les effets des différents paramètres.
Dans ce cas, tous les emplois (qui sont liés mais indépendants) sont disponibles dès le départ. Si vous utilisez le mode batch, ils sont programmés collectivement, de sorte que vous n'avez à attendre qu'une seule fois qu'ils passent par la file d'attente. En outre, l'objectif étant de comparer les effets de diverses méthodes d'atténuation des erreurs, il est préférable que ces méthodes soient exécutées le plus près possible les unes des autres. Le lot serait donc un bon choix. Vous pourriez exécuter ces tâches dans une session, mais comme les sessions sont généralement plus coûteuses, il est recommandé d'utiliser le traitement par lots chaque fois que vous n'avez pas besoin des fonctionnalités supplémentaires offertes par les sessions.