BasePassManager
class qiskit.passmanager.BasePassManager(tasks=(), max_iteration=1000)
Pass Manager Basisklasse.
Initialisieren Sie ein leeres Passmanager-Objekt.
Parameter
- tasks (Task[IR, IR] | list[Task[IR, IR]]) – Ein Pass, der in den Zeitplan des Pass-Managers aufgenommen werden soll.
- max_iteration (int) – Die maximale Anzahl der Iterationen, die der Zeitplan in einer Schleife durchlaufen wird, wenn die Bedingung nicht erfüllt ist.
Methoden
append
append(tasks)
Anhängen von Aufgaben an den Zeitplan der Durchgänge.
Parameter
tasks (Task[IR, IR] | list[Task[IR, IR]]) – Eine Reihe von Pass-Manager-Aufgaben, die dem Zeitplan hinzugefügt werden sollen.
Erhöht
TypeError - Wenn ein Element von Tasks nicht eine Unterklasse von passmanager Task ist.
Rückgabetyp
Keine
remove
remove(index)
Entfernt einen bestimmten Durchlauf im Scheduler.
Parameter
index (int) – Pass-Index zum Entfernen, basierend auf der Position in passes().
Erhöht
PassManagerError – Falls der Index nicht gefunden wird.
Rückgabetyp
Keine
replace
replace(index, tasks)
Ersetzen eines bestimmten Durchlaufs im Planer.
Parameter
- index (int) – Zu ersetzender Aufgabenindex, basierend auf der Position in
tasks() - tasks (Task[IR, IR] | list[Task[IR, IR]]) – Eine Reihe von Pass-Manager-Aufgaben, die dem Zeitplan hinzugefügt werden sollen.
Erhöht
- TypeError - Wenn ein Element von Tasks nicht eine Unterklasse von passmanager Task ist.
- PassManagerError – Falls der Index nicht gefunden wird.
Rückgabetyp
Keine
run
run(in_programs, callback=None, num_processes=None, *, property_set=None, **kwargs)
Führen Sie alle Durchläufe auf der angegebenen in_programs durch.
Parameter
-
in_programs (Any |list[Any]) – Geben Sie Programme ein, die alle registrierten Durchläufe transformieren sollen. Ein einzelnes Eingabeobjekt kann kein integriertes Listenobjekt „ Python “ sein. Ein Listenobjekt wird als mehrere zu optimierende Eingabeobjekte betrachtet.
-
callback (Callable[[Task, IR, PropertySet, float, int], None] | None) –
Eine Callback-Funktion, die nach jeder Durchlaufausführung aufgerufen wird. Die Funktion wird mit 5 Schlüsselwortargumenten aufgerufen:
task (GenericPass): the pass being run passmanager_ir (Any): depending on pass manager subclass property_set (PropertySet): the property set running_time (float): the time to execute the pass count (int): the index for the pass executionDie übergebenen Argumente geben Einblick in die interne Funktionsweise des Pass-Managers und können sich ändern, sobald sich die interne Funktionsweise des Pass-Managers ändert. Wenn Sie eine Callback-Funktion über mehrere Versionen hinweg wiederverwenden möchten, stellen Sie sicher, dass die übergebenen Argumente identisch 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): task = kwargs['task'] passmanager_ir = kwargs['passmanager_ir'] property_set = kwargs['property_set'] running_time = kwargs['running_time'] count = kwargs['count'] ... -
num_processes (int | None) – Die maximale Anzahl paralleler Prozesse, die gestartet werden können, wenn die parallele Ausführung aktiviert ist. Dieses Argument überschreibt
num_processesin der Benutzerkonfigurationsdatei und dieQISKIT_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. -
kwargs - Beliebige Argumente, die an das Compiler-Frontend und -Backend übergeben werden.
Rückgabe
Das/die umgewandelte(n) Programm(e).
Rückgabetyp
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]