Langkau ke kandungan utama

Dapatkan maklumat Backend dengan Qiskit

Versi pakej

Kod pada halaman ini dibangunkan menggunakan keperluan berikut. Kami mengesyorkan penggunaan versi ini atau lebih baharu.

qiskit-ibm-runtime~=0.43.1

Halaman ini menerangkan cara menggunakan Qiskit untuk mencari maklumat tentang Backend yang tersedia untuk anda.

Senaraikan Backend​

Untuk melihat Backend yang anda mempunyai akses, anda boleh sama ada melihat senarai pada halaman Sumber Pengiraan, atau anda boleh menggunakan kaedah QiskitRuntimeService.backends(). Kaedah ini mengembalikan senarai contoh IBMBackend:

Nota
  • Jika anda log masuk ke instans atau rantau tertentu, atau jika anda memulakan perkhidmatan dengan instans atau rantau tertentu menggunakan QiskitRuntimeService(), hanya Backend yang tersedia untuk anda pada instans atau rantau tersebut dikembalikan. Jika tidak, semua Backend yang tersedia untuk anda pada mana-mana instans dan di mana-mana rantau dikembalikan.
  • Senarai Backend yang dikembalikan mungkin tidak sama dengan yang ditunjukkan pada halaman Sumber Pengiraan IBM Quantum Platform. Senarai pada halaman Sumber Pengiraan sentiasa ditapis mengikut rantau yang dipilih di bahagian atas halaman.

Untuk menjalankan kod berikut, pastikan anda telah mengesahkan jati diri ke perkhidmatan. Lihat Sediakan akaun IBM Cloud anda untuk butiran 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')>]

Kaedah QiskitRuntimeService.backend() (perhatikan ini adalah tunggal: backend) mengambil nama Backend sebagai parameter input dan mengembalikan contoh IBMBackend yang mewakili Backend tertentu itu:

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

Tapis Backend​

Anda juga boleh menapis Backend yang tersedia mengikut sifat-sifatnya. Untuk penapis yang lebih umum, tetapkan argumen filters kepada fungsi yang menerima objek Backend dan mengembalikan True jika ia memenuhi kriteria anda. Rujuk dokumentasi API untuk butiran lanjut.

Kod berikut hanya mengembalikan Backend yang memenuhi kriteria ini dan tersedia untuk anda pada instans yang anda pilih semasa ini:

  • Adalah peranti kuantum sebenar (simulator=False)
  • Sedang beroperasi (operational=True)
  • Mempunyai sekurang-kurangnya 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 menapis mengikut sebarang atribut dalam konfigurasi Backend (skema JSON) atau status (skema JSON). Kaedah yang serupa ialah QiskitRuntimeService.least_busy(), yang mengambil penapis yang sama seperti backends() tetapi mengembalikan Backend yang sepadan dengan penapis dan mempunyai bilangan kerja paling sedikit dalam baris gilir:

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

Maklumat Backend statik​

Sebahagian maklumat tentang Backend tidak kerap berubah, seperti namanya, versi, bilangan Qubit yang dimilikinya, dan jenis ciri yang disokongnya. Maklumat ini tersedia sebagai atribut objek backend.

Sel berikut membina huraian tentang 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 senarai penuh atribut, lihat dokumentasi API IBMBackend.

Gate dan operasi asli​

Setiap keluarga pemproses mempunyai set gate asli. Secara lalai, QPU dalam setiap keluarga hanya menyokong menjalankan gate dan operasi dalam set gate asli. Oleh itu, setiap Gate dalam Circuit mesti diterjemahkan (oleh Transpiler) kepada elemen set ini.

Anda boleh melihat gate dan operasi asli untuk sebuah QPU sama ada dengan Qiskit, atau pada halaman Sumber Pengiraan 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()

Maklumat Backend dinamik​

