주 콘텐츠로 건너뛰기

백엔드 세부 정보 보기

패키지 버전

이 페이지의 코드는 다음 요구 사항을 사용하여 개발되었습니다. 이 버전 또는 최신 버전을 사용하는 것을 권장합니다.

qiskit-ibm-runtime~=0.46.1

이 페이지에서는 사용 가능한 백엔드에 대한 정보를 찾는 방법을 설명합니다.

백엔드 나열 또는 필터링

사용 가능한 백엔드 나열

Qiskit 또는 IBM Quantum Platform을 사용하여 사용 가능한 백엔드 목록을 보거나 특정 백엔드를 검색할 수 있습니다.

QPU 이름

IBM Cloud®에서 호스팅되는 QPU의 이름은 ibm_*으로 시작합니다. 모든 QPU에는 도시 이름이 부여됩니다. 예를 들어 ibm_kingston과 같습니다. 이 이름은 실제 QPU가 호스팅되는 위치를 나타내지 않습니다.

다음 코드 블록과 같이 QiskitRuntimeService.backends() 메서드를 사용하세요. 이 메서드는 IBMBackend 인스턴스 목록을 반환합니다.

다음 코드를 실행하려면 이미 서비스에 인증되어 있어야 합니다. 자세한 내용은 IBM Cloud 계정 설정을 참조하세요.

특정 백엔드를 검색하려면 QiskitRuntimeService.backend() 메서드(단수형: backend)를 사용하세요. 이 메서드는 백엔드 이름을 입력 파라미터로 받아 해당 특정 백엔드를 나타내는 IBMBackend 인스턴스를 반환합니다.

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
# Initialize your account
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()

service.backends()
[<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_pittsburgh')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_kingston')>,
<IBMBackend('ibm_miami')>]
service.backend("ibm_fez")
<IBMBackend('ibm_fez')>
# Optionally pass in an instance, region, or both, to
# further filter the backends.
service = QiskitRuntimeService()

service.backends(simulator=False, operational=True, min_num_qubits=100)
[<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_pittsburgh')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_kingston')>,
<IBMBackend('ibm_miami')>]
참고

특정 인스턴스 또는 지역에 로그인되어 있거나, QiskitRuntimeService()를 사용하여 특정 인스턴스 또는 지역으로 서비스를 초기화한 경우, 해당 인스턴스 또는 지역에서 사용 가능한 백엔드만 반환됩니다.

백엔드 필터링

사용 가능한 백엔드를 구성 또는 상태별로 필터링할 수 있습니다. 더 일반적인 필터의 경우, 백엔드 객체를 받아 기준에 맞으면 True를 반환하는 함수로 filters 인수를 설정하세요. 자세한 내용은 API 문서를 참조하세요.

다음 코드는 이러한 기준을 충족하고 현재 선택된 인스턴스에서 사용 가능한 백엔드만 반환합니다.

  • 실제 양자 장치임 (simulator=False)
  • 현재 운영 중임 (operational=True)
  • 최소 100개의 Qubit을 가짐 (min_num_qubits=100)

유사한 메서드로 QiskitRuntimeService.least_busy()가 있습니다. 이 메서드는 backends()와 동일한 필터를 받지만 필터에 맞고 대기열에서 대기 중인 작업 수가 가장 적은 백엔드를 반환합니다.

service.least_busy(operational=True, min_num_qubits=100)
<IBMBackend('ibm_fez')>

정적 백엔드 정보

백엔드에 대한 일부 정보는 이름, 버전, qubit 수, 프로세서 유형(토폴로지 및 대략적인 qubit 수를 나타내는 버드 계열 이름), 지원하는 기능 유형 등 정기적으로 변경되지 않습니다. 이 정보는 backend 객체의 속성으로 사용할 수 있습니다. 전체 속성 목록은 IBMBackend API 문서를 참조하세요. 버전에 대한 자세한 내용은 아래의 QPU 버전 관리 섹션을 참조하세요.

