Langkau ke kandungan utama

Lihat butiran backend

Versi pakej

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

qiskit-ibm-runtime~=0.46.1

Halaman ini menerangkan cara mencari maklumat tentang backend yang tersedia untuk anda.

Senaraikan atau tapis backend

Senaraikan backend yang tersedia untuk anda

Anda boleh menggunakan sama ada Qiskit atau IBM Quantum Platform untuk melihat senarai backend yang tersedia untuk anda, atau untuk mencari backend tertentu.

Nama QPU

QPU yang dihoskan di IBM Cloud® mempunyai nama yang bermula dengan ibm_*. Semua QPU diberi nama bandar - contohnya, ibm_kingston. Nama ini tidak menunjukkan di mana QPU sebenarnya dihoskan.

Gunakan kaedah QiskitRuntimeService.backends(), seperti yang ditunjukkan dalam blok kod seterusnya. Kaedah ini mengembalikan senarai instans IBMBackend.

Untuk menjalankan kod berikut, pastikan anda telah pun mengesahkan ke perkhidmatan. Lihat Sediakan akaun IBM Cloud anda untuk butiran lanjut.

Untuk mencari backend tertentu, gunakan kaedah QiskitRuntimeService.backend() (perhatikan bahawa ini adalah tunggal: backend), yang mengambil nama backend sebagai parameter input dan mengembalikan instans IBMBackend yang mewakili backend tertentu itu:

# 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')>]
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 itu yang dikembalikan.

Tapis backend

Anda boleh menapis backend yang tersedia mengikut konfigurasi atau status mereka. Untuk tapisan 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 sekarang:

  • Adalah peranti kuantum sebenar (simulator=False)
  • Sedang beroperasi (operational=True)
  • Mempunyai sekurang-kurangnya seratus qubit (min_num_qubits=100)

Kaedah serupa ialah QiskitRuntimeService.least_busy(), yang mengambil tapisan yang sama dengan backends() tetapi mengembalikan backend yang sepadan dengan tapisan dan mempunyai bilangan kerja paling sedikit yang menunggu dalam baris gilir:

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

Maklumat backend statik

Sesetengah maklumat tentang backend tidak berubah secara berkala, seperti namanya, versi, bilangan qubit yang dimilikinya, jenis pemprosesnya (nama keluarga burung, yang menunjukkan topologi dan anggaran bilangan qubit), dan jenis ciri yang disokongnya. Maklumat ini tersedia sebagai atribut objek backend. Untuk senarai penuh atribut, lihat dokumentasi API IBMBackend. Cari maklumat lanjut tentang penomboran versi dalam bahagian Penomboran versi QPU di bawah.

Rantau backend (lokasi pusat data di mana data dan eksperimen anda akan dihoskan dan diproses) disenaraikan dalam kad maklumat terperincinya di halaman Compute resources di 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'}

Penomboran versi QPU

Setiap QPU mempunyai nombor versi dalam format X.Y.Z (utama.kecil.semakan). Litar yang dikompil untuk nombor versi tertentu dijamin akan berjalan pada QPU tersebut. Jika nombor semakan berubah, litar akan terus berjalan. Jika nombor utama atau kecil berubah, litar tidak dijamin akan berjalan, walaupun mungkin boleh.

Nombor versi semakan akan ditambah untuk pembetulan yang tidak memecahkan litar yang dikompil sedia ada.

Contoh kod sebelum ini dalam bahagian ini menunjukkan cara mencari versi backend. Di IBM Quantum Platform, anda boleh melihat versi pada kad maklumat terperinci QPU (klik nama QPU pada jadual Compute resources untuk membuka kad tersebut).

Syarat-syarat di mana nombor versi atau semakan boleh berubah disenaraikan dalam jadual berikut.