Backend juga boleh mempunyai sifat yang berubah apabila Backend ditentukur semula, seperti frekuensi Qubit dan kadar ralat operasi. Backend biasanya ditentukur semula setiap 24 jam, dan sifat-sifatnya dikemas kini selepas urutan penentukuran selesai. Sifat-sifat ini boleh digunakan apabila mengoptimumkan Circuit kuantum atau untuk membina model hingar bagi simulator klasik.

Sifat Qubit​

backend.properties().qubit_property() mengembalikan maklumat tentang atribut fizikal Qubit. Ia mengandungi kamus pelbagai sifat Qubit, setiap satu dipasangkan dengan nilainya dan cap masa penentukuran terakhir.

  • T1 (Masa Relaksasi): Masa T1 mewakili tempoh purata Qubit kekal dalam keadaan teruja ∣1⟩|1\rangle sebelum meluruh ke keadaan asas ∣0⟩|0\rangle akibat relaksasi tenaga. Parameter ini digunakan untuk mencirikan tingkah laku relaksasi tenaga Qubit, dan dinyatakan dalam unit saat (s).

  • T2 (Masa Dephasing): Masa T2 menunjukkan skala masa di mana Qubit mengekalkan koheren fasa bagi superposisi antara keadaan ∣0⟩|0\rangle dan ∣1⟩|1\rangle. Ia mengambil kira kedua-dua relaksasi tenaga dan proses dephasing tulen, memberikan pandangan tentang sifat koheren Qubit.

  • frequency: Parameter ini menentukan frekuensi resonan Qubit, menunjukkan perbezaan tenaga antara keadaan ∣0⟩|0\rangle dan ∣1⟩|1\rangle, dinyatakan dalam hertz (Hz).

  • anharmonicity: Anarmonikiti adalah perbezaan tenaga antara keadaan teruja pertama dan kedua Qubit, juga dinyatakan dalam hertz (Hz).

  • readout_error: Ralat pembacaan mengukur kebarangkalian purata mengukur keadaan Qubit secara tidak betul. Ia biasanya dikira sebagai purata prob_meas0_prep1 dan prob_meas1_prep0, memberikan satu metrik untuk ketepatan pengukuran.

  • prob_meas0_prep1: Parameter ini menunjukkan kebarangkalian mengukur Qubit dalam keadaan 0 apabila ia dimaksudkan untuk disediakan dalam keadaan ∣1⟩|1\rangle, ditandakan sebagai P(0∣1)P(0 | 1). Ia mencerminkan ralat dalam penyediaan keadaan dan pengukuran (SPAM), khususnya ralat pengukuran dalam Qubit superkonduktor.

  • prob_meas1_prep0: Begitu juga, parameter ini mewakili kebarangkalian mengukur Qubit dalam keadaan 1 apabila ia dimaksudkan untuk disediakan dalam keadaan ∣0⟩|0\rangle, ditandakan sebagai P(1∣0)P(1 | 0). Seperti prob_meas0_prep1, ia mencerminkan ralat SPAM, dengan ralat pengukuran menjadi penyumbang utama dalam Qubit superkonduktor.

  • readout_length: readout_length menentukan tempoh operasi pembacaan untuk Qubit. Ia mengukur masa dari permulaan nadi pengukuran hingga selesai pendigitan isyarat, selepas itu sistem bersedia untuk operasi seterusnya. Memahami parameter ini adalah penting untuk mengoptimumkan pelaksanaan Circuit, terutamanya apabila menggabungkan pengukuran pertengahan 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

Sifat arahan​

Atribut backend.target adalah objek qiskit.transpiler.Target: objek yang mengandungi semua maklumat yang diperlukan untuk mentranspil Circuit untuk Backend tersebut. Ini termasuk ralat arahan dan tempoh. Sebagai contoh, sel berikut mendapatkan sifat untuk gate cz yang bertindak antara Qubit 1 dan 0.

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

Sel berikut menunjukkan sifat untuk operasi pengukuran (termasuk ralat pembacaan) pada Qubit 0.

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

Langkah seterusnya​

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