Skip to main content
IBM Quantum Platform

PassManager

class qiskit.transpiler.PassManager(passes=(), max_iteration=1000)

GitHub

Bases : BasePassManager

Gestionnaire d'un ensemble de passes et de leur ordonnancement pendant la transpilation.

Initialise un objet de gestion de passe vide.

Paramètres

  • passes (Task |list[Task]) – Un forfait devant être ajouté au calendrier du gestionnaire de forfaits.
  • max_iteration (int) – Nombre maximal d'itérations de la programmation si la condition n'est pas remplie.

Méthodes

append

append(passes)

GitHub

Ajouter un jeu de passes à la liste des passes.

Paramètres

passes (Task |list[Task]) – Un ensemble de passes de transpilateur à ajouter au planning.

Augmentations

TranspilerError – si une passe parmi les passes n'est pas une passe valable.

Type de retour

Aucun

draw

draw(filename=None, style=None, raw=False)

GitHub

Dessinez le gestionnaire de passe.

Cette fonction nécessite pydot, qui à son tour nécessite l'installation de Graphviz.

Avertissement

Cette fonction lancera l'outil Graphviz du système sur un fichier contenant des chaînes de caractères définies par l'utilisateur (telles que les noms de passages). Il est recommandé de n'appeler cette fonction qu'avec des données fiables.

Paramètres

  • filename (str) – chemin d'accès au fichier dans lequel l'image doit être enregistrée.
  • style (dict) – les clés sont les classes de passe et les valeurs sont les couleurs qui les composent. Un exemple est donné par le paramètre DEFAULT_STYLE. Un dict ordonné peut être utilisé pour garantir une coloration prioritaire lorsque le laissez-passer relève de plusieurs catégories. Toute valeur non incluse dans le dict fourni sera remplie à partir du dict par défaut.
  • raw (bool) – Si True, enregistrez la sortie brute Dot au lieu de l'image.

Retours

une représentation en mémoire du gestionnaire de passe, ou None si aucune image n'a été générée ou si Pillow n'est pas installé.

Type de retour

Facultatif[ PassManager ]

Augmentations

ImportError - lorsque nxpd ou pydot ne sont pas installés.

remove

remove(index)

GitHub

Supprime un passage particulier dans l'ordonnanceur.

Paramètres

index (int) – Indiquez l'index de l'élément à supprimer, en fonction de sa position dans passes().

Augmentations

PassManagerError – Si l'index n'est pas trouvé.

Type de retour

Aucun

replace

replace(index, passes)

GitHub

Remplacer une passe particulière dans l'ordonnanceur.

Paramètres

  • index (int) – Indice de passage à remplacer, basé sur la position dans passes().
  • passes (Task |list[Task]) – Un forfait devant être ajouté au calendrier du gestionnaire de forfaits.

Type de retour

Aucun

run

run(circuits, output_name=None, callback=None, num_processes=None, *, property_set=None)

GitHub

Effectuer toutes les passes sur le site circuits spécifié.

Paramètres

  • circuits (_CircuitsT) – Circuit(s) à transformer via toutes les passes enregistrées.

  • output_name (str | None) – Le nom du circuit de sortie. Si None, il sera réglé sur le même nom que celui du circuit d'entrée.

  • callback (Callable | None) –

    Une fonction de rappel qui sera appelée après chaque exécution de passe. La fonction sera appelée avec 5 arguments de type mot-clé :

    pass_ (Pass): the pass being run
    dag (DAGCircuit): the dag output of the pass
    time (float): the time to execute the pass
    property_set (PropertySet): the property set
    count (int): the index for the pass execution
    Remarque

    Attention, les arguments des mots-clés sont différents de ceux utilisés par la commande générique BasePassManager. Ce gestionnaire de passe traduira ces arguments sous la forme décrite ci-dessus.

    Les arguments exacts transmis exposent les éléments internes du gestionnaire de passe et sont susceptibles d'être modifiés en fonction de l'évolution des éléments internes du gestionnaire de passe. Si vous avez l'intention de réutiliser une fonction de rappel sur plusieurs versions, assurez-vous que les arguments transmis sont les mêmes.

    Pour utiliser la fonction de rappel, vous définissez une fonction qui prend en charge les kwargs dict et accède aux variables. Par exemple :

    def callback_func(**kwargs):
        pass_ = kwargs['pass_']
        dag = kwargs['dag']
        time = kwargs['time']
        property_set = kwargs['property_set']
        count = kwargs['count']
        ...
    Remarque

    Lors de l'exécution de la transpilation en mode multiprocessus, la fonction de rappel est invoquée dans le contexte de chaque sous-processus, indépendamment du processus parent.

  • num_processes (int | None) – Nombre maximal de processus parallèles à lancer si l'exécution parallèle est activée. Cet argument remplace les num_processes paramètres définis dans le fichier de configuration utilisateur et la variable QISKIT_NUM_PROCS d'environnement. Si cette option est activée, None la configuration par défaut du système ou celle de l'utilisateur local sera utilisée.

  • property_set (dict[str, object] | None) – Si elle est donnée, la valeur initiale à utiliser en tant que PropertySet pour le pipeline du gestionnaire de passe. Cette fonction peut être utilisée pour conserver une analyse d'un cycle à l'autre, dans les cas où l'on sait que l'analyse peut être partagée en toute sécurité. Attention, certaines analyses seront spécifiques au circuit d'entrée et à l'élément particulier de l'analyse Targetvous devez donc faire preuve de beaucoup de prudence lorsque vous utilisez cet argument.

Retours

Le(s) circuit(s) transformé(s).

Type de retour

_CircuitsT

to_flow_controller

to_flow_controller()

GitHub

Linéariser ce gestionnaire en un seul FlowControllerLinearafin qu'il puisse être imbriqué dans un autre gestionnaire de passe.

Retours

Un gestionnaire de passes linéarisé.

Type de retour

Flow[* ControllerLinearIR*, IR]

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.