Skip to main content
IBM Quantum Platform

IBM 백엔드

class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None, physical_qubits=None)

GitHub

베이스: 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

A qiskit.transpiler.Target 객체를 백엔드에 전달합니다.

리턴

대상

version

기본값: 2

name

백엔드 이름입니다.

description

사람이 읽을 수 있는 설명(선택 사항).

online_date

백엔드가 온라인 상태가 된 날짜입니다.

backend_version

제공 중인 백엔드 버전입니다. 이는 Backend 추상 인터페이스의 버전인 BackendV2.version 과는 다릅니다.


메소드

__call__

__call__()

GitHub

함수로 호출될 때 백엔드 인스턴스를 반환합니다.

리턴 유형

IBMBackend

check_faulty

check_faulty(circuit)

GitHub

입력 회로가 결함이 있는 큐비트 또는 에지를 사용하는지 확인합니다.

매개변수

circuit (QuantumCircuit) – 확인할 회로.

레이즈

ValueError - 결함이 있는 큐비트 또는 에지에서 작동하는 명령어가 발견되는 경우.

리턴 유형

없음

configuration

configuration()

GitHub

백엔드 구성을 반환합니다.

백엔드 구성에는 백엔드 이름, 큐비트 수, 베이시스 게이트, 커플링 맵, 양자 볼륨 등 백엔드에 대한 고정 정보가 포함되어 있습니다.

백엔드 구성에 대한 정보는 백엔드 구성 REST API 가져오기에서 확인할 수 있습니다.

백엔드 구성 속성에 대한 자세한 내용은 여기에서 확인할 수 있습니다 QasmBackendConfiguration.

IBM 백엔드에는 다음과 같은 속성도 포함될 수 있습니다:

  • supported_features: 지원되는 기능의 문자열 목록(예: “qasm3” )

    동적 회로 지원.

  • parallel_compilation: 백엔드에서 여러 개의

    작업을 한 번에 처리할 수 있습니다. 기존 계산의 일부가 병렬화됩니다.

리턴

백엔드에 대한 구성입니다.

리턴 유형

QasmBackendConfiguration

get_translation_stage_plugin

get_translation_stage_plugin()

GitHub

IBM 백엔드에 대한 기본 번역 단계 플러그인 이름을 반환합니다.

리턴 유형

str

properties

properties(refresh=False, datetime=None)

GitHub

선택적 필터링에 따라 백엔드 속성을 반환합니다.

이 데이터는 큐비트 속성(예: 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

refresh()

GitHub

최신 백엔드 구성을 검색하고 현재 백엔드 대상을 새로 고칩니다.

리턴 유형

없음

run

run(*args, **kwargs)

GitHub

백엔드에서 작업을 실행합니다.

레이즈

IBMBackendError - run() 메서드는 더 이상 지원되지 않습니다.

리턴 유형

없음

set_options

set_options(**fields)

백엔드에 대한 옵션 필드 설정

이 방법은 백엔드의 옵션을 업데이트하는 데 사용됩니다. 실행하기 전에 옵션을 변경해야 하는 경우 옵션에 대한 새 값과 함께 kwarg를 전달하면 됩니다.

매개변수

필드 - 옵션을 업데이트할 필드

레이즈

AttributeError - 전달된 필드가 옵션의 일부가 아닌 경우

status

status()

GitHub

백엔드 상태를 반환합니다.

참고

반환된 BackendStatus 인스턴스에 operational=True 이 있지만 status_msg="internal" 이 있는 경우 백엔드에서 작업을 수락하지만 처리하지 않는 것입니다.

리턴

백엔드 상태입니다.

레이즈

IBMBackendApiProtocolError - 백엔드 상태를 제대로 포맷할 수 없는 경우.

리턴 유형

BackendStatus

target_history

target_history(datetime=None)

GitHub

A qiskit.transpiler.Target 객체를 백엔드에 전달합니다.

리턴

날짜 시간에 속성이 있는 Target

매개변수

datetime (python_datetime | None)

리턴 유형

대상

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