Skip to main content
IBM Quantum Platform

PassManager

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

GitHub

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)

GitHub

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)

GitHub

Desenhe o gerenciador de passes.

Essa função precisa do pydot, que, por sua vez, precisa que o Graphviz esteja instalado.

Aviso

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)

GitHub

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)

GitHub

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)

GitHub

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 execution
    Nota

    Observe 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']
        ...
    Nota

    Ao 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_processes as configurações definidas no arquivo de configuração do usuário e na variável QISKIT_NUM_PROCS de ambiente. Se estiver definido como, será utilizada a None configuraçã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 PropertySet para 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ífico Targetportanto, 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()

GitHub

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

FlowControllerLinear

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.