백엔드의 지역(데이터와 실험이 호스팅되고 처리될 데이터 센터의 위치)은 IBM Quantum Platform의 컴퓨팅 리소스 페이지의 상세 정보 카드에 나열됩니다.

backend = service.backend("ibm_fez")

print(
f"Name: {backend.name}\n"
f"Version: {backend.backend_version}\n"
f"No. of qubits: {backend.num_qubits}\n"
f"Processor type: {backend.processor_type}\n"
)
Name: ibm_fez
Version: 1.3.37
No. of qubits: 156
Processor type: {'family': 'Heron', 'revision': '2'}

QPU 버전 관리

각 QPU에는 X.Y.Z (주요.부.수정) 형식의 버전 번호가 있습니다. 특정 버전 번호에 맞게 컴파일된 Circuit은 해당 QPU에서 실행이 보장됩니다. 수정 번호가 변경되면 Circuit은 계속 실행됩니다. 주요 또는 부 번호가 변경되면 Circuit이 실행되지 않을 수 있으나, 실행될 수도 있습니다.

수정 버전 번호는 기존의 컴파일된 Circuit을 중단시키지 않는 수정에 따라 증가합니다.

이 섹션의 앞부분에 있는 코드 예시는 백엔드의 버전을 찾는 방법을 보여줍니다. IBM Quantum Platform에서는 QPU의 상세 정보 카드에서 버전을 볼 수 있습니다(컴퓨팅 리소스 표에서 QPU 이름을 클릭하면 카드가 열립니다).

버전 또는 수정 번호가 변경될 수 있는 조건은 다음 표에 나열되어 있습니다.

주요 버전부 버전수정 버전
샘플 변경웜업 / 냉각 주기QPU 소프트웨어 업데이트
제어 전자 장치의 주요 변경일부 전자 장치 교체 시, 교체 부품이 작동에 눈에 띄게 영향을 미치는 경우충실도를 향상시키기 위한 수동 교정
QPU를 새로운 위치로 이동하는 경우, 이로 인해 동작에 상당한 변화가 생기는 경우교정 문제로 인해 일정 기간 동안 Gate를 제거하고, 소프트웨어에서 수정이 쉽게 이루어질 수 없는 경우작동에 영향을 미치지 않는 소규모 전자 장치 변경
CNOT Gate의 방향 변경

지원되는 명령

프로세서 계열은 제한된 명령 세트를 기본적으로 지원합니다. 이 세트에는 단일 및 2Qubit Gate뿐만 아니라 측정 및 재설정과 같은 비-유니터리 연산도 포함됩니다. QPU에서 실행되기 전에 Circuit의 모든 Gate는 Transpiler에 의해 QPU의 지원 명령 세트의 요소로 변환되어야 합니다.

Qiskit을 사용하여 QPU의 지원 명령 세트를 볼 수 있습니다. IBM Quantum Platform 컴퓨팅 리소스 페이지에는 QPU의 지원 유니터리 Gate(기본 Gate)만 나열됩니다.

지원 명령 표

연산 범주이름
단일 qubit GateRZ, SX, X, ID, delay
2Qubit GateCZ, ECR
분수 GateRX (단일 qubit), RZZ (2Qubit)
비-유니터리 명령measure, reset, measure_*, delay
제어 흐름if_else (고전적 피드포워드)
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.backend("ibm_kingston")

print(f"Backend: {backend.name}")
print(f" Processor type: {backend.processor_type}")
print(f" Supported instructions: {backend.supported_instructions}")
Backend: ibm_kingston
Processor type: {'family': 'Heron', 'revision': '2'}
Supported instructions: ['cz', 'id', 'delay', 'measure', 'measure_2', 'reset', 'rz', 'sx', 'x', 'if_else', 'store']

동적 백엔드 정보

백엔드는 교정될 때마다 qubit 수명 및 연산 오류율과 같이 변경되는 속성도 있습니다. 백엔드 속성은 교정 시퀀스가 완료된 후 업데이트됩니다. 이러한 속성은 양자 Circuit을 최적화하거나 고전적 시뮬레이터의 노이즈 모델을 구성하는 데 사용할 수 있습니다. 자세한 내용은 교정 작업 가이드를 참조하세요.

