Skip to main content
IBM Quantum Platform

PassManager

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

GitHub

Basi: BasePassManager

Gestore di un insieme di passaggi e della loro programmazione durante la trasposizione.

Inizializza un oggetto gestore di passaggi vuoto.

Parametri

  • passes (Task |list[Task]) – Un pass che verrà aggiunto al calendario del gestore dei pass.
  • max_iteration (int) – Il numero massimo di iterazioni in cui il programma verrà eseguito in loop se la condizione non è soddisfatta.

Metodi

append

append(passes)

GitHub

Aggiungere un set di passaggi alla pianificazione dei passaggi.

Parametri

passes (Task |list[Task]) – Una serie di passaggi del transpiler da aggiungere alla pianificazione.

Aumenti

TranspilerError – se un passaggio tra i passaggi non è un passaggio valido.

Tipo di restituzione

Nessuna

draw

draw(filename=None, style=None, raw=False)

GitHub

Disegnare il gestore del passaggio.

Questa funzione ha bisogno di pydot, che a sua volta necessita dell'installazione di Graphviz.

Avvertenza

Questa funzione richiamerà lo strumento Graphviz di sistema su un file contenente stringhe modificabili dall'utente (come i nomi dei passaggi). Si raccomanda di richiamare questa funzione solo con dati di input attendibili.

Parametri

  • filename (str) – percorso del file in cui salvare l'immagine.
  • style (dict) – le chiavi sono le classi di passaggio e i valori sono i colori che le compongono. Un esempio può essere visto nel DEFAULT_STYLE. Un dict ordinato può essere usato per garantire una colorazione prioritaria quando i passaggi rientrano in più categorie. Tutti i valori non inclusi nel dict fornito saranno inseriti nel dict predefinito.
  • raw (bool) – Se True, salvare l'output Dot grezzo invece dell'immagine.

Risultati

una rappresentazione in memoria del gestore di passaggi, oppure None se non è stata generata alcuna immagine o se Pillow non è installato.

Tipo di restituzione

Opzionale[ PassManager ]

Aumenti

ImportError - quando nxpd o pydot non sono installati.

remove

remove(index)

GitHub

Rimuove un particolare passaggio nello scheduler.

Parametri

index (int) – Passare l'indice da rimuovere, in base alla posizione in passes().

Aumenti

PassManagerError – Se l'indice non viene trovato.

Tipo di restituzione

Nessuna

replace

replace(index, passes)

GitHub

Sostituire un particolare passaggio nello scheduler.

Parametri

  • index (int) – Passa l'indice da sostituire, in base alla posizione in passes().
  • passes (Task |list[Task]) – Un pass che verrà aggiunto al calendario del gestore dei pass.

Tipo di restituzione

Nessuna

run

run(circuits, output_name=None, callback=None, num_processes=None, *, property_set=None)

GitHub

Eseguire tutti i passaggi sul sito circuits.

Parametri

  • circuits (_CircuitsT) – Circuito/i da trasformare attraverso tutti i passaggi registrati.

  • output_name (str | None) – Il nome del circuito di uscita. Se None, sarà impostato sullo stesso nome del circuito di ingresso.

  • callback (Callable | None) –

    Una funzione di callback che verrà richiamata dopo l'esecuzione di ogni passaggio. La funzione verrà chiamata con 5 argomenti di parole chiave:

    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
    Nota

    Si noti che gli argomenti delle parole chiave sono diversi da quelli utilizzati dalla generica funzione BasePassManager. Questo gestore di passaggi tradurrà questi argomenti nella forma descritta sopra.

    Gli argomenti esatti che si passano espongono gli interni del gestore di passaggi e sono soggetti a modifiche quando gli interni del gestore di passaggi cambiano. Se si intende riutilizzare una funzione di callback in più versioni, assicurarsi che gli argomenti passati siano gli stessi.

    Per utilizzare la funzione di callback, si definisce una funzione che accetta i dettati kwargs e accede alle variabili. Ad esempio:

    def callback_func(**kwargs):
        pass_ = kwargs['pass_']
        dag = kwargs['dag']
        time = kwargs['time']
        property_set = kwargs['property_set']
        count = kwargs['count']
        ...
    Nota

    Quando si esegue la transpilazione con multiprocesso, la funzione di callback viene invocata nel contesto di ciascun sottoprocesso, indipendentemente dal processo padre.

  • num_processes (int | None) – Il numero massimo di processi paralleli da avviare se l'esecuzione parallela è abilitata. Questa impostazione ha la precedenza num_processes sul file di configurazione dell'utente e sulla variabile QISKIT_NUM_PROCS d'ambiente. Se impostato su, verrà utilizzata la None configurazione predefinita del sistema o quella locale dell'utente.

  • property_set (dict[str, object] | None) – Se dato, il valore iniziale da usare come parametro PropertySet per la pipeline del gestore dei passaggi. Questo può essere usato per persistere l'analisi da un'esecuzione all'altra, nei casi in cui si sa che l'analisi è sicura da condividere. Attenzione: alcune analisi saranno specifiche per il circuito d'ingresso e il particolare Targetquindi è necessario prestare molta attenzione quando si utilizza questo argomento.

Risultati

I circuiti trasformati.

Tipo di restituzione

_CircuitsT

to_flow_controller

to_flow_controller()

GitHub

Linearizzare questo gestore in un singolo FlowControllerLinearin modo che possa essere annidato all'interno di un altro gestore di passaggi.

Risultati

Un gestore di passaggi linearizzati.

Tipo di restituzione

Flow[* ControllerLinearIR*, IR]

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.