Skip to main content
IBM Quantum Platform

BlockBasePadder

class BlockBasePadder(*args, **kwargs)

GitHub

Basi: TransformationPass

La classe base del passaggio di imbottitura.

Questo passaggio richiede l'esecuzione di uno dei passaggi di pianificazione prima di sé. Poiché esistono diverse strategie di pianificazione, la scelta del passaggio di pianificazione è lasciata nelle mani del progettista del gestore del passaggio. Una volta eseguito un passaggio di analisi di schedulazione, node_start_time viene generato nel sito property_set. Queste informazioni sono rappresentate da un dizionario python dei tempi di esecuzione previsti per le istruzioni, con la chiave delle istanze dei nodi. Il passaggio di imbottitura prevede che tutti i DAGOpNode del circuito siano programmati.

Questa classe base non definisce alcuna sequenza da interlacciare, ma gestisce la posizione in cui viene inserita la sequenza e fornisce una serie di informazioni necessarie per costruire la sequenza corretta. Pertanto, una sottoclasse di questo passaggio deve solo implementare il metodo _pad() , in cui la sottoclasse costruisce un blocco di circuiti da inserire. Questo meccanismo elimina un sacco di logica boilerplate per gestire interi circuiti DAG.

Si noti che le sottoclassi di padding pass devono definire sequenze di interleaving soddisfacenti:

  • La sequenza interlacciata non modifica l'orario di inizio degli altri nodi
  • La sequenza interfogliata deve avere una durata totale pari a quella prevista time_interval.

Qualsiasi manipolazione che violi questi vincoli può impedire a questo passaggio di base di tracciare correttamente l'ora di inizio di ogni istruzione, con conseguente violazione dei vincoli di allineamento hardware.


Attributi

is_analysis_pass

Controlla se il passaggio è un passaggio di analisi.

Se il passo è un AnalysisPass,, significa che il passo può analizzare il DAG e scrivere i risultati di tale analisi nel set di proprietà. Questo tipo di passaggio non consente di modificare il DAG.

is_transformation_pass

Controlla se il passaggio è un passaggio di trasformazione.

Se il passaggio è un TransformationPass,, significa che il passaggio può manipolare il DAG, ma non può modificare il set di proprietà (ma può essere letto).


Metodi

__call__

__call__(circuit, property_set=None)

Esegue il circuito di passaggio.

Parametri

  • circuit (QuantumCircuit) – Il giorno in cui viene effettuato il passaggio.
  • property_set (PropertySet | dict | None) – Set di proprietà di input/output. Un passaggio di analisi potrebbe modificare le proprietà impostate in loco. Se non specificato, verrà utilizzato property_set l'attributo esistente del pass (se impostato).

Risultati

Se la trasformazione ha esito positivo, il risultato è QuantumCircuit. Se l'analisi ha esito positivo, il circuito di ingresso.

Tipo di restituzione

QuantumCircuit

execute

execute(passmanager_ir, state, callback=None)

Eseguire l'attività di ottimizzazione per l'IR Qiskit in ingresso.

Parametri

  • passmanager_ir (DAGCircuit) – Qiskit IR da ottimizzare.
  • state (DAGCircuit) – Stato associato all'esecuzione del flusso di lavoro da parte dello stesso gestore dei passaggi.
  • callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – Una funzione di callback che viene chiamata ad ogni esecuzione di un'attività di ottimizzazione.

Risultati

Qiskit IR ottimizzato e stato del flusso di lavoro.

Tipo di restituzione

tupla[ DAGCircuit, PassManagerState ]

name

name()

Nome del passo.

Tipo di restituzione

STR

run

run(dag)

GitHub

Eseguire il passaggio di imbottitura su dag.

Parametri

dag (DAGCircuit) – DAG da controllare.

Risultati

DAG con tempo di inattività riempito di istruzioni.

Aumenti

TranspilerError - Quando un particolare nodo non è programmato, è probabile che venga inserito un passaggio di trasformazione prima che questo nodo venga chiamato.

Tipo di restituzione

DAGCircuit

update_status

update_status(state, run_state)

Aggiornare lo stato del flusso di lavoro.

Parametri

  • state (PassManagerState) – Passare lo stato del gestore da aggiornare.
  • run_state (RunState) – Stato di completamento dell'attività corrente.

Risultati

Stato aggiornato del gestore dei passaggi.

Tipo di restituzione

PassManagerState

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