Versi utamaVersi kecilVersi semakan
Perubahan sampelKitaran pemanasan / penyejukanKemas kini perisian QPU
Perubahan besar pada elektronik kawalanMenggantikan sebahagian elektronik, jika penggantian mempengaruhi operasi dengan ketaraPenentukuran manual untuk meningkatkan kesetiaan
Memindahkan QPU ke lokasi baharu, jika perubahan tingkah laku yang ketara berlakuMenangguhkan get untuk tempoh masa tertentu disebabkan isu penentukuran, dan pembetulan tidak dapat dilakukan dengan mudah dalam perisianPerubahan kecil pada elektronik yang tidak menjejaskan operasi
Menukar arah get CNOT

Arahan yang disokong

Setiap keluarga pemproses secara natif menyokong set arahan yang terhad. Set ini termasuk get satu- dan dua-qubit, serta operasi bukan unitari seperti measure dan reset. Setiap get dalam litar mesti diterjemahkan (oleh transpiler) kepada elemen set arahan yang disokong QPU sebelum ia boleh berjalan pada QPU.

Anda boleh melihat set arahan yang disokong untuk QPU dengan Qiskit. Halaman Compute resources IBM Quantum Platform hanya menyenaraikan get unitari yang disokong (get asas) untuk QPU.

Jadual arahan yang disokong

Kategori operasiNama
Get satu-qubitRZ, SX, X, ID, delay
Get dua-qubitCZ, ECR
Get pecahanRX (satu-qubit), RZZ (dua-qubit)
Arahan bukan unitarimeasure, reset, measure_*, delay
Aliran kawalanif_else (suap balik klasik)
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']

Maklumat backend dinamik

Backend juga mempunyai sifat yang berubah setiap kali backend ditentukur, seperti hayat qubit dan kadar ralat operasi. Sifat backend dikemas kini selepas jujukan penentukuran selesai. Sifat-sifat ini boleh digunakan semasa mengoptimumkan litar kuantum atau untuk membina model hingar bagi simulator klasik. Lihat panduan Kerja penentukuran untuk maklumat lanjut.

Di IBM Quantum Platform, anda boleh memuat turun data penentukuran sebagai fail CSV. Klik QPU pada halaman Compute resources untuk melihat kad maklumat terperincinya, kemudian klik ikon muat turun di penjuru kanan atas bahagian Calibration data.

Dapatkan semula data sejarah

Anda boleh mendapatkan semula data sifat backend sejarah dalam Qiskit dengan kod berikut:

backend.properties(datetime=<datetime>)

Sifat qubit

Lompat ke senarai 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.

Contoh kod berikut menunjukkan cara menyenaraikan semua sifat, atau mendapatkan sifat tertentu, bagi qubit tertentu.

Lihat sifat qubit

T1 (Masa relaksasi)

Masa T1T_1 mewakili tempoh purata qubit kekal dalam keadaan terujanya 1|1\rangle sebelum mereput ke keadaan dasarnya 0|0\rangle akibat relaksasi tenaga. Parameter ini digunakan untuk mencirikan tingkah laku relaksasi tenaga qubit, dan dinyatakan dalam unit saat (s).

Lihat dengan Qiskitbackend.properties().t1(<qubit>)
Lihat di IBM Quantum PlatformBahagian Calibration data, menu lungsur qubit; cari nilai median T1T_1 dalam bahagian Details
T2 (Masa defasaan)

Masa T2T_2 menandakan skala masa di mana qubit mengekalkan koheren fasa superposisi antara keadaan 0|0\rangle dan 1|1\rangle. Ia mengambil kira relaksasi tenaga dan proses defasaan tulen, memberikan gambaran tentang sifat koheren qubit. T2T_2 dilaporkan daripada jujukan Hahn echo.

Lihat dengan Qiskitbackend.properties().t2(<qubit>)
Lihat di IBM Quantum PlatformBahagian Calibration data, menu lungsur qubit; cari nilai median T2T_2 dalam bahagian Details
# 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

Sifat arahan