IBM Quantum Platform에서 교정 데이터를 CSV 파일로 다운로드할 수 있습니다. 컴퓨팅 리소스 페이지에서 QPU를 클릭하여 상세 정보 카드를 보고, 교정 데이터 섹션의 오른쪽 상단에 있는 다운로드 아이콘을 클릭하세요.

과거 데이터 조회

다음 코드를 사용하여 Qiskit에서 과거 백엔드 속성 데이터를 조회할 수 있습니다.

backend.properties(datetime=<datetime>)

qubit 속성

qubit 속성 목록으로 이동

backend.properties().qubit_property()는 Qubit의 물리적 속성에 대한 정보를 반환합니다. 이는 Qubit의 다양한 속성 딕셔너리를 포함하며, 각 속성은 값과 마지막 교정 타임스탬프와 함께 제공됩니다.

다음 코드 예시는 특정 Qubit의 모든 속성을 나열하거나 특정 속성을 조회하는 방법을 보여줍니다.

qubit 속성 보기

T1 (이완 시간)

T1T_1 시간은 Qubit이 에너지 이완으로 인해 바닥 상태 0|0\rangle로 붕괴되기 전에 여기 상태 1|1\rangle에 머무는 평균 지속 시간을 나타냅니다. 이 파라미터는 Qubit의 에너지 이완 동작을 특성화하는 데 사용되며, 초(s) 단위로 표현됩니다.

Qiskit으로 보기backend.properties().t1(<qubit>)
IBM Quantum Platform에서 보기교정 데이터 섹션, qubit 드롭다운 메뉴; 세부 정보 섹션에서 T1T_1 중앙값 값 확인
T2 (위상 이탈 시간)

T2T_2 시간은 Qubit이 0|0\rangle1|1\rangle 상태 사이의 중첩에서 위상 일관성을 유지하는 시간 척도를 나타냅니다. 에너지 이완과 순수 위상 이탈 프로세스를 모두 고려하여 Qubit의 일관성 특성에 대한 통찰을 제공합니다. T2T_2는 Hahn 에코 시퀀스에서 보고됩니다.

Qiskit으로 보기backend.properties().t2(<qubit>)
IBM Quantum Platform에서 보기교정 데이터 섹션, qubit 드롭다운 메뉴; 세부 정보 섹션에서 T2T_2 중앙값 값 확인
# fundamental physical properties of qubit 1

backend = service.backend("ibm_fez")

backend.qubit_properties(1)
QubitProperties(t1=0.00018243651954462543, t2=0.00020405172321184844, frequency=None)
# Retrieve qubit properties
qubit_index = 126 # Replace with your qubit index
qubit_props = backend.properties().qubit_property(qubit_index)

# Access specific properties
t1 = qubit_props.get("T1", (None,))[0]
t2 = qubit_props.get("T2", (None,))[0]
readout_error = qubit_props.get("readout_error", (None,))[0]
prob_meas0_prep1 = qubit_props.get("prob_meas0_prep1", (None,))[0]
prob_meas1_prep0 = qubit_props.get("prob_meas1_prep0", (None,))[0]
readout_length = qubit_props.get("readout_length", (None,))[0]

print(f"Qubit {qubit_index} Properties:")
print(f" T1: {t1} seconds")
print(f" T2: {t2} seconds")
print(f" Readout Error: {readout_error}")
print(f" P(0 | 1): {prob_meas0_prep1}")
print(f" P(1 | 0): {prob_meas1_prep0}")
print(f" Readout Length: {readout_length} seconds")
Qubit 126 Properties:
T1: 0.0001248478211384773 seconds
T2: 7.96150033446492e-05 seconds
Readout Error: 0.0244140625
P(0 | 1): 0.029052734375
P(1 | 0): 0.019775390625
Readout Length: 1.56e-06 seconds

명령 속성

명령 속성 목록으로 이동

