Skip to main content
IBM Quantum Platform

BasePassManager

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

GitHub

Basi: Generic[IR], ABC

Classe di base del gestore di passaggi.

Inizializza un oggetto gestore di passaggi vuoto.

Parametri

  • tasks (Task[IR, IR] | list[Task[IR, IR]]) – 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(tasks)

GitHub

Aggiunge i compiti alla pianificazione dei passaggi.

Parametri

tasks (Task[IR, IR] | list[Task[IR, IR]]) – Una serie di attività del gestore dei pass da aggiungere alla pianificazione.

Aumenti

TypeError - Quando un qualsiasi elemento dei task non è una sottoclasse di Task passmanager.

Tipo di restituzione

Nessuna

remove

remove(index)

GitHub

Rimuove un particolare passaggio nello scheduler.

Parametri

index (int) – Passa 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, tasks)

GitHub

Sostituire un particolare passaggio nello scheduler.

Parametri

  • index (int) – Indice dell'attività da sostituire, in base alla posizione in tasks()
  • tasks (Task[IR, IR] | list[Task[IR, IR]]) – Una serie di attività del gestore dei pass da aggiungere alla pianificazione.

Aumenti

  • TypeError - Quando un qualsiasi elemento dei task non è una sottoclasse di Task passmanager.
  • PassManagerError – Se l'indice non viene trovato.

Tipo di restituzione

Nessuna

run

run(in_programs, callback=None, num_processes=None, *, property_set=None, **kwargs)

GitHub

Eseguire tutti i passaggi sul sito in_programs.

Parametri

  • in_programs (Any |list[Any]) – Inserire i programmi da trasformare tramite tutti i passaggi registrati. Un singolo oggetto di input non può essere un oggetto lista incorporato di tipo " Python ". Un oggetto lista è considerato come più oggetti di input da ottimizzare.

  • callback (Callable[[Task, IR, PropertySet, float, int], None] | None) –

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

    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

    Gli argomenti passati esattamente rivelano il funzionamento interno del gestore dei pass e sono soggetti a modifiche man mano che tale funzionamento interno cambia. Se intendi riutilizzare una funzione di callback in diverse versioni, assicurati 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):
        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) – 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 None la configurazione predefinita del sistema o quella dell'utente locale.

  • 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 di ingresso e il particolare Targetquindi è necessario prestare molta attenzione quando si utilizza questo argomento.

  • kwargs - Argomenti arbitrari passati al frontend e al backend del compilatore.

Risultati

Il/i programma/i trasformato/i.

Tipo di restituzione

Qualsiasi

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 linearizzato.

Tipo di restituzione

Flow[* ControllerLinearIR*, IR]

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