PassManager
class qiskit.transpiler.PassManager(passes=(), max_iteration=1000)
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)
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)
Disegnare il gestore del passaggio.
Questa funzione ha bisogno di pydot, che a sua volta necessita dell'installazione di Graphviz.
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)
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)
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)
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 executionNotaSi 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'] ...NotaQuando 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_processessul file di configurazione dell'utente e sulla variabileQISKIT_NUM_PROCSd'ambiente. Se impostato su, verrà utilizzata laNoneconfigurazione predefinita del sistema o quella locale dell'utente. -
property_set (dict[str, object] | None) – Se dato, il valore iniziale da usare come parametro
PropertySetper 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 particolareTargetquindi è necessario prestare molta attenzione quando si utilizza questo argomento.
Risultati
I circuiti trasformati.
Tipo di restituzione
_CircuitsT
to_flow_controller
to_flow_controller()
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]