PassManager
class qiskit.transpiler.PassManager(passes=(), max_iteration=1000)
Bases: BasePassManager
Gerenciador de um conjunto de Passes e sua programação durante a transpilação.
Inicializa um objeto vazio do gerenciador de passes.
Parâmetros
- passes (Task | list[Task]) – Um conjunto de passes a ser adicionado à programação do gerenciador de passes.
- max_iteration (int) – O número máximo de iterações em que a programação será repetida se a condição não for atendida.
Métodos
append
append(passes)
Acrescentar um Conjunto de Passes à programação de passes.
Parâmetros
passes (Task | list[Task]) – Um conjunto de passagens do transpiler a ser adicionado à programação.
Aumentos
TranspilerError - se um passe em passes não for um passe adequado.
Tipo de retorno
Nenhum
draw
draw(filename=None, style=None, raw=False)
Desenhe o gerenciador de passes.
Essa função precisa do pydot, que, por sua vez, precisa que o Graphviz esteja instalado.
Esta função chamará a ferramenta Graphviz do sistema para processar um arquivo que contenha cadeias de caracteres controláveis pelo usuário (como nomes de passagens). Recomenda-se chamar esta função apenas com entradas confiáveis.
Parâmetros
- filename (str) – caminho do arquivo para salvar a imagem.
- style (dict) – as chaves são as classes de passe e os valores são as cores que as compõem. Um exemplo pode ser visto em DEFAULT_STYLE. Um ditado ordenado pode ser usado para garantir uma coloração prioritária quando a passagem se enquadra em várias categorias. Todos os valores não incluídos no ditado fornecido serão preenchidos com o ditado padrão.
- raw (bool) – Se
True, salve a saída Dot bruta em vez da imagem.
Retorna
uma representação na memória do gerenciador de passes, ou None se nenhuma imagem tiver sido gerada ou se o Pillow não estiver instalado.
Tipo de retorno
Opcional[ PassManager ]
Aumentos
ImportError - quando o nxpd ou o pydot não estão instalados.
remove
remove(index)
Remove uma passagem específica no agendador.
Parâmetros
index (int) – Passe o índice a ser removido, com base na posição em passes().
Aumentos
PassManagerError - Se o índice não for encontrado.
Tipo de retorno
Nenhum
replace
replace(index, passes)
Substituir uma passagem específica no agendador.
Parâmetros
- index (int) – Passa o índice para substituir, com base na posição em passes().
- passes (Task | list[Task]) – Um conjunto de passes a ser adicionado à programação do gerenciador de passes.
Tipo de retorno
Nenhum
run
run(circuits, output_name=None, callback=None, num_processes=None, *, property_set=None)
Execute todos os passes no site especificado circuits.
Parâmetros
-
circuits (_CircuitsT) – Circuito(s) para transformar por meio de todos os passes registrados.
-
output_name (str | None) – O nome do circuito de saída. Se
None, ele será definido como o mesmo nome do circuito de entrada. -
callback (Callable | None) –
Uma função de retorno de chamada que será chamada após a execução de cada passe. A função será chamada com 5 argumentos de palavra-chave:
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 executionNotaObserve que os argumentos da palavra-chave aqui são diferentes daqueles usados pelo comando genérico
BasePassManager. Esse gerenciador de passes traduzirá esses argumentos na forma descrita acima.Os argumentos exatos passados expõem os componentes internos do gerenciador de passes e estão sujeitos a alterações à medida que os componentes internos do gerenciador de passes mudam. Se você pretende reutilizar uma função de retorno de chamada em várias versões, certifique-se de verificar se os argumentos passados são os mesmos.
Para usar o recurso de retorno de chamada, você define uma função que receberá o dict de kwargs e acessará as variáveis. Por exemplo:
def callback_func(**kwargs): pass_ = kwargs['pass_'] dag = kwargs['dag'] time = kwargs['time'] property_set = kwargs['property_set'] count = kwargs['count'] ...NotaAo executar a transpilação com multiprocessamento, a função de retorno de chamada é chamada no contexto de cada subprocesso, independentemente do processo principal.
-
num_processes (int | None) – O número máximo de processos paralelos a serem iniciados caso a execução paralela esteja ativada. Este argumento substitui
num_processesas configurações definidas no arquivo de configuração do usuário e na variávelQISKIT_NUM_PROCSde ambiente. Se estiver definido como, será utilizada aNoneconfiguração padrão do sistema ou a configuração local do usuário. -
property_set (dict[str, object] | None) – Se fornecido, o valor inicial a ser usado como o
PropertySetpara o pipeline do gerenciador de passes. Isso pode ser usado para manter a análise de uma execução para outra, nos casos em que você sabe que é seguro compartilhar a análise. Tenha cuidado com o fato de que algumas análises serão específicas para o circuito de entrada e para o circuito de entrada específicoTargetportanto, você deve tomar muito cuidado ao usar esse argumento.
Retorna
O(s) circuito(s) transformado(s).
Tipo de retorno
_CircuitsT
to_flow_controller
to_flow_controller()
Linearize esse gerenciador em um único FlowControllerLinearpara que ele possa ser aninhado dentro de outro gerenciador de passes.
Retorna
Um gerenciador de passagens linearizado.
Tipo de retorno