Lompat ke senarai sifat arahan

Atribut backend.target ialah objek qiskit.transpiler.Target: objek yang mengandungi semua maklumat yang diperlukan untuk mentranspil litar bagi backend tersebut. Ini termasuk ralat arahan dan tempoh. Contohnya, sel berikut mendapatkan sifat untuk cz gate yang bertindak antara qubit 1 dan 0.

Sel berikut menunjukkan sifat untuk operasi pengukuran (termasuk ralat bacaan) pada qubit 0.

Lihat sifat arahan

prob-meas0-prep1

Parameter ini menunjukkan kebarangkalian mengukur qubit dalam keadaan 0 apabila ia dimaksudkan untuk disediakan dalam keadaan 1|1\rangle, dinyatakan sebagai P(01)P(0 | 1). Ia mencerminkan ralat dalam persediaan keadaan dan pengukuran (SPAM), terutamanya ralat pengukuran dalam qubit superkonduktor.

Lihat dengan Qiskitbackend.properties().qubit_property(<qubit>, 'prob_meas0_prep1')
Lihat di IBM Quantum PlatformBahagian Calibration data, menu lungsur qubit
prob-meas1-prep0

Begitu juga, parameter ini mewakili kebarangkalian mengukur qubit dalam keadaan 1 apabila ia dimaksudkan untuk disediakan dalam keadaan 0|0\rangle, dinyatakan sebagai P(10)P(1 | 0). Seperti prob_meas0_prep1, ia mencerminkan ralat SPAM, dengan ralat pengukuran menjadi penyumbang utama dalam qubit superkonduktor.

Lihat dengan Qiskitbackend.properties().qubit_property(<qubit>, 'prob_meas0_prep0')
Lihat di IBM Quantum PlatformBahagian Calibration data, menu lungsur qubit
Ralat 2Q (Heron dan Nighthawk: CZ, Eagle: ECR)

Ralat dua-qubit setiap tepi daripada kelompok pengukuran yang sama yang digunakan untuk mengira ralat median 2Q. Ralat 2Q (terbaik) merujuk kepada ralat dua-qubit terendah pada mana-mana tepi peranti, juga daripada kelompok pengukuran ini.

Lihat dengan Qiskitbackend.target['<instruction>'][<qubit 1>, <qubit 2>]
Lihat di IBM Quantum PlatformBahagian Calibration: tuding di atas sambungan qubit dalam paparan Map, atau cari nilai dalam paparan Table di bawah lajur CZ error (Heron dan Nighthawk) atau ECR error (Eagle); cari nilai untuk 2Q error (best) dalam bahagian Details
Median ralat 2Q (Heron: CZ, Eagle: ECR)

Kesetiaan get purata operasi dua-qubit daripada penanda aras rawak. Diukur dalam "pengasingan": kelompok dengan pemisahan minimum dua qubit antara tepi. Penanda aras rawak ini menggunakan lapisan berselang-seli Clifford satu-qubit dan get dua-qubit, oleh itu nilai ralat 2Q akhir termasuk ralat lapisan Clifford satu-qubit.

Kira dengan QiskitIkuti contoh dalam notebook GitHub Qiskit Community ini
Lihat di IBM Quantum PlatformBahagian Details; juga cari data setiap tepi dalam bahagian Calibration data
Ralat 2Q (berlapis)

Ralat purata setiap get berlapis (EPLG) dalam rantai 100 qubit. EPLG purata mengukur ralat get purata dalam rantai berlapis NN qubit (NN=100 di sini). Ia diterbitkan daripada kuantiti serupa yang dikenali sebagai kesetiaan lapisan (LF) di mana EPLG100_{100} = 4/5(1-LF199^{\frac{1}{99}}) dan kesetiaan lapisan ialah kesetiaan proses rantai berlapis NN qubit. Untuk butiran, lihat kertas Benchmarking quantum processor performance at scale. Perhatikan bahawa dalam kertas tersebut EPLG ditakrifkan untuk ralat proses, tetapi untuk konsistensi dengan ralat get yang dilaporkan secara individu di sini, ia dinyatakan untuk ralat get purata, oleh itu faktor 4/5.

