Lewati ke konten utama

Dapatkan informasi backend dengan Qiskit

Versi paket

Kode di halaman ini dikembangkan menggunakan persyaratan berikut. Kami merekomendasikan penggunaan versi ini atau yang lebih baru.

qiskit-ibm-runtime~=0.43.1

Halaman ini menjelaskan cara menggunakan Qiskit untuk menemukan informasi tentang backend yang tersedia.

Daftar backend​

Untuk melihat backend yang bisa kamu akses, kamu bisa melihat daftar di halaman Compute resources, atau menggunakan metode QiskitRuntimeService.backends(). Metode ini mengembalikan daftar instance IBMBackend:

Catatan
  • Jika kamu login ke instance atau region tertentu, atau jika kamu menginisialisasi layanan dengan instance atau region tertentu menggunakan QiskitRuntimeService(), hanya backend yang tersedia di instance atau region tersebut yang dikembalikan. Kalau tidak, semua backend yang tersedia di instance dan region mana pun akan dikembalikan.
  • Daftar backend yang dikembalikan mungkin tidak sama dengan yang ditampilkan di halaman Compute resources IBM Quantum Platform. Daftar di halaman Compute resources selalu difilter berdasarkan region yang dipilih di bagian atas halaman.

Untuk menjalankan kode berikut, pastikan kamu sudah melakukan autentikasi ke layanan. Lihat Siapkan akun IBM Cloud kamu untuk detail lebih lanjut.

# 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_pittsburgh')>,
<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_torino')>,
<IBMBackend('ibm_kingston')>]

Metode QiskitRuntimeService.backend() (perhatikan bahwa ini bentuk tunggal: backend) menerima nama backend sebagai parameter input dan mengembalikan instance IBMBackend yang mewakili backend tersebut:

service.backend("ibm_fez")
<IBMBackend('ibm_fez')>

Filter backend​

Kamu juga bisa memfilter backend yang tersedia berdasarkan propertinya. Untuk filter yang lebih umum, atur argumen filters ke fungsi yang menerima objek backend dan mengembalikan True jika memenuhi kriteria. Lihat dokumentasi API untuk detail lebih lanjut.

Kode berikut hanya mengembalikan backend yang memenuhi kriteria ini dan tersedia untukmu di instance yang sedang dipilih:

  • Perangkat kuantum nyata (simulator=False)
  • Sedang beroperasi (operational=True)
  • Memiliki setidaknya 5 qubit (min_num_qubits=5)
# Optionally pass in an instance, region, or both, to
# further filter the backends.
service = QiskitRuntimeService()

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

Gunakan argumen kata kunci ini untuk memfilter berdasarkan atribut apa pun dalam konfigurasi backend (JSON schema) atau status (JSON schema). Metode serupa adalah QiskitRuntimeService.least_busy(), yang menerima filter yang sama seperti backends() namun mengembalikan backend yang cocok dengan filter dan memiliki jumlah job paling sedikit dalam antrean:

service.least_busy(operational=True, min_num_qubits=5)
<IBMBackend('ibm_torino')>

Informasi backend statis​

Beberapa informasi tentang backend tidak berubah secara rutin, seperti nama, versi, jumlah qubit, dan jenis fitur yang didukung. Informasi ini tersedia sebagai atribut dari objek backend.

Sel berikut membangun deskripsi sebuah backend.

backend = service.backend("ibm_fez")

print(
f"Name: {backend.name}\n"
f"Version: {backend.version}\n"
f"No. of qubits: {backend.num_qubits}\n"
)
Name: ibm_fez
Version: 2
No. of qubits: 156

Untuk daftar lengkap atribut, lihat dokumentasi API IBMBackend.

Gate dan operasi native​

Setiap keluarga prosesor memiliki set gate native. Secara default, QPU di setiap keluarga hanya mendukung menjalankan gate dan operasi dalam set gate native. Jadi, setiap gate dalam Circuit harus diterjemahkan (oleh Transpiler) ke elemen-elemen set ini.

Kamu bisa melihat gate dan operasi native untuk QPU baik dengan Qiskit, atau di halaman Compute resources IBM Quantum® Platform.


from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()

for backend in service.backends():
config = backend.configuration()
if "simulator" in config.backend_name:
continue
print(f"Backend: {config.backend_name}")
print(f" Processor type: {config.processor_type}")
print(f" Supported instructions:")
for instruction in config.supported_instructions:
print(f" {instruction}")
print()

Informasi backend dinamis​

Backend juga bisa memiliki properti yang berubah setiap kali backend dikalibrasi, seperti frekuensi qubit dan tingkat kesalahan operasi. Backend biasanya dikalibrasi setiap 24 jam, dan propertinya diperbarui setelah urutan kalibrasi selesai. Properti-properti ini bisa digunakan saat mengoptimalkan Circuit kuantum atau untuk membuat model noise bagi simulator klasik.

Properti Qubit​

