PassManager
class qiskit.transpiler.PassManager(passes=(), max_iteration=1000)
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 va a añadir al calendario 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)
Añade un Conjunto de Pases al calendario de pases.
Parámetros
passes (Task |list[Task]) – Un conjunto de pasadas del transpilador que se van a añadir a la programación.
Eleva
TranspilerError – si un pase de los pases no es un pase válido.
Tipo de retorno
Ninguna
draw
draw(filename=None, style=None, raw=False)
Dibuja el gestor de pases.
Esta función necesita pydot, que a su vez necesita que Graphviz esté instalado.
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 del archivo en el que se va a guardar la imagen.
- Las claves style (dict) – son las clases de paso y los valores son los colores con los que se crean. Se puede ver un ejemplo en el archivo DEFAULT_STYLE. Se puede utilizar un diccionario ordenado para garantizar un orden de prioridad a la hora de asignar colores cuando un paso se incluye en varias categorías. Los valores que no figuren en el diccionario facilitado se completarán con los del diccionario por defecto.
- raw (bool) – Si es así
True, guarda la salida sin procesar de Dot 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 no están instalados nxpd o pydot.
remove
remove(index)
Elimina un pase concreto en el planificador.
Parámetros
index (int) – Índice del paso que se va a eliminar, según su posición en passes().
Eleva
PassManagerError – Si no se encuentra el índice.
Tipo de retorno
Ninguna
replace
replace(index, passes)
Sustituir un pase concreto en el programador.
Parámetros
- index (int) – Índice de la pasada que se va a sustituir, según la posición en passes().
- passes (Task |list[Task]) – Un conjunto de pases que se va a añadir al calendario del gestor de pases.
Tipo de retorno
Ninguna
run
run(circuits, output_name=None, callback=None, num_processes=None, *, property_set=None)
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 es así
None, se establecerá con el mismo nombre que el 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 executionNotaTenga 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'] ...NotaCuando 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 pueden iniciar si se ha habilitado la ejecución paralela. Este argumento tiene prioridad
num_processessobre el archivo de configuración del usuario y la variable de entornoQISKIT_NUM_PROCS. Si se establece en se utilizaráNonela configuración predeterminada del sistema o la configuración local del usuario. -
property_set (dict[str, object] | None) – Si se especifica, el valor inicial que se utilizará como
PropertySetpara el flujo de trabajo del gestor de pasadas. Esto puede utilizarse para conservar los resultados del análisis de una ejecución a otra, en los casos en los que se sepa que es seguro compartir dichos resultados. Ten en cuenta que algunos análisis serán específicos del circuito de entrada y del caso concretoTarget, por 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()
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
Control[* ador de caudal lineal IR*, IR]