BackendV2
class qiskit.providers.BackendV2(provider=None, name=None, description=None, online_date=None, backend_version=None, **fields)
백엔드용 추상 클래스
이 추상 클래스는 공급자가 생성한 모든 백엔드 객체에 사용됩니다. 이 버전은 구성 속성이 더 이상 존재하지 않는다는 점에서 이전의 추상적인 백엔드 클래스와 다릅니다. 대신 백엔드 디바이스의 필수 불변 속성을 노출하는 속성이 추가됩니다. 예를 들어 backend.configuration().n_qubits 이제 backend.num_qubits 에서 액세스할 수 있습니다.
백엔드의 options 속성은 백엔드의 동적 사용자 구성 가능 옵션을 포함하는 데 사용됩니다. 백엔드 사용 방식을 구성하는 런타임 옵션에 더 많이 사용해야 합니다. 예를 들어, 실험을 실행하는 백엔드의 shots 필드에는 실행할 샷 수에 대한 인수가 포함될 수 있습니다.
get_scheduling_stage_plugin백엔드 객체에는 선택적으로 및 이라는 이름의 get_translation_stage_plugin 메서드가 포함될 수 있습니다. 백엔드 객체에 이러한 메서드가 존재하고, 이 객체가 또는 generate_preset_pass_manager() 에 transpile() 사용되는 경우, 트랜스파일링 프로세스는 기본적으로 해당 메서드에서 반환된 결과를 스케줄링 단계와 번역 컴파일 단계에 사용하게 됩니다. 이를 통해 컴파일 시 특정 요구 사항이 있는 백엔드는 해당 단계에 대한 스테이지 플러그인을 지정하여 회로를 사용자 정의 방식으로 변환함으로써, 회로가 해당 백엔드에서 실행 가능하도록 보장할 수 있습니다. 이 후크들은 기본적으로 활성화되어 있으며, 회로가 백엔드에서 실행 가능하도록 하거나 예상되는 수준의 성능을 보장하기 위해 추가 컴파일 단계가 필요한 경우에만 사용해야 합니다. 이 메서드들은 입력 인수를 받지 않으며, 스테이지 플러그인이어야 하는 메서드 이름을 나타내는 값을 str 반환해야 합니다(플러그인에 대한 자세한 내용은 참조 qiskit.transpiler.preset_passmanagers.plugin ). 일반적인 사용 사례는 백엔드 제공자가 사용자 정의 컴파일 단계를 포함하는 또는 scheduling 용 translation 스테이지 플러그인을 구현하고, 백엔드 객체의 훅 메서드가 해당 플러그인 이름을 반환하도록 하여, transpile() 가 해당 백엔드를 대상으로 할 때 이를 기본값으로 사용하도록 하는 것입니다.
이것의 서브클래스는 공용 메서드인 run() 와 내부 _default_options():
_default_options
abstractmethod classmethod _default_options()
기본 옵션 반환
이 메서드는 기본 옵션에 사용되는 qiskit.providers.Options 서브클래스 객체를 반환합니다. 백엔드 옵션에 사용할 기본 매개변수입니다.
리턴
옵션 객체는
기본값 설정
리턴 유형
BackendV2 기반 백엔드 초기화
매개변수
- 공급자 - 백엔드의 공급자 객체에 대한 선택적 역방향 참조입니다
- name (str | None) – 백엔드의 선택적 이름
- description (str | None) – 백엔드에 대한 선택적 설명
- online_date (datetime | None) – 백엔드가 가동된 날짜 및 시간(선택 사항)
- backend_version (str | None) – 선택 사항인 백엔드 버전 문자열. 이는 속성과는 다릅니다
version.version속성은 객체의 추상Backend인터페이스 버전을 나타내는 반면,backend_version속성은 백엔드 자체의 버전을 나타내기 때문입니다. - 필드 - 기본 옵션을 재정의하는 데 사용할 값에 대한 kwarg입니다.
레이즈
AttributeError - 백엔드의 옵션을 벗어난 필드가 지정된 경우
속성
coupling_map
반환하는 CouplingMap 객체
dt
입력 신호의 시스템 시간 분해능 반환
백엔드에서 펄스 스케줄링을 지원하는 경우 이 기능을 구현해야 합니다.
리턴
입력 신호 시간 간격(초)입니다. 백엔드에서 dt 을 정의하지 않으면 None 이 반환됩니다.
dtm
instruction_durations
반환하는 InstructionDurations 객체를 반환합니다.
instructions
양식 백엔드의 명령 튜플 목록 (instruction, (qubits))
max_circuits
단일 작업에서 실행할 수 있는 최대 회로 수입니다.
제한이 없는 경우 없음이 반환됩니다
meas_map
다중화된 측정값의 그룹을 반환합니다
백엔드에서 펄스 스케줄링을 지원하는 경우 이 기능을 구현해야 합니다.
리턴
다중화된 측정값의 그룹화
레이즈
NotImplementedError - 백엔드에서 측정값 매핑 쿼리를 지원하지 않는 경우
num_qubits
백엔드에 있는 큐비트 수를 반환합니다.
operation_names
백엔드에서 지원하는 명령어 이름 목록입니다.
operations
백엔드에서 지원하는 Instruction 인스턴스 목록입니다.
options
백엔드에 대한 옵션을 반환합니다
백엔드의 옵션은 백엔드 사용 방식을 정의하는 동적 매개변수입니다. 메서드를 제어하는 데 사용됩니다 run() 메서드를 제어하는 데 사용됩니다.
provider
target
version
기본값: 2
name
백엔드 이름입니다.
description
사람이 읽을 수 있는 설명(선택 사항).
online_date
백엔드가 온라인 상태가 된 날짜입니다.
backend_version
제공 중인 백엔드 버전입니다. 이것은 버전인 BackendV2.version의 버전인 Backend 와는 다릅니다.
메소드
qubit_properties
qubit_properties(qubit)
주어진 큐비트에 대해 QubitProperties 를 반환합니다.
정의되어 있지 않거나 백엔드에서 이러한 세부 정보 쿼리를 지원하지 않는 경우 이 메서드를 구현할 필요가 없습니다.
매개변수
qubit (int |list[int]) – 해당 QubitProperties 객체를 가져올 큐비트. 이는 1개의 큐비트를 나타내는 단일 정수일 수도 있고, 큐비트 목록일 수도 있으며, 객체 QubitProperties 목록이 동일한 순서대로 반환됩니다
리턴
지정된 큐비트에 대한 QubitProperties 객체를 반환합니다. 큐비트 목록이 제공되면 목록이 반환됩니다. 큐비트에 대한 프로퍼티가 누락된 경우 None.
레이즈
NotImplementedError - 백엔드에서 큐비트 속성 쿼리를 지원하지 않는 경우
리턴 유형
run
abstractmethod run(run_input, **options)
백엔드에서 실행합니다.
이 메서드는 회로를 실행하는 Job 객체를 반환합니다. 백엔드에 따라 비동기 또는 동기 호출이 될 수 있습니다. 실행이 완료될 때까지 실행을 차단할지 여부는 공급자의 재량에 따라 결정되며, Job 클래스는 두 가지 상황을 모두 처리할 수 있습니다.
매개변수
- run_input (QuantumCircuit orlist) – 백엔드에서 실행할 개별 객체 또는 객체
QuantumCircuit목록. - 옵션 - 구성 실행을 위해 백엔드에 전달할 모든 kwarg 옵션입니다. 키가 옵션 속성/객체에도 있는 경우 옵션 객체에 설정된 값 대신 지정된 값이 사용될 것으로 예상됩니다.
리턴
실행할 작업 개체
리턴 유형
set_options
set_options(**fields)
백엔드에 대한 옵션 필드 설정
이 방법은 백엔드의 옵션을 업데이트하는 데 사용됩니다. 실행하기 전에 옵션을 변경해야 하는 경우 옵션에 대한 새 값과 함께 kwarg를 전달하면 됩니다.
매개변수
필드 - 옵션을 업데이트할 필드
레이즈
AttributeError - 전달된 필드가 옵션의 일부가 아닌 경우