Skip to main content
IBM Quantum Platform

PassManager

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

GitHub

Bases: BasePassManager

Gestor de un conjunto de Pases y su programación durante la transpilación.

Inicializa un objeto gestor de pases vacío.

Parámetros

  • passes (Task | list[Task]) – Un conjunto de pases que se añadirá al horario del gestor de pases.
  • max_iteration (int) – El número máximo de iteraciones que se repetirá el programa si no se cumple la condición.

Métodos

append

append(passes)

GitHub

Añade un Conjunto de Pases al calendario de pases.

Parámetros

passes (Task | list[Task]) – Un conjunto de pasadas del transpilador que se deben añadir a la programación.

Eleva

TranspilerError - si un pase en los pases no es un pase adecuado.

Tipo de retorno

Ninguna

draw

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

GitHub

Dibuja el gestor de pases.

Esta función necesita pydot, que a su vez necesita que Graphviz esté instalado.

Aviso

Esta función ejecutará la herramienta Graphviz del sistema sobre un archivo que contenga cadenas de texto controladas por el usuario (como los nombres de los pasos). Se recomienda llamar a esta función únicamente con datos de confianza.

Parámetros

  • filename (str) – ruta de archivo donde guardar la imagen.
  • style (dict) – las claves son las clases de pase y los valores son los colores para hacerlas. Un ejemplo puede verse en DEFAULT_STYLE. Se puede utilizar un dict ordenado para garantizar una coloración prioritaria cuando el pase entra en varias categorías. Los valores no incluidos en el dict proporcionado se rellenarán a partir del dict por defecto.
  • raw (bool) – Si True, guarde la salida Dot sin procesar en lugar de la imagen.

Devuelve

una representación en memoria del gestor de pases, o None si no se ha generado ninguna imagen o Pillow no está instalado.

Tipo de retorno

Opcional[ PassManager ]

Eleva

ImportError - cuando nxpd o pydot no están instalados.

remove

remove(index)

GitHub

Elimina un pase concreto en el planificador.

Parámetros

index (int) – Índice de paso a eliminar, basado en la posición en passes().

Eleva

PassManagerError - Si no se encuentra el índice.

Tipo de retorno

Ninguna

replace

replace(index, passes)

GitHub

Sustituir un pase concreto en el programador.

Parámetros

  • index (int) – Pasa el índice a reemplazar, basado en la posición en passes().
  • passes (Task | list[Task]) – Un conjunto de pases que se añadirá al horario del gestor de pases.

Tipo de retorno

Ninguna

run

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

GitHub

Ejecute todas las pasadas en la dirección circuits especificada.

Parámetros

  • circuits (_CircuitsT) – Circuito(s) a transformar a través de todos los pases registrados.

  • output_name (str | None) – El nombre del circuito de salida. Si None, se ajustará al mismo que el nombre del circuito de entrada.

  • callback (Callable | None) –

    Una función callback que será llamada después de la ejecución de cada pase. La función se llamará con 5 argumentos de palabra clave:

    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

    Tenga en cuenta que los argumentos de palabra clave aquí son diferentes a los utilizados por el genérico BasePassManager. Este gestor de pases traducirá esos argumentos a la forma descrita anteriormente.

    Los argumentos exactos que se pasan exponen las interioridades del gestor de pases y están sujetos a cambios a medida que cambien las interioridades del gestor de pases. Si pretende reutilizar una función de devolución de llamada en varias versiones, asegúrese de comprobar que los argumentos que se pasan son los mismos.

    Para utilizar la función de devolución de llamada a definir una función que tendrá en kwargs dict y acceder a las variables. Por ejemplo:

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

    Cuando se ejecuta la transpilación con multiproceso, la función callback se invoca en el contexto de cada subproceso, independientemente del proceso padre.

  • num_processes (int | None) – El número máximo de procesos paralelos que se iniciarán si se habilita la ejecución paralela. Este argumento tiene prioridad num_processes sobre el archivo de configuración del usuario y la variable QISKIT_NUM_PROCS de entorno. Si se establece en se None utilizará la configuración predeterminada del sistema o la configuración local del usuario.

  • property_set (dict[str, object] | None) – Si se indica, el valor inicial que se utilizará como PropertySet para la canalización del gestor de pases. Puede utilizarse para conservar el análisis de una ejecución a otra, en los casos en los que se sabe que es seguro compartir el análisis. Tenga en cuenta que algunos análisis serán específicos del circuito de entrada y del Targetpor lo que debes tener mucho cuidado al utilizar este argumento.

Devuelve

El circuito o circuitos transformados.

Tipo de retorno

_CircuitsT

to_flow_controller

to_flow_controller()

GitHub

Linealizar este gestor en un único FlowControllerLinearpara que pueda anidarse dentro de otro gestor de pases.

Devuelve

Un gestor de pases linealizado.

Tipo de retorno

FlowControllerLinear

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.