PassManager
class qiskit.transpiler.PassManager(passes=(), max_iteration=1000)
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)
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)
Dessinez le gestionnaire de passe.
Cette fonction nécessite pydot, qui à son tour nécessite l'installation de Graphviz.
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)
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)
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)
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 executionRemarqueAttention, 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'] ...RemarqueLors 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_processesparamètres définis dans le fichier de configuration utilisateur et la variableQISKIT_NUM_PROCSd'environnement. Si cette option est activée,Nonela 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
PropertySetpour 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'analyseTargetvous 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()
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]