Skip to main content
IBM Quantum Platform

BasePassManager

class qiskit.passmanager.BasePassManager(tasks=(), max_iteration=1000)

GitHub

Basen: Generic[IR], ABC

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)

GitHub

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)

GitHub

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)

GitHub

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)

GitHub

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 execution

    Die ü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_processes in der Benutzerkonfigurationsdatei und die QISKIT_NUM_PROCS Umgebungsvariable. Wenn diese Option aktiviert ist None , wird die Systemstandardkonfiguration oder die lokale Benutzerkonfiguration verwendet.

  • property_set (dict[str, object] | None) – Falls angegeben, der Anfangswert, der als PropertySet fü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 jeweiligen Targetdaher 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

Jeder

to_flow_controller

to_flow_controller()

GitHub

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]

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.