backend.target 속성은 qiskit.transpiler.Target 객체입니다. 이 객체는 해당 백엔드를 위한 Circuit을 트랜스파일하는 데 필요한 모든 정보를 포함하며, 명령 오류와 지속 시간도 포함됩니다. 예를 들어, 다음 셀은 qubit 1과 0 사이에 작용하는 cz Gate의 속성을 가져옵니다.

다음 셀은 qubit 0의 측정 연산(판독 오류 포함) 속성을 보여줍니다.

명령 속성 보기

prob-meas0-prep1

이 파라미터는 Qubit이 1|1\rangle 상태로 준비될 의도였을 때 0 상태로 측정될 확률을 나타내며, P(01)P(0 | 1)로 표시됩니다. 상태 준비 및 측정(SPAM)의 오류, 특히 초전도 Qubit에서의 측정 오류를 반영합니다.

Qiskit으로 보기backend.properties().qubit_property(<qubit>, 'prob_meas0_prep1')
IBM Quantum Platform에서 보기교정 데이터 섹션, qubit 드롭다운 메뉴
prob-meas1-prep0

마찬가지로, 이 파라미터는 Qubit이 0|0\rangle 상태로 준비될 의도였을 때 1 상태로 측정될 확률을 나타내며, P(10)P(1 | 0)로 표시됩니다. prob_meas0_prep1과 같이 SPAM 오류를 반영하며, 초전도 Qubit에서는 측정 오류가 주요 기여 요인입니다.

Qiskit으로 보기backend.properties().qubit_property(<qubit>, 'prob_meas0_prep0')
IBM Quantum Platform에서 보기교정 데이터 섹션, qubit 드롭다운 메뉴
2Q 오류 (Heron 및 Nighthawk: CZ, Eagle: ECR)

2Q 중앙값 오류를 계산하는 데 사용된 동일한 측정 배치에서 구한 엣지당 2Qubit 오류입니다. **2Q 오류 (최적)**은 이 배치의 측정에서 장치의 어느 엣지에서나 발생하는 가장 낮은 2Qubit 오류를 의미합니다.

Qiskit으로 보기backend.target['<instruction>'][<qubit 1>, <qubit 2>]
IBM Quantum Platform에서 보기교정 섹션: 맵 보기에서 qubit 연결 위에 마우스를 올리거나, 표 보기에서 CZ 오류(Heron 및 Nighthawk) 또는 ECR 오류(Eagle) 열에서 값 확인; 세부 정보 섹션에서 2Q 오류 (최적) 값 확인
중앙값 2Q 오류 (Heron: CZ, Eagle: ECR)

무작위 벤치마킹에서 구한 2Qubit 연산의 평균 Gate 충실도입니다. "독립" 방식으로 측정됩니다: 엣지 사이에 최소 2개 qubit 간격을 가진 배치로 측정합니다. 이 무작위 벤치마킹은 단일 qubit Clifford와 2Qubit Gate의 교대 레이어를 사용하므로, 최종 2Q 오류 값에는 단일 qubit Clifford 레이어의 오류가 포함됩니다.

Qiskit으로 계산Qiskit Community GitHub 노트북의 예시를 따르세요
IBM Quantum Platform에서 보기세부 정보 섹션; 교정 데이터 섹션에서 엣지별 데이터도 확인 가능
2Q 오류 (레이어드)

100개 qubit 체인에서의 레이어드 Gate당 평균 오류(EPLG)입니다. 평균 EPLG는 NN개 qubit (NN=100)의 레이어드 체인에서 평균 Gate 오류를 측정합니다. 이는 레이어 충실도(LF)라는 유사한 양에서 도출되며, EPLG100_{100} = 4/5(1-LF199^{\frac{1}{99}})이고, 레이어 충실도는 NN개 Qubit의 레이어드 체인의 프로세스 충실도입니다. 자세한 내용은 논문 Benchmarking quantum processor performance at scale을 참조하세요. 논문에서 EPLG는 프로세스 오류에 대해 정의되어 있지만, 여기서 개별적으로 보고되는 Gate 오류와의 일관성을 위해 평균 Gate 오류로 인용되므로 4/5 계수가 적용됩니다.