backend.properties().qubit_property() mengembalikan informasi tentang atribut fisik qubit. Ini berisi kamus berbagai properti qubit, masing-masing dipasangkan dengan nilainya dan stempel waktu kalibrasi terakhir.

  • T1 (Relaxation Time): Waktu T1 mewakili durasi rata-rata qubit tetap berada di keadaan tereksitasinya ∣1⟩|1\rangle sebelum meluruh ke keadaan dasarnya ∣0⟩|0\rangle akibat relaksasi energi. Parameter ini digunakan untuk mengkarakterisasi perilaku relaksasi energi qubit, dan dinyatakan dalam satuan detik (s).

  • T2 (Dephasing Time): Waktu T2 menunjukkan skala waktu di mana qubit mempertahankan koherensi fase dari superposisi antara keadaan ∣0⟩|0\rangle dan ∣1⟩|1\rangle. Ini memperhitungkan relaksasi energi dan proses dephasing murni, memberikan wawasan tentang properti koherensi qubit.

  • frequency: Parameter ini menentukan frekuensi resonan qubit, yang mengindikasikan perbedaan energi antara keadaan ∣0⟩|0\rangle dan ∣1⟩|1\rangle, dinyatakan dalam hertz (Hz).

  • anharmonicity: Anharmonisitas adalah perbedaan energi antara keadaan tereksitasi pertama dan kedua qubit, juga dinyatakan dalam hertz (Hz).

  • readout_error: Kesalahan readout mengukur probabilitas rata-rata pengukuran keadaan qubit yang salah. Biasanya dihitung sebagai rata-rata dari prob_meas0_prep1 dan prob_meas1_prep0, memberikan satu metrik untuk fidelitas pengukuran.

  • prob_meas0_prep1: Parameter ini menunjukkan probabilitas mengukur qubit dalam keadaan 0 ketika seharusnya dipersiapkan dalam keadaan ∣1⟩|1\rangle, dinotasikan sebagai P(0∣1)P(0 | 1). Ini mencerminkan kesalahan dalam persiapan keadaan dan pengukuran (SPAM), khususnya kesalahan pengukuran pada qubit superkonduktor.

  • prob_meas1_prep0: Demikian pula, parameter ini mewakili probabilitas mengukur qubit dalam keadaan 1 ketika seharusnya dipersiapkan dalam keadaan ∣0⟩|0\rangle, dinotasikan sebagai P(1∣0)P(1 | 0). Seperti prob_meas0_prep1, ini mencerminkan kesalahan SPAM, dengan kesalahan pengukuran sebagai kontributor utama pada qubit superkonduktor.

  • readout_length: readout_length menentukan durasi operasi readout untuk sebuah qubit. Ini mengukur waktu dari inisiasi pulsa pengukuran hingga penyelesaian digitisasi sinyal, setelah itu sistem siap untuk operasi berikutnya. Memahami parameter ini sangat penting untuk mengoptimalkan eksekusi circuit, terutama saat menggabungkan pengukuran mid-circuit.

# fundamental physical properties of qubit 1
backend.qubit_properties(1)
QubitProperties(t1=0.00023160183954439313, t2=0.0002759670226087048, frequency=None)
# calibration data with detailed properties of qubit 0
backend.properties().qubit_property(0)
{'T1': (5.199156952582205e-05,
datetime.datetime(2026, 1, 14, 16, 18, 26, tzinfo=tzlocal())),
'T2': (2.253552085985709e-05,
datetime.datetime(2026, 1, 14, 16, 19, 6, tzinfo=tzlocal())),
'readout_error': (0.013916015625,
datetime.datetime(2026, 1, 14, 21, 38, 31, tzinfo=tzlocal())),
'prob_meas0_prep1': (0.026123046875,
datetime.datetime(2026, 1, 14, 21, 38, 31, tzinfo=tzlocal())),
'prob_meas1_prep0': (0.001708984375,
datetime.datetime(2026, 1, 14, 21, 38, 31, tzinfo=tzlocal())),
'readout_length': (1.56e-06,
datetime.datetime(2026, 1, 14, 21, 38, 31, tzinfo=tzlocal()))}
# 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]
frequency = qubit_props.get("frequency", (None,))[0]
anharmonicity = qubit_props.get("anharmonicity", (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" Frequency: {frequency} Hz")
print(f" Anharmonicity: {anharmonicity} Hz")
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: 9.563335658857979e-05 seconds
T2: 6.570556299807121e-05 seconds
Frequency: None Hz
Anharmonicity: None Hz
Readout Error: 0.006591796875
P(0 | 1): 0.009765625
P(1 | 0): 0.00341796875
Readout Length: 1.56e-06 seconds

Properti instruksi​

Atribut backend.target adalah objek qiskit.transpiler.Target: objek yang berisi semua informasi yang diperlukan untuk melakukan transpile Circuit untuk backend tersebut. Ini mencakup kesalahan dan durasi instruksi. Misalnya, sel berikut mendapatkan properti untuk gate cz yang bekerja antara qubit 1 dan 0.

backend.target["cz"][(1, 0)]
InstructionProperties(duration=6.8e-08, error=0.007831625819164134)

Sel berikut menampilkan properti untuk operasi pengukuran (termasuk kesalahan readout) pada qubit 0.

backend.target["measure"][(0,)]
InstructionProperties(duration=1.56e-06, error=0.013916015625)

Langkah selanjutnya​

Rekomendasi
Source: IBM Quantum docs — updated 5 Mar 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of 11 Mar 2026