Skip to main content
IBM Quantum Platform

PassManager

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

GitHub

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)

GitHub

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)

GitHub

Zeichnen Sie den Passmanager.

Diese Funktion benötigt pydot, das wiederum die Installation von Graphviz voraussetzt.

Warnung

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)

GitHub

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)

GitHub

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)

GitHub

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 None wird 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 execution
    Anmerkung

    Beachten 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']
        ...
    Anmerkung

    Bei 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_processes Einstellung in der Benutzerkonfigurationsdatei und der 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.

Rückgabe

Die transformierte(n) Schaltung(en).

Rückgabetyp

_CircuitsT

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.