ดูรายละเอียด Backend
Package versions
โค้ดในหน้านี้ถูกพัฒนาโดยใช้ข้อกำหนดต่อไปนี้ เราแนะนำให้ใช้เวอร์ชันเหล่านี้หรือใหม่กว่า
qiskit-ibm-runtime~=0.49.0
หน้านี้อธิบายวิธีค้นหาข้อมูลเกี่ยวกับ backend ที่คุณสามารถใช้งานได้
แสดงรายการหรือกรอง Backend
แสดงรายการ Backend ที่มีให้ใช้งาน
คุณสามารถใช้ Qiskit หรือ IBM Quantum Platform เพื่อดูรายการ Backend ที่มีให้ใช้งาน หรือค้นหา Backend เฉพาะได้
QPU ที่โฮสต์บน IBM Cloud® มีชื่อที่ขึ้นต้นด้วย ibm_* QPU ทุกตัวได้รับชื่อเมือง เช่น ibm_kingston ชื่อนี้ไม่ได้บ่งบอกว่า QPU จริงๆ อยู่ที่ไหน
- View backends with Qiskit
- View backends on IBM Quantum Platform
ใช้เมธอด QiskitRuntimeService.backends() ตามที่แสดงในบล็อกโค้ดถัดไป เมธอดนี้จะ return รายการ instance ของ IBMBackend
ในการรันโค้ดต่อไปนี้ ตรวจสอบให้แน่ใจว่ายืนยันตัวตนกับ service แล้ว ดู ตั้งค่าบัญชี IBM Cloud ของคุณ สำหรับรายละเอียดเพิ่มเติม
ในการค้นหา Backend เฉพาะ ใช้เมธอด QiskitRuntimeService.backend() (โปรดสังเกตว่าเป็นรูปเอกพจน์: backend) ซึ่งรับชื่อของ Backend เป็น input parameter และ return instance ของ IBMBackend ที่แทน Backend นั้น:
ในการดู Backend ที่คุณมีสิทธิ์เข้าถึง ไปที่รายการ Backend บน หน้า Compute resources (โปรดทราบว่า region ที่เลือกอาจส่งผลต่อ QPU ที่แสดง) คลิกไอคอนตัวกรองและเลือก "All my instances" หรือชื่อ instance เฉพาะเพื่อดู QPU ที่มีให้ใช้งาน
# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util
_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
# Initialize your account
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
service.backends()
[<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_kingston')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_phoenix')>,
<IBMBackend('ibm_pittsburgh')>]
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_fez')>,
<IBMBackend('ibm_kingston')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_phoenix')>,
<IBMBackend('ibm_pittsburgh')>]
หากคุณลงชื่อเข้าใช้ instance หรือ region เฉพาะ หรือหากคุณเริ่มต้น service ด้วย instance หรือ region เฉพาะโดยใช้ QiskitRuntimeService() ระบบจะ return เฉพาะ Backend ที่มีให้ใช้งานใน instance หรือ region นั้น
กรอง Backend
- Filter by properties with Qiskit
- Filter by properties on IBM Quantum Platform
คุณสามารถกรอง Backend ที่มีให้ใช้งานตาม configuration หรือ status สำหรับตัวกรองทั่วไป ตั้งค่า argument filters เป็นฟังก์ชันที่รับ Backend object และ return True หากตรงตามเกณฑ์ของคุณ ดู เอกสาร API สำหรับรายละเอียดเพิ่มเติม
โค้ดต่อไปนี้จะ return เฉพาะ Backend ที่ตรงตามเกณฑ์เหล่านี้และมีให้ใช้งาน ใน instance ที่เลือกอยู่ในปัจจุบัน:
-
เป็นอุปกรณ์ quantum จริง (
simulator=False) -
ใช้งานได้อยู่ (
operational=True) -
มีอย่างน้อยหนึ่งร้อย Qubit (
min_num_qubits=100)
เมธอดที่คล้ายกันคือ QiskitRuntimeService.least_busy() ซึ่งรับตัวกรองเดียวกับ backends() แต่ return Backend ที่ตรงกับตัวกรองและมีจำนวนงานที่รอในคิวน้อยที่สุด:
ในการดู Backend ที่คุณมีสิทธิ์เข้าถึง ดูตารางบน หน้า Compute resources คลิกไอคอนตัวกรองเพื่อดูตัวเลือกตัวกรอง คุณสามารถกรองตาม processor type และ status โปรดทราบด้วยว่าคุณสามารถจัดเรียงตารางตามคอลัมน์ใดก็ได้โดยวางเมาส์เหนือชื่อคอลัมน์ แล้วคลิกลูกศรที่ปรากฏขึ้น
service.least_busy(operational=True, min_num_qubits=100)
<IBMBackend('ibm_fez')>
อุปกรณ์จำลอง
Mock devices คือทรัพยากรบน cloud ที่รัน dry-run jobs mock device จะตรวจสอบ job และรายงานการใช้งานที่ QPU จริงจะคิดค่าใช้จ่าย โดยไม่ใช้เวลา QPU เลย Mock devices ใช้ได้กับแผน Flex, Premium และ On-Prem และถูกซ่อนโดยค่าเริ่มต้นทั้งใน Platform interface และ Python API:
-
ในหน้า Compute resources mock devices จะถูกซ่อนจนกว่าจะเปิด toggle เพื่อแสดง
-
ในหน้า Workloads jobs จาก mock devices จะถูกซ่อนจนกว่าจะเลือกในตัวกรองไอคอนรูปกรวย
-
service.backends()และservice.jobs()ไม่รวม mock devices เว้นแต่จะเรียกด้วยinclude_mocks=True -
IBMBackend.is_mockระบุว่า backend เป็น mock device หรือไม่ -
service.least_busy()จะไม่คืน mock device
หากต้องการเลือก mock device โดยตรง ให้ส่งชื่อของมันให้ service.backend() เช่น service.backend("mock_phoenix")
ข้อมูล Backend แบบ Static
ข้อมูลบางอย่างเกี่ยวกับ Backend ไม่เปลี่ยนแปลงบ่อย เช่น ชื่อ เวอร์ชัน จำนวน Qubit ที่มี processor type (ชื่อตระกูล bird ซึ่งบ่งบอกถึง topology และจำนวน Qubit โดยประมาณ) และประเภทของคุณสมบัติที่รองรับ ข้อมูลนี้มีให้เป็น attributes ของ object backend สำหรับรายการ attributes ทั้งหมด ดู เอกสาร API ของ IBMBackend ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดเวอร์ชันในส่วน การกำหนดเวอร์ชัน QPU ด้านล่าง
region ของ Backend (ตำแหน่งของศูนย์ข้อมูลที่ข้อมูลและการทดลองของคุณจะถูกโฮสต์และประมวลผล) แสดงอยู่ในการ์ดข้อมูลรายละเอียดบน หน้า Compute resources บน IBM Quantum Platform
- View backend information with Qiskit
- View backend information on IBM Quantum Platform
ไปที่ หน้า Compute resources เพื่อดูตาราง QPU ทั้งหมด แล้วคลิกชื่อ QPU ใดก็ได้เพื่อเปิดการ์ดข้อมูลรายละเอียด ดูข้อมูล Backend ในส่วน Details ของการ์ด
backend = service.least_busy(operational=True, simulator=False)
print(
f"Name: {backend.name}\n"
f"Version: {backend.backend_version}\n"
f"No. of programmable qubits: {backend.num_qubits}\n"
f"Processor type: {backend.processor_type}\n"
)
Name: ibm_fez
Version: 1.3.37
No. of programmable qubits: 156
Processor type: {'family': 'Heron', 'revision': '2'}
การกำหนดเวอร์ชัน QPU
QPU แต่ละตัวมีหมายเลขเวอร์ชันในรูปแบบ X.Y.Z (major.minor.revision) Circuit ที่คอมไพล์สำหรับหมายเลขเวอร์ชันที่กำหนดรับประกันว่าจะทำงานบน QPU นั้น หากหมายเลข revision เปลี่ยนแปลง Circuit จะยังคงทำงานได้ต่อ หากหมายเลข major หรือ minor เปลี่ยนแปลง ไม่รับประกันว่า Circuit จะทำงานได้ แม้ว่าอาจเป็นเช่นนั้นก็ตาม
หมายเลขเวอร์ชัน revision จะเพิ่มขึ้นสำหรับการแก้ไขที่ไม่ทำให้ Circuit ที่คอมไพล์ไว้แล้วหยุดทำงาน
ตัวอย่างโค้ดก่อนหน้าใน ส่วนนี้ แสดงวิธีค้นหาเวอร์ชันของ Backend บน IBM Quantum Platform คุณสามารถดูเวอร์ชันในการ์ดข้อมูลรายละเอียดของ QPU (คลิกชื่อ QPU ในตาราง Compute resources เพื่อเปิดการ์ด)
เงื่อนไขที่หมายเลขเวอร์ชันหรือ revision อาจเปลี่ยนแปลงแสดงไว้ในตารางต่อไปนี้
| เวอร์ชัน Major | เวอร์ชัน Minor | เวอร์ชัน Revision |
|---|---|---|
| การเปลี่ยน Sample | รอบ warm-up / cool-down | การอัปเดตซอฟต์แวร์ QPU |
| การเปลี่ยนแปลงครั้งใหญ่ในอุปกรณ์อิเล็กทรอนิกส์ควบคุม | การเปลี่ยนอุปกรณ์อิเล็กทรอนิกส์บางส่วน หากการเปลี่ยนทดแทนส่งผลต่อการทำงานอย่างเห็นได้ชัด | การสอบเทียบด้วยตนเองเพื่อปรับปรุง fidelities |
| การย้าย QPU ไปยังตำแหน่งใหม่ หากส่งผลให้พฤติกรรมเปลี่ยนแปลงอย่างมีนัยสำคัญ | การนำ Gate ออกชั่วคราวเนื่องจากปัญหาการสอบเทียบ และไม่สามารถแก้ไขได้ง่ายในซอฟต์แวร์ | การเปลี่ยนแปลงอุปกรณ์อิเล็กทรอนิกส์เล็กน้อยที่ไม่ส่งผลต่อการทำงาน |
| การเปลี่ยนทิศทางของ Gate CNOT |
คำสั่งที่รองรับ
ตระกูล processor แต่ละตระกูลรองรับชุดคำสั่งจำกัดโดยกำเนิด ชุดนี้รวมถึง single- และ two-qubit gates รวมถึงการดำเนินการที่ไม่ใช่ unitary เช่น measure และ reset Gate ทุกตัวใน Circuit ต้องถูกแปล (โดย Transpiler) ไปเป็นองค์ประกอบของชุดคำสั่งที่รองรับของ QPU ก่อนที่จะรันบน QPU ได้
คุณสามารถดูชุดคำสั่งที่รองรับสำหรับ QPU ด้วย Qiskit หน้า Compute resources ของ IBM Quantum Platform แสดงเฉพาะ unitary gates ที่รองรับ (basis gates) สำหรับ QPU
- Find supported instructions with Qiskit
- Find basis gates on IBM Quantum Platform
ไปที่ หน้า Compute resources เพื่อดูตาราง QPU ทั้งหมด แล้วคลิกชื่อ QPU ใดก็ได้เพื่อเปิดการ์ดข้อมูลรายละเอียด basis gates สำหรับ QPU นั้นแสดงอยู่ในส่วน Details
ตารางคำสั่งที่รองรับ
| หมวดหมู่การดำเนินการ | ชื่อ |
|---|---|
| Single-qubit gates | RZ, SX, X, XSlow, ID, delay |
| Two-qubit gates | CZ, ECR |
| Fractional gates | RX (single-qubit), RZZ (two-qubit) |
| Non-unitary instructions | measure, reset, measure_*, reset_*, measure_reset*, delay |
| Control flow | if_else (classical feedforward) |
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
print(f"Backend: {backend.name}")
print(f" Processor type: {backend.processor_type}")
print(f" Supported instructions: {backend.supported_instructions}")
Backend: ibm_fez
Processor type: {'family': 'Heron', 'revision': '2'}
Supported instructions: ['cz', 'id', 'delay', 'measure', 'measure_reset', 'measure_2', 'measure_reset_2', 'reset', 'reset_2', 'rz', 'sx', 'x', 'if_else', 'store', 'xslow']
ข้อมูล Backend แบบ Dynamic
Backend ยังมีคุณสมบัติที่รายงานเมตริก characterization และ benchmark เช่น อายุ (lifetime) ของ qubit และอัตราข้อผิดพลาดของการดำเนินการ คุณสมบัติของ backend เหล่านี้ถูกอัปเดตจากงาน benchmarking และ characterization ตามรอบ คุณสมบัติเหล่านี้สามารถใช้เมื่อ optimize circuit ควอนตัม หรือเพื่อสร้าง noise model สำหรับ classical simulator ดูคู่มือ Monitor, calibrate, and benchmark สำหรับข้อมูลเพิ่มเติม
บน IBM Quantum Platform คุณสามารถดาวน์โหลดข้อมูลการสอบเทียบเป็นไฟล์ CSV คลิก QPU บน หน้า Compute resources เพื่อดูการ์ดข้อมูลรายละเอียด แล้วคลิกไอคอนดาวน์โหลดที่มุมขวาบนของส่วนข้อมูลการสอบเทียบ
คุณสามารถดึงข้อมูลคุณสมบัติ Backend ในอดีตใน Qiskit ด้วยโค้ดต่อไปนี้:
backend.properties(datetime=<datetime>)
คุณสมบัติของ Qubit
ข้ามไปยังรายการคุณสมบัติของ Qubit
backend.properties().qubit_property() จะ return ข้อมูลเกี่ยวกับ attribute ทางกายภาพของ qubit มี dictionary ของคุณสมบัติต่างๆ ของ qubit แต่ละอย่างคู่กับค่าและวันที่และเวลาที่วัดค่านั้นระหว่าง benchmarking หรือ characterization
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแสดงรายการคุณสมบัติทั้งหมด หรือดึงคุณสมบัติเฉพาะของ Qubit ที่เลือก
ดูคุณสมบัติของ Qubit
T1 (Relaxation time)
เวลา แสดงถึงระยะเวลาเฉลี่ยที่ Qubit อยู่ใน excited state ก่อนสลายตัวไปยัง ground state เนื่องจาก energy relaxation พารามิเตอร์นี้ใช้เพื่อระบุลักษณะพฤติกรรม energy relaxation ของ Qubit และแสดงเป็นหน่วยวินาที (s)
| View with Qiskit | backend.properties().t1(<qubit>) |
|---|---|
| View on IBM Quantum Platform | ส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit; ดูค่า median ในส่วน Details |
T2 (Dephasing time)
เวลา แสดงถึงระยะเวลาที่ Qubit รักษา phase coherence ของ superposition ระหว่างสถานะ และ รวมทั้ง energy relaxation และกระบวนการ pure dephasing ให้ข้อมูลเชิงลึกเกี่ยวกับคุณสมบัติ coherence ของ Qubit รายงานจากลำดับ Hahn echo
| View with Qiskit | backend.properties().t2(<qubit>) |
|---|---|
| View on IBM Quantum Platform | ส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit; ดูค่า median ในส่วน Details |
# fundamental physical properties of qubit 1
backend = service.least_busy(operational=True, simulator=False)
backend.qubit_properties(1)
QubitProperties(t1=0.00020767005851570053, t2=0.00024611061935095297, frequency=None)
# Retrieve qubit properties
qubit_index = backend.num_qubits - 1 # 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 155 Properties:
T1: 0.00010862150948881618 seconds
T2: 2.0093258086464474e-05 seconds
Readout Error: 0.4185791015625
P(0 | 1): 0.76611328125
P(1 | 0): 0.071044921875
Readout Length: 1.66e-06 seconds
คุณสมบัติของคำสั่ง
ข้ามไปยังรายการคุณสมบัติของคำสั่ง
Attribute backend.target เป็น object qiskit.transpiler.Target: object ที่มีข้อมูลทั้งหมดที่จำเป็นสำหรับการ transpile Circuit สำหรับ Backend นั้น ซึ่งรวมถึงข้อผิดพลาดและระยะเวลาของคำสั่ง ตัวอย่างเช่น cell ต่อไปนี้ดึงคุณสมบัติสำหรับ Gate cz ที่ทำงานระหว่างคู่ Qubit ที่เชื่อมต่อกัน
cell ต่อไปนี้แสดงคุณสมบัติสำหรับการดำเนินการ measurement (รวมถึง readout error) บน Qubit 0
ดูคุณสมบัติของคำสั่ง
prob-meas0-prep1
พารามิเตอร์นี้บ่งชี้ความน่าจะเป็นของการวัด Qubit ในสถานะ เมื่อตั้งใจเตรียมในสถานะ แสดงเป็น สะท้อนถึงข้อผิดพลาดในการเตรียมสถานะและการวัด (SPAM) โดยเฉพาะ measurement errors ใน superconducting qubits
| ดูด้วย Qiskit | backend.properties().qubit_property(<qubit>, 'prob_meas0_prep1') |
|---|---|
| ดูบน IBM Quantum Platform | ส่วนข้อมูลการสอบเทียบ: เมนูดรอปดาวน์ Qubit |
prob-meas1-prep0
ในทำนองเดียวกัน พารามิเตอร์นี้แสดงความน่าจะเป็นของการวัด Qubit ในสถานะ เมื่อตั้งใจเตรียมในสถานะ แสดงเป็น เหมือน prob_meas0_prep1 สะท้อนถึงข้อผิดพลาด SPAM โดย measurement errors เป็นตัวแปรหลักใน superconducting qubits
| ดูด้วย Qiskit | backend.properties().qubit_property(<qubit>, 'prob_meas0_prep0') |
|---|---|
| ดูบน IBM Quantum Platform | ส่วนข้อมูลการสอบเทียบ: เมนูดรอปดาวน์ Qubit |
2Q error (Heron และ Nighthawk: CZ, Eagle: ECR)
ข้อผิดพลาด two-qubit ต่อ edge จากชุดการวัดเดียวกันที่ใช้คำนวณ 2Q median 2Q error (best) หมายถึงข้อผิดพลาด two-qubit ต่ำสุดบน edge ใดก็ตามของอุปกรณ์ จากชุดการวัดชุดเดียวกันด้วย
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, <qubit 2>] |
|---|---|
| View on IBM Quantum Platform | ส่วนการสอบเทียบ: วางเมาส์เหนือการเชื่อมต่อ Qubit ใน Map view หรือดูค่าใน Table view ภายใต้คอลัมน์ CZ error (Heron and Nighthawk) หรือ ECR error (Eagle); ดูค่า 2Q error (best) ในส่วน Details |
ข้อผิดพลาด 2Q มัธยฐาน (Heron: CZ, Eagle: ECR)
Average gate fidelity ของ two-qubit operation จาก randomized benchmarking วัดใน "isolation": ชุดที่มีระยะห่างขั้นต่ำสอง Qubit ระหว่าง edges randomized benchmarking นี้ใช้เลเยอร์สลับกันของ single-qubit Cliffords และ two-qubit gates ดังนั้นค่าข้อผิดพลาด 2Q สุดท้ายรวมถึงข้อผิดพลาดของเลเยอร์ single-qubit Cliffords
| Calculate with Qiskit | ทำตามตัวอย่างใน notebook ของ Qiskit Community GitHub |
|---|---|
| View on IBM Quantum Platform | ส่วน Details; ดูข้อมูลต่อ edge ในส่วนข้อมูลการสอบเทียบด้วย |
2Q error (layered)
ค่าเฉลี่ยของข้อผิดพลาดต่อ layered gate (EPLG) ในลูกโซ่ 100 Qubit EPLG เฉลี่ยวัดค่าเฉลี่ยของข้อผิดพลาด Gate ในลูกโซ่แบบเลเยอร์ของ Qubit (=100 ที่นี่) มาจากปริมาณที่คล้ายกันที่เรียกว่า layer fidelity (LF) โดย EPLG = 4/5(1-LF) และ layer fidelity คือ process fidelity ของลูกโซ่แบบเลเยอร์ของ Qubit สำหรับรายละเอียด ดูบทความ Benchmarking quantum processor performance at scale โปรดทราบว่าในบทความ EPLG ถูกกำหนดสำหรับ process error แต่เพื่อความสอดคล้องกับข้อผิดพลาด Gate ที่รายงานแยกกัน จึงอ้างอิงสำหรับ average gate error ดังนั้นจึงมีตัวประกอบ 4/5
บน IBM Quantum Platform การ์ดข้อมูลรายละเอียดของแต่ละ QPU มีส่วนที่เรียกว่า Two-qubit gate error (layered) ซึ่งให้ view ที่ขยายของ two-qubit gate error (layered) ต่ำสุดที่วัดเป็นฟังก์ชันของจำนวน Qubit ในลูกโซ่ ค่าสุดท้ายที่ความยาวลูกโซ่ 100 คือค่าที่นำเสนอในส่วน Details ในทางปฏิบัติ ลูกโซ่ 100 Qubit จำนวนหก (คัดเลือกล่วงหน้าตามประสิทธิภาพที่คาดว่าเหมาะสมที่สุด) จะถูกวัด และค่าที่รายงานสำหรับจำนวน Qubit N คือข้อผิดพลาดต่ำสุดที่พบใน subset ความยาว N ที่ค้นหาจากลูกโซ่ 100 Qubit ทั้งหก
| Calculate with Qiskit | ทำตามตัวอย่างใน notebook ของ Qiskit Community GitHub |
|---|---|
| View on IBM Quantum Platform | ส่วน Details และ view ที่ขยายในส่วน Two-qubit gate error (layered) |
RZZ error (Heron)
ข้อผิดพลาดของ Gate RZZ ที่เฉลี่ยครอบคลุม RZZ angles ต่างๆ โดยใช้ randomized benchmarking รูปแบบหนึ่งที่ดัดแปลงสำหรับ arbitrary unitaries
| ดูด้วย Qiskit | สำคัญ: ตรวจสอบให้แน่ใจว่าตั้งค่า use_fractional_gates=True เมื่อโหลด Backend แล้วจึงใช้ backend.target['rzz'][<qubit 1>, <qubit 2>] |
|---|---|
| ดูบน IBM Quantum Platform | ส่วนการสอบเทียบ: เลือก RZZ ในเมนูดรอปดาวน์ Connection และวางเมาส์เหนือการเชื่อมต่อ Qubit ใน Map view คุณยังสามารถเลือก RZZ error ในเมนูดรอปดาวน์ Graph output ใน Graph view หรือดูค่าใน Table view ภายใต้คอลัมน์ RZZ error |
ข้อผิดพลาด ID / ข้อผิดพลาด √x (sx) / ข้อผิดพลาด Pauli-X / ข้อผิดพลาด RX
ข้อผิดพลาดใน Gate one-qubit แบบ finite-duration discrete วัดจาก randomized benchmarking ลำดับ randomized benchmarking ประกอบด้วย Gate SX, ID และ X และสมมติว่าข้อผิดพลาดของ Gate เหล่านี้เท่ากัน Gate ID คือ delay ที่มีระยะเวลาเท่ากับระยะเวลาของ Gate √X และ X Gate RX ยังมีระยะเวลาเดียวกับ Gate √X และ X ด้วย amplitude แบบแปรผัน ดังนั้นจึงรายงานว่ามีข้อผิดพลาดเหมือน Gate เหล่านี้
| ดูด้วย Qiskit | backend.target['<instruction>'][<qubit 1>, ] |
|---|---|
| ดูบน IBM Quantum Platform | ส่วนการสอบเทียบ: เมนูดรอปดาวน์ Qubit |
SX error (ค่ามัธยฐาน)
Average gate fidelity ของ Gate √X (SX) จาก randomized benchmarking วัดพร้อมกันบน Qubit ทั้งหมด ลำดับ randomized benchmarking ประกอบด้วย Gate SX, ID และ X และสมมติว่าข้อผิดพลาดของ Gate เหล่านี้เท่ากัน
| View on IBM Quantum Platform | ส่วน Details |
|---|
ข้อผิดพลาดการหมุนรอบแกน Z (RZ)
ข้อผิดพลาดใน virtual RZ gate รายงานเป็น 0 ทั้งหมดเนื่องจากดำเนินการในซอฟต์แวร์
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, ] |
|---|---|
| View on IBM Quantum Platform | ส่วนการสอบเทียบ: เมนูดรอปดาวน์ Connection |
Readout error
readout error วัดความน่าจะเป็นเฉลี่ยของการวัดสถานะ Qubit ผิดพลาด โดยทั่วไปคำนวณเป็นค่าเฉลี่ยของ prob_meas0_prep1 และ prob_meas1_prep0 ให้ค่าเดียวสำหรับ measurement fidelity
| View with Qiskit | backend.properties().readout_error(<qubit>) |
|---|---|
| View on IBM Quantum Platform | ส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit |
Readout error (median)
Fidelity ของการดำเนินการ readout readout error วัดโดยเตรียม Qubit ในสถานะ () และวัดความน่าจะเป็นของ output ในสถานะ () ค่าที่รายงานเป็นค่าเฉลี่ยของข้อผิดพลาดสองค่านี้ โดยนำ median จาก Qubits ทั้งหมด
| View on IBM Quantum Platform | ส่วนข้อมูลการสอบเทียบ ส่วน Details |
|---|
Single-qubit gate length
ระยะเวลาของการดำเนินการ single-qubit gate โปรดทราบว่าค่าที่แสดงบน IBM Quantum Platform เป็นหน่วยนาโนวินาที ค่าที่ return ใน Qiskit เป็นหน่วยวินาที
| ดูด้วย Qiskit | backend.target['<instruction>'][<qubit 1>, ].duration |
|---|---|
| ดูบน IBM Quantum Platform | ส่วนการสอบเทียบ: เมนูดรอปดาวน์ Qubit |
ความยาวของ Gate (2Q gates)
ระยะเวลาของการดำเนินการ two-qubit gate โปรดทราบว่าค่าที่แสดงบน IBM Quantum Platform มีหน่วยเป็นนาโนวินาที ค่าที่ return ใน Qiskit มีหน่วยเป็นวินาที
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, <qubit 2> ].duration |
|---|---|
| View on IBM Quantum Platform | ส่วนการสอบเทียบ: เมนูดรอปดาวน์ Qubit |
Readout length
readout_length ระบุระยะเวลาของการดำเนินการ readout สำหรับ Qubit วัดเวลาตั้งแต่เริ่มการส่ง measurement pulse จนเสร็จสิ้นการแปลงสัญญาณเป็นดิจิทัล หลังจากนั้นระบบพร้อมสำหรับการดำเนินการถัดไป การเข้าใจพารามิเตอร์นี้สำคัญมากสำหรับการ optimize การ execute Circuit โดยเฉพาะเมื่อรวม mid-circuit measurements
| View with Qiskit |
|
|---|---|
| View on IBM Quantum Platform | ส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit |
Initialization error
initialization error วัดเปอร์เซ็นต์ของประชากรในสถานะ หลัง rep-delay เริ่มต้นและกระบวนการเตรียม qubit เมื่อการทดลองก่อนหน้าเตรียม qubit ไว้ในสถานะ โปรดทราบว่าสิ่งนี้แตกต่างเล็กน้อยจากปริมาณ prob_meas1_prep0 ซึ่งวัดเปอร์เซ็นต์ของการวัดที่ถูกกำหนดให้เป็นสถานะ อย่างหลังเป็นการวัดทั้ง initialization error และกระบวนการแยกแยะระหว่างสถานะ และ ในขีดจำกัดของการวัดที่สมบูรณ์แบบ ปริมาณทั้งสองจะเท่ากัน
| View with Qiskit | backend.properties().qubit_property(<qubit>, 'init_error') |
|---|---|
| View on IBM Quantum Platform | ส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit |
# Get the cz gate properties for a connected pair of qubits
# (the first edge in this backend's coupling map)
edge = next(iter(backend.target["cz"]))
backend.target["cz"][edge]
InstructionProperties(duration=6.8e-08, error=0.007694157330164875)
backend.target["measure"][(0,)]
InstructionProperties(duration=1.66e-06, error=0.068359375)
คุณสมบัติเพิ่มเติม
จำนวน circuit สูงสุดต่อวินาที (MCPS)
Maximum circuits per second (MCPS) รวมถึงการวัด การรีเซ็ต และการเริ่มต้นใหม่ของ Circuit ที่มี Gate Hadamard และการวัดหนึ่งครั้ง
| View with Qiskit | mcps = backend.configuration().mcps |
|---|---|
| View on IBM Quantum Platform | ส่วน Details |
CLOPS (or CLOPS_h)
Circuit layer operations per second (CLOPS) เป็นการวัดว่า QPU สามารถ execute เลเยอร์ของ Circuit 100x100 (hardware-aware circuit) ได้กี่เลเยอร์ต่อหน่วยเวลา
| Calculate with Qiskit | ดู โค้ด CLOPS ใน Qiskit Community GitHub |
|---|---|
| View on IBM Quantum Platform | ส่วน Details |
Status
ด้วย BackendStatus คุณสามารถดูสถานะ QPU (เช่น Active, Paused, Offline) รวมถึงจำนวนงานที่รออยู่
| ดูด้วย Qiskit | print(backend.status().status_msg), print(backend.status().pending_jobs) |
|---|---|
| ดูบน IBM Quantum Platform | ส่วน Details |
แผนภาพ topology หรือ coupling map
แผนภาพที่แสดง Qubit คู่ที่รองรับการดำเนินการ two-qubit gate ระหว่างกัน เรียกอีกชื่อว่า coupling map หรือ connectivity Qubit แทนด้วยวงกลม และการดำเนินการ two-qubit gate ที่รองรับแสดงเป็นเส้นที่เชื่อม Qubit
| View with Qiskit | from qiskit.visualization import plot_gate_map then plot_gate_map(backend) |
|---|---|
| View on IBM Quantum Platform | ส่วนข้อมูลการสอบเทียบ; คลิก Expand เพื่อดู view ที่ใหญ่ขึ้น |
หาก benchmarking ของ Qubit หรือ edge ไม่สำเร็จในช่วงหลายวัน ไม่ว่าจะเนื่องจากคุณภาพข้อมูลต่ำหรือปัจจัยภายในอื่นๆ ค่าข้อผิดพลาดที่รายงานจะถือว่าล้าสมัยและจะถูกรายงานเป็น 1 ค่านี้ไม่ได้หมายความว่า Qubit หรือ edge นั้นเสียใช้งานไม่ได้เสมอไป หรือข้อผิดพลาดเป็น 1 แต่ถือว่าข้อผิดพลาดไม่ได้กำหนดและควรดำเนินการด้วยความระมัดระวังเมื่อใช้งาน Qubit หรือ Gate นั้น
ขั้นตอนถัดไป
- เรียนรู้วิธี สร้างโมเดลสัญญาณรบกวน เพื่อทำ noisy classical simulation
- ศึกษา ขั้นตอนของ Transpiler เพื่อเรียนรู้เกี่ยวกับวิธีที่ Transpiler ใช้คุณสมบัติ Backend ในการ optimize Circuit
- ดู ข้อมูลอ้างอิง QiskitRuntime backend API