Di IBM Quantum Platform, kad maklumat terperinci untuk setiap QPU mempunyai bahagian yang dipanggil Two-qubit gate error (layered), yang menyediakan paparan diperluas two-qubit gate error (layered) terendah yang diukur sebagai fungsi bilangan qubit dalam rantai. Nilai terakhir, pada panjang rantai 100, adalah nilai yang ditunjukkan dalam bahagian Details. Dalam amalan, enam rantai 100-qubit (dipilih terlebih dahulu berdasarkan prestasi optimum yang dijangkakan) diukur, dan nilai yang dilaporkan untuk bilangan qubit N adalah ralat terendah yang ditemui dalam rantai subset panjang N yang dicari dalam enam rantai 100-qubit.

Kira dengan QiskitIkuti contoh dalam notebook GitHub Qiskit Community ini
Lihat di IBM Quantum PlatformBahagian Details, dan paparan diperluas dalam bahagian Two-qubit gate error (layered)
Ralat RZZ (Heron)

Ralat dalam get RZZ dirata-ratakan atas sudut RZZ menggunakan varian penanda aras rawak untuk unitari arbitrari.

Lihat dengan QiskitPenting: Pastikan anda telah menetapkan use_fractional_gates=True apabila anda memuatkan backend, kemudian anda boleh menggunakan backend.target['rzz'][<qubit 1>, <qubit 2>]
Lihat di IBM Quantum PlatformBahagian Calibration: Pilih RZZ dalam menu lungsur Connection dan tuding di atas sambungan qubit dalam paparan Map. Anda juga boleh memilih RZZ error dalam menu lungsur Graph output dalam paparan Graph, atau cari nilai dalam paparan Table di bawah lajur RZZ error
Ralat ID / ralat √x (sx) / ralat Pauli-X / ralat RX

Ralat dalam get satu-qubit diskret berdurasi terhad, diukur daripada penanda aras rawak. Jujukan penanda aras rawak termasuk get SX, ID, dan X, dan ralat mereka dianggap sama. get ID adalah lengah dengan tempoh yang sama dengan tempoh get √X dan X. get RX juga mempunyai tempoh yang sama dengan get √X dan X dengan amplitud berubah, oleh itu dilaporkan sebagai mempunyai ralat yang sama dengan get-gate ini.

Lihat dengan Qiskitbackend.target['<instruction>'][<qubit 1>, ]
Lihat di IBM Quantum PlatformBahagian Calibration: menu lungsur qubit
Ralat SX (median)

Kesetiaan get purata get √X (SX) daripada penanda aras rawak, diukur serentak pada semua qubit. Jujukan penanda aras rawak termasuk get SX, ID, dan X, dan ralat mereka dianggap sama.

Lihat di IBM Quantum PlatformBahagian Details
Ralat putaran paksi-Z (RZ)

Ralat dalam get RZ maya. Dilaporkan sebagai semua 0 kerana ia dilakukan dalam perisian.

Lihat dengan Qiskit backend.target['<instruction>'][<qubit 1>, ]
Lihat di IBM Quantum PlatformBahagian Calibration: menu lungsur Connection
Ralat bacaan

Ralat bacaan mengukur kebarangkalian purata mengukur keadaan qubit dengan silap. Ia biasanya dikira sebagai min prob_meas0_prep1 dan prob_meas1_prep0, memberikan satu metrik untuk kesetiaan pengukuran.

Lihat dengan Qiskitbackend.properties().readout_error(<qubit>)
Lihat di IBM Quantum PlatformBahagian Calibration data, menu lungsur qubit
Ralat bacaan (median)