IBM Quantum Platform에서 각 QPU의 상세 정보 카드에는 체인의 qubit 수에 따른 함수로 측정된 가장 낮은 2Qubit Gate 오류 (레이어드)의 확장 보기를 제공하는 2Qubit Gate 오류 (레이어드) 섹션이 있습니다. 체인 길이 100에서의 최종 값이 세부 정보 섹션에 표시된 값입니다. 실제로는 6개의 100Qubit 체인(예상 최적 성능에 기반하여 사전 선택됨)이 측정되며, qubit 수 N에 대해 보고된 값은 6개의 100Qubit 체인에서 하위 집합 길이 N 체인을 탐색하여 발견된 최저 오류입니다.

Qiskit으로 계산Qiskit Community GitHub 노트북의 예시를 따르세요
IBM Quantum Platform에서 보기세부 정보 섹션, 그리고 2Qubit Gate 오류 (레이어드) 섹션의 확장 보기
RZZ 오류 (Heron)

임의의 유니터리에 대한 무작위 벤치마킹의 변형을 사용하여 RZZ 각도에 걸쳐 평균화된 RZZ Gate의 오류입니다.

Qiskit으로 보기중요: 백엔드를 로드할 때 use_fractional_gates=True로 설정했는지 확인한 후, backend.target['rzz'][<qubit 1>, <qubit 2>]를 사용하세요
IBM Quantum Platform에서 보기교정 섹션: 연결 드롭다운 메뉴에서 RZZ를 선택하고 맵 보기에서 qubit 연결 위에 마우스를 올리세요. 그래프 보기의 그래프 출력 드롭다운 메뉴에서 RZZ 오류를 선택하거나, 표 보기에서 RZZ 오류 열에서 값을 확인할 수도 있습니다
ID 오류 / √x (sx) 오류 / Pauli-X 오류 / RX 오류

무작위 벤치마킹으로 측정된 유한 지속 시간 이산 단일 qubit Gate의 오류입니다. 무작위 벤치마킹 시퀀스에는 SX, ID, X Gate가 포함되며, 이들의 오류는 동일하다고 가정합니다. ID Gate는 √X 및 X Gate의 지속 시간과 동일한 지연입니다. RX Gate도 √X 및 X Gate와 동일한 지속 시간을 가지며 진폭이 가변적이므로, 이들 Gate와 동일한 오류를 가지는 것으로 보고됩니다.

Qiskit으로 보기backend.target['<instruction>'][<qubit 1>, ]
IBM Quantum Platform에서 보기교정 섹션: Qubit 드롭다운 메뉴
SX 오류 (중앙값)

모든 Qubit에 동시에 측정된 무작위 벤치마킹에서 구한 √X (SX) Gate의 평균 Gate 충실도입니다. 무작위 벤치마킹 시퀀스에는 SX, ID, X Gate가 포함되며, 이들의 오류는 동일하다고 가정합니다.

IBM Quantum Platform에서 보기세부 정보 섹션
Z축 회전 (RZ) 오류

가상 RZ Gate의 오류입니다. 소프트웨어에서 수행되므로 모두 0으로 보고됩니다.

Qiskit으로 보기 backend.target['<instruction>'][<qubit 1>, ]
IBM Quantum Platform에서 보기교정 섹션: 연결 드롭다운 메뉴
판독 오류

판독 오류는 qubit 상태를 잘못 측정할 평균 확률을 정량화합니다. 일반적으로 prob_meas0_prep1prob_meas1_prep0의 평균으로 계산되며, 측정 충실도에 대한 단일 지표를 제공합니다.

Qiskit으로 보기backend.properties().readout_error(<qubit>)
IBM Quantum Platform에서 보기교정 데이터 섹션, qubit 드롭다운 메뉴
판독 오류 (중앙값)

판독 연산의 충실도입니다. 판독 오류는 Qubit을 0(1) 상태로 준비하고 1(0) 상태의 출력 확률을 측정하여 계산됩니다. 보고된 값은 이 두 오류의 평균입니다. 중앙값은 모든 Qubit에 걸쳐 계산됩니다.

