Skip to main content
IBM Quantum Platform

PassManager

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

GitHub

베이스: BasePassManager

관리자에서 패스 세트와 트랜스파일링 중 일정을 확인할 수 있습니다.

빈 패스 관리자 개체를 초기화합니다.

매개변수

  • passes (Task |list[Task]) – 패스 매니저 일정에 추가될 예정인 패스입니다.
  • max_iteration (int) – 조건이 충족되지 않을 경우 일정이 반복되는 최대 반복 횟수입니다.

메소드

append

append(passes)

GitHub

패스 일정에 패스 세트를 추가합니다.

매개변수

passes (Task |list[Task]) – 일정에 추가할 트랜스파일러 처리 단계 세트.

레이즈

TranspilerError – ‘패스’ 중 하나가 올바른 패스가 아닌 경우.

리턴 유형

없음

draw

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

GitHub

패스 관리자를 그립니다.

이 기능을 사용하려면 pydot이 필요하며, 그래프비즈가 설치되어 있어야 합니다.

경고

이 함수는 사용자가 제어할 수 있는 문자열(예: 경로 이름)이 포함된 파일에 대해 시스템의 Graphviz 도구를 호출합니다. 이 함수는 신뢰할 수 있는 입력에 대해서만 호출하는 것이 좋습니다.

매개변수

  • filename (str) – 파일 경로에 이미지를 저장합니다.
  • style (dict) – 키는 패스 클래스이고 값은 패스 클래스를 만드는 색상입니다. 예제는 DEFAULT_STYLE에서 확인할 수 있습니다. 패스가 여러 범주에 속할 때 우선 순위 색상을 지정하기 위해 정렬된 딕셔너리를 사용할 수 있습니다. 제공된 딕셔너리에 포함되지 않은 값은 기본 딕셔너리에서 채워집니다.
  • raw (bool) – True, 이미지 대신 원시 도트 출력을 저장합니다.

리턴

패스 관리자의 인메모리 표현, 또는 이미지가 생성되지 않았거나 Pillow가 설치되지 않은 경우 None .

리턴 유형

옵션[ PassManager ]

레이즈

ImportError - NXPD 또는 PYDOT가 설치되지 않은 경우.

remove

remove(index)

GitHub

스케줄러에서 특정 패스를 제거합니다.

매개변수

passes()index (int) –. 내의 위치를 기준으로 제거할 인덱스를 전달합니다.

레이즈

PassManagerError – 인덱스를 찾을 수 없는 경우.

리턴 유형

없음

replace

replace(index, passes)

GitHub

스케줄러에서 특정 패스를 교체합니다.

매개변수

  • index (int) – Pass()의 위치에 따라 대체할 패스 인덱스입니다.
  • passes (Task |list[Task]) – 패스 매니저 일정에 추가될 예정인 패스입니다.

리턴 유형

없음

run

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

GitHub

지정된 circuits 에서 모든 패스를 실행합니다.

매개변수

  • circuits (_CircuitsT) – 등록된 모든 패스를 통해 변환할 수 있는 회로입니다.

  • output_name (str | None) – 출력 회로 이름입니다. None 인 경우 입력 회로 이름과 동일하게 설정됩니다.

  • callback (Callable | None) –

    각 패스 실행 후 호출되는 콜백 함수입니다. 이 함수는 5개의 키워드 인수를 사용하여 호출됩니다:

    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
    참고

    여기서 키워드 인수는 일반 함수에서 사용하는 키워드 인수와 다르다는 점에 주의하십시오 BasePassManager. 이 패스 관리자는 이러한 인수를 위에서 설명한 형식으로 변환합니다.

    정확한 인자 패스는 패스 관리자의 내부를 노출하며 패스 관리자 내부가 변경됨에 따라 변경될 수 있습니다. 여러 릴리스에 걸쳐 콜백 함수를 재사용하려는 경우 전달되는 인수가 동일한지 확인해야 합니다.

    콜백 기능을 사용하려면 kwargs dict를 받아 변수에 액세스하는 함수를 정의합니다. 예를 들어,

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

    다중 프로세싱으로 트랜스파일링을 실행할 때 콜백 함수는 상위 프로세스와 독립적으로 각 하위 프로세스의 컨텍스트 내에서 호출됩니다.

  • num_processes (int | None) – 병렬 실행이 활성화된 경우 시작할 병렬 프로세스의 최대 개수. 이 설정은 사용자 설정 파일과 환경 QISKIT_NUM_PROCS 변수의 설정을 num_processes 우선합니다. 이 None 옵션이 설정된 경우 시스템 기본값이나 로컬 사용자 설정이 적용됩니다.

  • property_set (dict[str, object] | None) – 주어진 경우, 패스 관리자 파이프라인의 초기값으로 사용할 PropertySet 로 사용할 초기 값입니다. 이 기능은 분석을 공유해도 안전하다고 판단되는 경우 한 실행에서 다른 실행으로 분석을 지속하는 데 사용할 수 있습니다. 일부 분석은 입력 회로와 특정 Target에만 해당되므로 이 인수를 사용할 때는 많은 주의를 기울여야 합니다.

리턴

변환된 회로입니다.

리턴 유형

_CircuitsT

to_flow_controller

to_flow_controller()

GitHub

이 관리자를 하나의 FlowControllerLinear로 선형화하여 다른 패스 관리자 안에 중첩할 수 있도록 합니다.

리턴

선형화된 패스 관리자.

리턴 유형

Flow[* ControllerLinearIR*, IR]

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.