PassManager
class qiskit.transpiler.PassManager(passes=(), max_iteration=1000)
Basen: BasePassManager
Manager für eine Reihe von Pässen und deren Planung während der Umsetzung.
Initialisieren Sie ein leeres Passmanager-Objekt.
Parameter
- passes (Task |list[Task]) – Ein Pass, der in den Zeitplan des Pass-Managers aufgenommen werden soll.
- max_iteration (int) – Die maximale Anzahl der Iterationen, die der Zeitplan durchlaufen wird, wenn die Bedingung nicht erfüllt ist.
Methoden
append
append(passes)
Anhängen eines Pass-Sets an die Liste der Pässe.
Parameter
passes (Task |list[Task]) – Eine Reihe von Transpiler-Durchläufen, die dem Zeitplan hinzugefügt werden sollen.
Erhöht
TranspilerError – wenn ein Pass unter den Pässen kein ordnungsgemäßer Pass ist.
Rückgabetyp
Keine
draw
draw(filename=None, style=None, raw=False)
Zeichnen Sie den Passmanager.
Diese Funktion benötigt pydot, das wiederum die Installation von Graphviz voraussetzt.
Diese Funktion ruft das systemeigene Graphviz-Tool für eine Datei auf, die vom Benutzer steuerbare Zeichenfolgen (wie beispielsweise Passnamen) enthält. Es wird empfohlen, diese Funktion nur bei vertrauenswürdigen Eingaben aufzurufen.
Parameter
- filename (str) – dateipfad, in dem das Bild gespeichert werden soll.
- style (dict) – schlüssel sind die Pass-Klassen und die Werte sind die Farben, die sie bilden. Ein Beispiel hierfür ist der DEFAULT_STYLE. Ein geordnetes Diktat kann verwendet werden, um eine Prioritätseinfärbung zu gewährleisten, wenn ein Pass in mehrere Kategorien fällt. Alle Werte, die nicht in dem angegebenen Diktat enthalten sind, werden aus dem Standarddiktat ausgefüllt.
- raw (bool) – Wenn
True, speichern Sie die rohe Dot-Ausgabe anstelle des Bildes.
Rückgabe
eine speicherinterne Darstellung des Passmanagers oder None , wenn kein Image erstellt wurde oder Pillow nicht installiert ist.
Rückgabetyp
Fakultativ[ PassManager ]
Erhöht
ImportError - wenn nxpd oder pydot nicht installiert sind.
remove
remove(index)
Entfernt einen bestimmten Durchlauf im Scheduler.
Parameter
index (int) – Geben Sie den Index des zu entfernenden Elements an, basierend auf der Position in passes().
Erhöht
PassManagerError – Falls der Index nicht gefunden wird.
Rückgabetyp
Keine
replace
replace(index, passes)
Ersetzen eines bestimmten Durchlaufs im Planer.
Parameter
- index (int) – Übergeben Sie den zu ersetzenden Index, basierend auf der Position in passes().
- passes (Task |list[Task]) – Ein Pass, der in den Zeitplan des Pass-Managers aufgenommen werden soll.
Rückgabetyp
Keine
run
run(circuits, output_name=None, callback=None, num_processes=None, *, property_set=None)
Führen Sie alle Durchläufe auf der angegebenen circuits durch.
Parameter
-
circuits (_CircuitsT) – Stromkreis(e) zur Umwandlung über alle registrierten Durchgänge.
-
output_name (str | None) – Der Name des Ausgangskreises. Bei
Nonewird er auf denselben Namen wie der Eingangskreis gesetzt. -
callback (Callable | None) –
Eine Callback-Funktion, die nach jeder Ausführung eines Durchgangs aufgerufen wird. Die Funktion wird mit 5 Schlüsselwortargumenten aufgerufen:
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 executionAnmerkungBeachten Sie, dass sich die Schlüsselwortargumente hier von denen unterscheiden, die von der generischen
BasePassManager. Dieser Passmanager übersetzt diese Argumente in die oben beschriebene Form.Die genauen Argumente, die übergeben werden, legen die Interna des Pass-Managers offen und können sich ändern, wenn sich die Interna des Pass-Managers ändern. Wenn Sie beabsichtigen, eine Callback-Funktion über mehrere Versionen hinweg wiederzuverwenden, stellen Sie sicher, dass die übergebenen Argumente dieselben sind.
Um die Callback-Funktion zu nutzen, definieren Sie eine Funktion, die kwargs dict aufnimmt und auf die Variablen zugreift. Zum Beispiel:
def callback_func(**kwargs): pass_ = kwargs['pass_'] dag = kwargs['dag'] time = kwargs['time'] property_set = kwargs['property_set'] count = kwargs['count'] ...AnmerkungBei der Transpilierung mit Multiprocessing wird die Callback-Funktion im Kontext eines jeden Unterprozesses aufgerufen, unabhängig vom übergeordneten Prozess.
-
num_processes (int | None) – Die maximale Anzahl paralleler Prozesse, die gestartet werden sollen, wenn die parallele Ausführung aktiviert ist. Dieses Argument hat Vorrang vor der
num_processesEinstellung in der Benutzerkonfigurationsdatei und derQISKIT_NUM_PROCSUmgebungsvariable. Wenn diese Option aktiviert istNone, wird die Systemstandardkonfiguration oder die lokale Benutzerkonfiguration verwendet. -
property_set (dict[str, object] | None) – Falls angegeben, der Anfangswert, der als
PropertySetfür die Pass-Manager-Pipeline verwendet wird. Dies kann verwendet werden, um die Analyse von einem Lauf zum nächsten weiterzuführen, wenn Sie wissen, dass die Analyse sicher weitergegeben werden kann. Beachten Sie, dass einige Analysen spezifisch für den Eingangsschaltkreis und den jeweiligenTargetdaher sollten Sie bei der Verwendung dieses Arguments sehr vorsichtig sein.
Rückgabe
Die transformierte(n) Schaltung(en).
Rückgabetyp
_CircuitsT
to_flow_controller
to_flow_controller()
Linearisieren Sie diesen Manager in einen einzigen FlowControllerLinearso dass er in einem anderen Durchlaufmanager verschachtelt werden kann.
Rückgabe
Ein linearisierter Passmanager.
Rückgabetyp
Flow[* ControllerLinearIR*, IR]