Kesetiaan operasi bacaan. Ralat bacaan diukur dengan menyediakan qubit dalam keadaan 0 (1) dan mengukur kebarangkalian output dalam keadaan 1 (0). Nilai yang dilaporkan adalah purata dua ralat ini. Median diambil atas semua qubit.

Lihat di IBM Quantum PlatformBahagian Calibration data, bahagian Details
Panjang get satu-qubit

Tempoh operasi get satu-qubit. Perhatikan bahawa nilai yang ditunjukkan di IBM Quantum Platform adalah dalam nanosaat. Nilai yang dikembalikan dalam Qiskit adalah dalam saat.

Lihat dengan Qiskitbackend.target['<instruction>'][<qubit 1>, ].duration
Lihat di IBM Quantum PlatformBahagian Calibration: menu lungsur qubit
Panjang get (get 2Q)

Tempoh operasi get dua-qubit. Perhatikan bahawa nilai yang ditunjukkan di IBM Quantum Platform adalah dalam nanosaat. Nilai yang dikembalikan dalam Qiskit adalah dalam saat.

Lihat dengan Qiskitbackend.target['<instruction>'][<qubit 1>, <qubit 2> ].duration
Lihat di IBM Quantum PlatformBahagian Calibration: menu lungsur qubit
Panjang bacaan

Panjang bacaan menentukan tempoh operasi bacaan bagi sesebuah qubit. Ia mengukur masa dari permulaan denyutan pengukuran hingga selesainya pendigitan isyarat, selepas itu sistem bersedia untuk operasi seterusnya. Memahami parameter ini penting untuk mengoptimumkan pelaksanaan litar, terutamanya apabila menggabungkan pengukuran pertengahan litar.

Lihat dengan Qiskit
  • Untuk measure: backend.properties().readout_length(<qubit>)
  • Untuk measure_2: backend.target['measure_2'][<qubit 1>, ].duration
Lihat di IBM Quantum PlatformBahagian Calibration data, menu lungsur 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)

Sifat tambahan

CLOPS (atau CLOPS_h)

Operasi lapisan litar sesaat (CLOPS) ialah ukuran berapa banyak lapisan litar 100x100 (litar sedar perkakasan) yang boleh dilaksanakan oleh QPU setiap unit masa.

Kira dengan QiskitCari kod CLOPS dalam GitHub Qiskit Community
Lihat di IBM Quantum PlatformBahagian Details
Status

Dengan BackendStatus, anda boleh mencari status QPU (contohnya, Active, Paused, Offline) serta bilangan kerja tertangguh.

Lihat dengan Qiskitprint(backend.status().status_msg), print(backend.status().pending_jobs)
Lihat di IBM Quantum PlatformBahagian Details
Diagram topologi atau peta gandeng

Diagram yang menunjukkan pasangan qubit yang menyokong operasi get dua-qubit antara mereka. Ini juga dipanggil peta gandeng atau konektiviti. qubit diwakili sebagai bulatan dan operasi get dua-qubit yang disokong dipaparkan sebagai garis yang menghubungkan qubit.

Lihat dengan Qiskitfrom qiskit.visualization import plot_gate_map kemudian plot_gate_map(backend)
Lihat di IBM Quantum PlatformBahagian Calibration data; Klik Expand untuk paparan yang lebih besar
Apakah maksud `error = 1`?

Jika penanda aras qubit atau tepi tidak berjaya dalam tempoh beberapa hari, sama ada disebabkan kualiti data yang rendah atau faktor dalaman lain, nilai ralat yang dilaporkan dianggap lapuk dan akan dilaporkan sebagai 1. Ini bukan petanda bahawa qubit atau tepi semestinya tidak berfungsi atau bahawa ralatnya adalah 1; sebaliknya, ralat dianggap tidak tertakrif dan anda harus berhati-hati apabila mengendalikan qubit atau get tersebut.

Langkah seterusnya

Cadangan