IBM Quantum Platform에서 보기교정 데이터 섹션, 세부 정보 섹션
단일 Qubit Gate 길이

단일 qubit Gate 연산의 지속 시간입니다. IBM Quantum Platform에 표시되는 값은 나노초 단위입니다. Qiskit에서 반환되는 값은 초 단위입니다.

Qiskit으로 보기backend.target['<instruction>'][<qubit 1>, ].duration
IBM Quantum Platform에서 보기교정 섹션: Qubit 드롭다운 메뉴
Gate 길이 (2Q Gate)

2Qubit Gate 연산의 지속 시간입니다. IBM Quantum Platform에 표시되는 값은 나노초 단위입니다. Qiskit에서 반환되는 값은 초 단위입니다.

Qiskit으로 보기backend.target['<instruction>'][<qubit 1>, <qubit 2> ].duration
IBM Quantum Platform에서 보기교정 섹션: Qubit 드롭다운 메뉴
판독 길이

판독 길이는 Qubit의 판독 연산 지속 시간을 지정합니다. 측정 펄스 시작부터 신호 디지털화 완료까지의 시간을 측정하며, 그 이후 시스템은 다음 연산을 위해 준비됩니다. 이 파라미터를 이해하는 것은 특히 미드-Circuit 측정을 포함할 때 Circuit 실행을 최적화하는 데 매우 중요합니다.

Qiskit으로 보기
  • measure의 경우: backend.properties().readout_length(<qubit>)
  • measure_2의 경우: backend.target['measure_2'][<qubit 1>, ].duration
IBM Quantum Platform에서 보기교정 데이터 섹션, qubit 드롭다운 메뉴
backend.target["cz"][(1, 0)]
InstructionProperties(duration=6.8e-08, error=0.010202155482934266)
backend.target["measure"][(0,)]
InstructionProperties(duration=1.56e-06, error=0.025634765625)

추가 속성

CLOPS (또는 CLOPS_h)

초당 Circuit 레이어 작업 수(CLOPS)는 QPU가 단위 시간당 100x100 Circuit(하드웨어 인식 Circuit)의 레이어를 몇 개나 실행할 수 있는지를 나타내는 측정 지표입니다.

Qiskit으로 계산Qiskit Community GitHub에서 CLOPS 코드를 찾아보세요
IBM Quantum Platform에서 보기세부 정보 섹션
상태

BackendStatus를 사용하면 QPU 상태(예: Active, Paused, Offline)와 대기 중인 작업 수를 확인할 수 있습니다.

Qiskit으로 보기print(backend.status().status_msg), print(backend.status().pending_jobs)
IBM Quantum Platform에서 보기세부 정보 섹션
토폴로지 다이어그램 또는 커플링 맵

2Qubit Gate 연산을 지원하는 qubit 쌍을 나타내는 다이어그램입니다. 커플링 맵 또는 연결성이라고도 합니다. Qubit은 원으로 표시되고, 지원되는 2Qubit Gate 연산은 Qubit을 연결하는 선으로 표시됩니다.

Qiskit으로 보기from qiskit.visualization import plot_gate_map 이후 plot_gate_map(backend)
IBM Quantum Platform에서 보기교정 데이터 섹션; 더 큰 보기를 위해 확장을 클릭하세요
`error = 1`은 무엇을 의미하나요?

데이터 품질 저하 또는 기타 내부 요인으로 인해 며칠 동안 qubit 또는 엣지의 벤치마킹이 성공하지 못하는 경우, 보고된 오류 값은 오래된 것으로 간주되어 1로 보고됩니다. 이는 qubit 또는 엣지가 반드시 작동하지 않거나 오류가 1이라는 것을 나타내는 것이 아닙니다. 오히려 오류가 정의되지 않은 것으로 간주되므로, 해당 qubit 또는 Gate를 작동할 때는 주의를 기울여야 합니다.

다음 단계

권장 사항