Aller au contenu principal

Configurer le SDK Qiskit en local

Une fois le SDK Qiskit installé et opérationnel, tu peux effectuer quelques étapes optionnelles pour modifier le comportement par défaut de Qiskit.

Fichier de configuration utilisateur

L'emplacement principal pour la configuration locale de Qiskit est le fichier de configuration utilisateur. Il s'agit d'un fichier au format .ini qui peut être utilisé pour modifier les paramètres par défaut de Qiskit.

Exemple :

[default]
circuit_drawer = mpl
circuit_mpl_style = default
circuit_mpl_style_path = ~:~/.qiskit
state_drawer = hinton
transpile_optimization_level = 3
parallel = False
num_processes = 15

Par défaut, ce fichier se trouve dans ~/.qiskit/settings.conf, mais le chemin peut être remplacé par la variable d'environnement QISKIT_SETTINGS.

Options disponibles

  • circuit_drawer : Modifie le système par défaut pour le dessinateur de circuit. Il peut être défini sur latex, mpl, text ou latex_source. Lorsque le paramètre kwarg output n'est pas explicitement défini, ce système de dessin est utilisé.
  • circuit_mpl_style : La feuille de style par défaut utilisée pour le système de sortie mpl du dessinateur de circuit. Les valeurs valides sont default ou bw.
  • circuit_mpl_style_path : Les chemins que le dessinateur de circuit utilise pour rechercher les feuilles de style JSON lorsqu'il emploie le mode de sortie mpl.
  • state_drawer : Permet de modifier le système par défaut pour les méthodes de dessin de visualisation d'état. Les valeurs valides sont repr, text, latex, latex_source, qsphere, hinton ou bloch. Lorsque le paramètre kwarg output n'est pas explicitement défini sur la méthode qiskit.quantum_info.DensityMatrix.draw, la méthode de sortie spécifiée est utilisée.
  • transpile_optimization_level : Modifie le niveau d'optimisation par défaut pour qiskit.compiler.transpile. Spécifie un entier entre 0 et 3.
  • parallel : Indique si le multiprocessing Python est activé pour les opérations qui prennent en charge l'exécution en parallèle. Par exemple, la transpilation de plusieurs objets qiskit.circuit.QuantumCircuit. Ce paramètre peut être remplacé par la variable d'environnement QISKIT_PARALLEL. Spécifie une valeur booléenne.
  • num_processes : Le nombre maximum de processus parallèles à lancer pour les opérations parallèles si l'exécution parallèle est activée. Ce paramètre peut être remplacé par la variable d'environnement QISKIT_NUM_PROCS. Spécifie un entier supérieur à 0.
remarque

Variables d'environnement

Définis ces variables d'environnement pour modifier le comportement par défaut de Qiskit :

  • QISKIT_PARALLEL : Active le multiprocessing Python pour paralléliser certaines opérations ; par exemple, la transpilation sur plusieurs circuits dans Qiskit. Spécifie une valeur booléenne.
  • QISKIT_NUM_PROCS : Le nombre maximum de processus parallèles à lancer pour les opérations parallèles si l'exécution parallèle est activée. Spécifie un entier supérieur à zéro.
  • RAYON_NUM_THREADS : Le nombre de threads pour exécuter les opérations multithreadées dans Qiskit. Par défaut, le code multithreadé lance un thread par CPU logique. Pour ajuster le nombre de threads utilisés par Qiskit, définis cette variable sur une valeur entière. Par exemple, définir RAYON_NUM_THREADS=4 lance quatre threads pour les fonctions multithreadées.
  • QISKIT_FORCE_THREADS : Indique que le code multithreadé doit toujours s'exécuter avec plusieurs threads. Par défaut, si tu exécutes du code multithreadé dans une section de Qiskit qui s'exécute déjà en processus parallèles, Qiskit ne lance pas plusieurs threads mais exécute cette fonction en série. Cela permet d'éviter une surcharge potentielle des ressources CPU limitées. Cependant, si tu souhaites forcer l'utilisation de plusieurs threads même dans un contexte multiprocessus, définis QISKIT_FORCE_THREADS=TRUE.
  • QISKIT_SABRE_ALL_THREADS : Contrôle le comportement de la passe de placement et de routage dans le gestionnaire de passes prédéfini de Qiskit. Lorsque cette variable est définie sur 1 ou TRUE, elle utilise tous les CPU disponibles pour exécuter plusieurs essais aléatoires. Cela peut améliorer la qualité des résultats, en particulier pour les systèmes disposant de plus de 20 CPU/cœurs ; en contrepartie, les résultats ne sont pas reproductibles lorsqu'ils sont exécutés sur du matériel local différent.

Prochaines étapes

Recommandations