IBM 백엔드
class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None, physical_qubits=None)
베이스: BackendV2
IBM Quantum Compute (구 Qiskit Runtime ) 백엔드와 연동되는 백엔드 클래스입니다.
IBMBackend클래스를 직접 인스턴스화해서는 안 됩니다. 대신 인스턴스에서 제공하는 메서드를 사용하여QiskitRuntimeService인스턴스에서 제공하는 메서드를 사용하여 백엔드를 검색하고 처리하세요.
이 클래스는 IBM Quantum Compute 의 백엔드를 나타냅니다. 이 객체의 속성과 메서드는 백엔드에 대한 정보를 제공합니다. 예를 들어, 이 status() 메서드는 BackendStatus 인스턴스를 반환합니다. 이 인스턴스에는 백엔드가 작동 중인지 여부를 나타내는 속성과 operational , 백엔드의 서버 대기열에 있는 작업 수를 나타내는 속성이 pending_jobs 포함되어 있습니다:
status = backend.status()
is_operational = status.operational
jobs_in_queue = status.pending_jobs다음은 IBMBackend 클래스에서 사용할 수 있는 속성 목록입니다:
이름: 백엔드 이름입니다.
백엔드_버전: X.Y.Z 형식의 백엔드 버전입니다.
숫자_큐비트: 큐비트 수입니다.
대상: A
qiskit.transpiler.Target객체입니다.basis_gates: 백엔드의 기준 게이트 이름 목록입니다.
게이트: 백엔드의 기준 게이트 목록입니다.
로컬: 백엔드가 로컬 또는 원격입니다.
시뮬레이터: 백엔드는 시뮬레이터입니다.
조건부: 백엔드에서 조건부 작업을 지원합니다.
오픈_펄스: 백엔드에서 오픈 펄스를 지원합니다.
메모리: 백엔드에서 메모리를 지원합니다.
커플링_맵(목록): 디바이스에 대한 커플링 맵
지원_지시( [Liststr] ): 백엔드에서 지원하는 명령어입니다.
dynamic_reprate_enabled(bool): 프리미티브 간의 지연을 동적으로 설정할 수 있는지 여부(예:
rep_delay)를 통해 설정할 수 있습니다. 기본값은 False입니다.rep_delay_range( [리스트플로트] ): 2d 백엔드에 대해 지원되는 반복 지연 범위를 μs 단위로 정의하는 목록입니다. 첫 번째 항목은 범위의 하단, 두 번째 항목은 범위의 상단입니다. 선택 사항이지만
dynamic_reprate_enabled=True.default_rep_delay (float): 사용자가 지정하지 않은 경우
rep_delay,dynamic_reprate_enabled=True의 값입니다.n_uchannels: U-채널 수입니다.
u_channel_lo: 장치의 U-채널 관계입니다.
측정_레벨: 지원되는 측정 레벨입니다.
큐비트_lo_범위: 각 큐비트에 대한 큐비트 lo 범위(최소, 최대)를 GHz 단위로 표시합니다.
meas_lo_range: 각 큐비트에 대한 측정 lo 범위(최소, 최대)를 GHz 단위로 표시합니다.
dt: 나노초 단위의 큐비트 드라이브 채널 시간 간격입니다.
dtm: 나노초 단위의 측정 드라이브 채널 시간 간격입니다.
rep_times: 백엔드에 대해 지원되는 반복 시간(프로그램 실행 시간)(μs 단위)입니다.
측정_커널: 지원되는 측정 커널입니다.
차별자: 지원되는 차별자: 지원되는 차별자.
해밀턴: 시스템 해밀턴을 특징짓는 필드가 있는 선택적 사전입니다.
채널_대역폭(목록): 모든 채널의 대역폭(큐비트, 측정 및 U)
획득_지연(목록): 차원 n_큐비트 x n_레지스터의 배열입니다. 큐비트 n의 측정 결과를 레지스터 슬롯 m에 기록하는 데 걸리는 지연 시간(dt 단위)입니다.
조건부_지연(목록): 차원 n_채널 [d->u->m] x n_레지스터의 배열입니다. 레지스터 슬롯 m에서 채널 n에 대한 조건부 연산을 수행하는 데 걸리는 지연 시간(dt 단위)
meas_map(목록): 다중화된 측정값 그룹화
샘플_이름(문자열): 백엔드의 샘플 이름
n_registers (int): 피드백에 사용할 수 있는 레지스터 슬롯 수입니다(조건이 True인 경우)
register_map(목록): 큐비트가 특정 레지스터 슬롯에 측정값을 저장할 수 있는지 여부를 지정하는 차원 n_큐비트 X n_레지스터의 배열입니다.
구성 가능(bool): 백엔드가 구성 가능한 경우, 백엔드가 시뮬레이터인 경우 참입니다
크레딧_필요(bool): 백엔드에서 작업을 실행하는 데 크레딧이 필요한 경우 true입니다.
온라인_date(날짜/시간): 장치가 온라인 상태가 된 날짜입니다
표시_이름(문자열): 백엔드의 대체 이름 필드
설명(문자열): 백엔드에 대한 설명
태그(목록): 백엔드를 설명하는 문자열 태그의 목록입니다
버전:
Backend클래스의 버전(예: 1, 2)채널: 각 채널의 목적, 유형, 작동되는 큐비트 등 각 채널에 대한 정보가 포함된 선택적 사전입니다.
파라메트릭_펄스(목록): 백엔드에서 지원되는 펄스 모양 목록입니다. 예를 들면 다음과 같습니다.
['gaussian', 'constant']프로세서_type(딕셔너리): 이 백엔드의 프로세서 유형입니다.
{"family": "Canary", "revision": "1.0", segment: "A"}과 같은{"family": <str>, "revision": <str>, segment: <str>}형식의 사전.
- 패밀리: 이 백엔드의 프로세서 제품군입니다.
- 개정: 이 프로세서의 개정 버전입니다.
- 세그먼트: 이 프로세서가 더 큰 칩 내에서 속하는 세그먼트입니다.
매개변수
- configuration (QasmBackendConfiguration) – 백엔드 구성.
- service (QiskitRuntimeService) – QiskitRuntimeService 의 인스턴스.
- api_client (RuntimeClient) – IBM 클라이언트가 서버와 통신하는 데 사용됩니다.
- instance (str | None) – 사용할 서비스 인스턴스.
- calibration_id (str | None) – 이 백엔드에 사용할 보정 ID(선택 사항)입니다
- physical_qubits (int | None) – 백엔드의 물리적 큐비트 수.
BackendV2 를 기반으로 한 백엔드 초기화
매개변수
- provider – 백엔드가 속한 제공자 객체에 대한 선택적 역참조
- 이름 – 백엔드의 선택적 이름
- 설명 – 백엔드에 대한 선택적 설명
- online_date – 백엔드가 온라인 상태가 된 날짜 및 시간(선택 사항)
- backend_version – 선택 사항인 백엔드 버전 문자열. 이는 속성과는
version다릅니다.version속성은 객체의 추상Backend인터페이스 버전을 나타내는 반면,backend_version속성은 백엔드 자체의 버전을 나타내기 때문입니다. - 필드 – 기본 옵션을 재정의하는 데 사용할 값을 지정하는 kwargs.
- configuration (QasmBackendConfiguration)
- service (QiskitRuntimeService)
- api_client (RuntimeClient)
- instance (str | None)
- calibration_id (str | None)
- physical_qubits (int | None)
레이즈
AttributeError – 백엔드 옵션 범위를 벗어난 필드가 지정된 경우
속성
calibration_id
이 백엔드에 사용되는 캘리브레이션 ID입니다.
coupling_map
반환하는 CouplingMap 객체
dt
입력 신호의 시스템 시간 분해능 반환
백엔드에서 펄스 스케줄링을 지원하는 경우 이 기능을 구현해야 합니다.
리턴
입력 신호 시간 간격(초)입니다. 백엔드에서 dt 을 정의하지 않으면 None 이 반환됩니다.
dtm
출력 신호의 시스템 시간 해상도를 반환합니다.
리턴
출력 신호 시간 간격(초)입니다.
id_warning_issued
기본값: False
instruction_durations
반환하는 InstructionDurations 객체를 반환합니다.
instructions
양식 백엔드의 명령 튜플 목록 (instruction, (qubits))
max_circuits
단일 작업에서 실행할 수 있는 회로 수의 최대값을 반환합니다.
이 속성은 백엔드 구성에서 최대_실험 값을 반환하는 데 사용되었지만 이 값은 더 이상 백엔드 회로 한계를 정확하게 나타내지 않습니다. 새로운 한도를 표시하는 새 필드가 추가됩니다.
meas_map
다중화된 측정값의 그룹을 반환합니다.
백엔드에서 펄스 스케줄링을 지원하는 경우 이 기능을 구현해야 합니다.
리턴
다중화된 측정값의 그룹화
num_qubits
백엔드에 있는 큐비트 수를 반환합니다.
operation_names
백엔드에서 지원하는 명령어 이름 목록입니다.
operations
백엔드에서 지원하는 Instruction 인스턴스 목록입니다.
options
백엔드에 대한 옵션을 반환합니다
백엔드의 옵션은 백엔드 사용 방식을 정의하는 동적 매개변수입니다. 메서드를 제어하는 데 사용됩니다 run() 메서드를 제어하는 데 사용됩니다.
physical_qubits
백엔드가 보유한 물리적 큐비트의 개수를 반환합니다.
백엔드의 물리적 큐비트 수(프로그래밍 가능 큐비트, 리셋 큐비트 및 커플러를 합한 수)를 반환합니다.
provider
백엔드 공급자를 반환합니다.
리턴
백엔드를 담당하는 공급업체입니다.
리턴 유형
제공자
service
객체를 service 반환합니다.
리턴
QiskitRuntimeService 의 인스턴스
target
version
기본값: 2
name
백엔드 이름입니다.
description
사람이 읽을 수 있는 설명(선택 사항).
online_date
백엔드가 온라인 상태가 된 날짜입니다.
backend_version
제공 중인 백엔드 버전입니다. 이는 Backend 추상 인터페이스의 버전인 BackendV2.version 과는 다릅니다.
메소드
__call__
check_faulty
check_faulty(circuit)
입력 회로가 결함이 있는 큐비트 또는 에지를 사용하는지 확인합니다.
매개변수
circuit (QuantumCircuit) – 확인할 회로.
레이즈
ValueError - 결함이 있는 큐비트 또는 에지에서 작동하는 명령어가 발견되는 경우.
리턴 유형
없음
configuration
configuration()
백엔드 구성을 반환합니다.
백엔드 구성에는 백엔드 이름, 큐비트 수, 베이시스 게이트, 커플링 맵, 양자 볼륨 등 백엔드에 대한 고정 정보가 포함되어 있습니다.
백엔드 구성에 대한 정보는 백엔드 구성 REST API 가져오기에서 확인할 수 있습니다.
백엔드 구성 속성에 대한 자세한 내용은 여기에서 확인할 수 있습니다 QasmBackendConfiguration.
IBM 백엔드에는 다음과 같은 속성도 포함될 수 있습니다:
-
supported_features: 지원되는 기능의 문자열 목록(예: “qasm3” )동적 회로 지원.
-
parallel_compilation: 백엔드에서 여러 개의작업을 한 번에 처리할 수 있습니다. 기존 계산의 일부가 병렬화됩니다.
리턴
백엔드에 대한 구성입니다.
리턴 유형
get_translation_stage_plugin
properties
properties(refresh=False, datetime=None)
선택적 필터링에 따라 백엔드 속성을 반환합니다.
이 데이터는 큐비트 속성(예: T1 및 T2 ), 게이트 속성(예: 게이트 길이 및 오류) 및 백엔드의 기타 일반 속성을 설명합니다.
백엔드 속성에 대한 정보는 백엔드 구성 REST API 가져오기에서 확인할 수 있습니다.
매개변수
- refresh (bool) –
True, 서버에 백엔드 속성을 다시 쿼리합니다. 그렇지 않으면 캐시된 버전을 반환합니다. - datetime (python_datetime | None) – datetime를 지정하면, 이 함수는 지정된 datetime보다 오래된 타임스탬프 중 가장 가까운 타임스탬프를 가진 객체를
BackendProperties반환합니다.
리턴
백엔드 속성 또는 현재 백엔드 속성을 사용할 수 없는 경우 None .
레이즈
- TypeError - 입력 인수의 유형이 올바르지 않은 경우.
- NotImplementedError – IBM Quantum Compute 를 사용할 때 datetime이 지정된 경우.
리턴 유형
BackendProperties | 없음
qubit_properties
qubit_properties(qubit)
주어진 큐비트에 대해 QubitProperties 를 반환합니다.
정의되어 있지 않거나 백엔드에서 이러한 세부 정보 쿼리를 지원하지 않는 경우 이 메서드를 구현할 필요가 없습니다.
매개변수
qubit (int | list[int]) – 해당 QubitProperties 객체를 가져올 큐비트. 이는 1개의 큐비트를 나타내는 단일 정수이거나 큐비트 목록일 수 있으며, 객체 목록은 QubitProperties 동일한 순서대로 반환됩니다
리턴
지정된 큐비트에 대한 QubitProperties 객체입니다. 큐비트 목록이 제공되면 목록이 반환됩니다. 큐비트에 대한 프로퍼티가 누락된 경우 None.
레이즈
NotImplementedError - 백엔드에서 큐비트 속성 쿼리를 지원하지 않는 경우
리턴 유형
QubitProperties | list[ QubitProperties ]
refresh
run
set_options
set_options(**fields)
백엔드에 대한 옵션 필드 설정
이 방법은 백엔드의 옵션을 업데이트하는 데 사용됩니다. 실행하기 전에 옵션을 변경해야 하는 경우 옵션에 대한 새 값과 함께 kwarg를 전달하면 됩니다.
매개변수
필드 - 옵션을 업데이트할 필드
레이즈
AttributeError - 전달된 필드가 옵션의 일부가 아닌 경우
status
status()
백엔드 상태를 반환합니다.
반환된 BackendStatus 인스턴스에 operational=True 이 있지만 status_msg="internal" 이 있는 경우 백엔드에서 작업을 수락하지만 처리하지 않는 것입니다.
리턴
백엔드 상태입니다.
레이즈
IBMBackendApiProtocolError - 백엔드 상태를 제대로 포맷할 수 없는 경우.
리턴 유형
target_history
target_history(datetime=None)
A qiskit.transpiler.Target 객체를 백엔드에 전달합니다.
리턴
날짜 시간에 속성이 있는 Target
매개변수
datetime (python_datetime | None)
리턴 유형
대상