Zobrazení podrobností backendu
Package versions
The code on this page was developed using the following requirements. We recommend using these versions or newer.
qiskit-ibm-runtime~=0.46.1
Tato stránka vysvětluje, jak vyhledat informace o dostupných backendech.
Vypisování nebo filtrování backendů
Výpis backendů dostupných pro tebe
K zobrazení seznamu dostupných backendů nebo k vyhledání konkrétního backendu můžeš použít Qiskit nebo IBM Quantum Platform.
QPU hostovaná na IBM Cloud® mají názvy začínající ibm_*. Všem QPU je přiřazen název města – například ibm_kingston. Tento název neudává, kde je skutečné QPU hostováno.
- View backends with Qiskit
- View backends on IBM Quantum Platform
Použij metodu QiskitRuntimeService.backends(), jak je znázorněno v následujícím bloku kódu. Tato metoda vrací seznam instancí IBMBackend.
Aby bylo možné spustit následující kód, ujisti se, že jsi již ověřil(a) přístup ke službě. Podrobnosti najdeš v části Nastavení účtu IBM Cloud.
Chceš-li vyhledat konkrétní backend, použij metodu QiskitRuntimeService.backend() (pozor, jde o singulár: backend), která jako vstupní parametr přijímá název backendu a vrací instanci IBMBackend reprezentující daný backend:
Chceš-li zobrazit backendy, ke kterým máš přístup, přejdi na seznam backendů na stránce Compute resources (vybraný region může ovlivnit seznam zobrazených QPU). Klikni na ikonu filtru a vyber buď „All my instances", nebo konkrétní název instance, abys viděl(a) dostupná QPU.
# 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')>]
Pokud jsi přihlášen(a) ke konkrétní instanci nebo regionu, nebo pokud jsi inicializoval(a) službu s konkrétní instancí či regionem pomocí QiskitRuntimeService(), jsou vráceny pouze backendy dostupné v dané instanci nebo regionu.
Filtrování backendů
- Filter by properties with Qiskit
- Filter by properties on IBM Quantum Platform
Dostupné backendy lze filtrovat podle jejich konfigurace nebo stavu. Pro obecnější filtry nastav argument filters na funkci, která přijímá objekt backendu a vrátí True, pokud splňuje daná kritéria. Podrobnosti najdeš v dokumentaci API.
Následující kód vrátí pouze backendy, které splňují tato kritéria a jsou ti dostupné v aktuálně vybrané instanci:
- Jsou skutečnými kvantovými zařízeními (
simulator=False) - Jsou aktuálně v provozu (
operational=True) - Mají alespoň sto Qubitů (
min_num_qubits=100)
Podobnou metodou je QiskitRuntimeService.least_busy(), která přijímá stejné filtry jako backends(), ale vrací backend, který filtry splňuje a má nejmenší počet úloh čekajících ve frontě:
Chceš-li zobrazit backendy, ke kterým máš přístup, podívej se na tabulku na stránce Compute resources. Klikni na ikonu filtru, zobrazíš možnosti filtrování. Filtrovat lze podle typu procesoru a stavu. Tabulku lze také řadit podle libovolného sloupce – najeď na název sloupce a klikni na šipky, které se zobrazí.
service.least_busy(operational=True, min_num_qubits=100)
<IBMBackend('ibm_fez')>
Statické informace o backendu
Některé informace o backendu se nemění pravidelně – například jeho název, verze, počet Qubitů, typ procesoru (název rodiny, který indikuje topologii a přibližný počet Qubitů) a typy podporovaných funkcí. Tyto informace jsou dostupné jako atributy objektu backend. Úplný seznam atributů najdeš v dokumentaci API IBMBackend. Více informací o verzování najdeš v části Verzování QPU níže.
Region backendu (umístění datového centra, kde budou hostována a zpracovávána tvá data a experimenty) je uveden na detailní informační kartě QPU na stránce Compute resources na IBM Quantum Platform.
- View backend information with Qiskit
- View backend information on IBM Quantum Platform
Přejdi na stránku Compute resources a zobraz tabulku všech QPU. Klikni na název libovolného QPU a otevři jeho detailní informační kartu. Informace o backendu najdeš v části Details.
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'}
Verzování QPU
Každé QPU má číslo verze ve formátu X.Y.Z (hlavní.vedlejší.revize). Circuit zkompilovaný pro dané číslo verze je zaručeně spustitelný na daném QPU. Pokud se změní číslo revize, Circuit bude nadále fungovat. Pokud se změní hlavní nebo vedlejší číslo, Circuit není zaručeně spustitelný, i když spustit může.
Číslo verze revize se zvýší při opravách, které nenarušují existující zkompilovaný Circuit.
Příklad kódu v předchozí části tohoto oddílu ukazuje, jak zjistit verzi backendu. Na IBM Quantum Platform si verzi zobrazíš na detailní informační kartě QPU (klikni na název QPU v tabulce na stránce Compute resources a otevři kartu).
Podmínky, za nichž se může číslo verze nebo revize změnit, jsou uvedeny v následující tabulce.
| Hlavní verze | Vedlejší verze | Verze revize |
|---|---|---|
| Změny vzorku | Cykly zahřátí / ochlazení | Aktualizace softwaru QPU |
| Zásadní změny řídicí elektroniky | Výměna části elektroniky, pokud náhrada znatelně ovlivní provoz | Manuální kalibrace pro zlepšení věrnosti |
| Přesun QPU na nové místo, pokud to vede k výrazným změnám chování | Dočasné vypuštění Gate z důvodu problémů s kalibrací, pokud nelze opravy snadno provést softwarově | Malé změny elektroniky, které neovlivňují provoz |
| Změna směru hradla CNOT |
Podporované instrukce
Každá rodina procesorů nativně podporuje omezenou sadu instrukcí. Tato sada zahrnuje jednoQubitové a dvoQubitové Gate a také neunitární operace, jako jsou measure a reset. Každá hradlo v Circuit musí být před spuštěním na QPU přeložena (Transpilerem) na prvky podporované instrukční sady daného QPU.
Podporované instrukční sady QPU si můžeš zobrazit pomocí Qiskit. Stránka Compute resources na IBM Quantum Platform uvádí pouze podporované unitární Gate (základní Gate) pro dané QPU.
- Find supported instructions with Qiskit
- Find basis gates on IBM Quantum Platform
Přejdi na stránku Compute resources a zobraz tabulku všech QPU. Klikni na název libovolného QPU a otevři jeho detailní informační kartu. Základní Gate pro dané QPU jsou uvedeny v části Details.
Tabulka podporovaných instrukcí
| Kategorie operace | Název |
|---|---|
| JednoQubitové Gate | RZ, SX, X, ID, delay |
| DvoQubitové Gate | CZ, ECR |
| Frakční Gate | RX (jednoQubitová), RZZ (dvoQubitová) |
| Neunitární instrukce | measure, reset, measure_*, delay |
| Řízení toku | if_else (klasická zpětná vazba) |
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']
Dynamické informace o backendu
Backendy mají také vlastnosti, které se mění při každé kalibraci, například životnost Qubitů a míry chyb operací. Vlastnosti backendu se aktualizují po dokončení kalibrační sekvence. Tyto vlastnosti lze využít při optimalizaci kvantových Circuit nebo k sestavení šumových modelů pro klasický simulátor. Více informací najdeš v průvodci Kalibrační úlohy.
Na IBM Quantum Platform si kalibrační data můžeš stáhnout jako soubor CSV. Klikni na QPU na stránce Compute resources a otevři jeho detailní informační kartu, poté klikni na ikonu stahování v pravém horním rohu části Calibration data.
Historická data vlastností backendu v Qiskit načteš pomocí následujícího kódu:
backend.properties(datetime=<datetime>)
Vlastnosti Qubitu
Přejít na seznam vlastností Qubitů
backend.properties().qubit_property() vrací informace o fyzických vlastnostech Qubitů. Obsahuje slovník různých vlastností Qubitu, každou spárovanou s hodnotou a časovým razítkem poslední kalibrace.
Následující příklady kódu ukazují, jak vypsat všechny vlastnosti nebo načíst konkrétní vlastnosti daného Qubitu.
Zobrazení vlastností Qubitů
T1 (Relaxation time)
Čas představuje průměrnou dobu, po kterou qubit zůstává ve svém excitovaném stavu před tím, než vlivem energetické relaxace přejde do základního stavu . Tento parametr slouží k charakterizaci chování energetické relaxace Qubitu a je vyjádřen v jednotkách sekund (s).
| View with Qiskit | backend.properties().t1(<qubit>) |
|---|---|
| View on IBM Quantum Platform | Calibration data section, qubit dropdown menu; find the median value in the Details section |
T2 (Dephasing time)
Čas označuje časový rozsah, po který si qubit udržuje fázovou koherenci superpozice mezi stavy a . Zahrnuje jak energetickou relaxaci, tak procesy čistého defázování, a poskytuje tak přehled o koherenčních vlastnostech Qubitu. je uváděno ze sekvence Hahnova echa.
| View with Qiskit | backend.properties().t2(<qubit>) |
|---|---|
| View on IBM Quantum Platform | Calibration data section, qubit dropdown menu; find the median value in the Details section |
# 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
Vlastnosti instrukcí
Přejít na seznam vlastností instrukcí
Atribut backend.target je objekt qiskit.transpiler.Target: objekt, který obsahuje všechny informace potřebné k transpilaci Circuit pro daný backend. Zahrnuje chyby a doby trvání instrukcí. Například následující buňka získá vlastnosti pro cz Gate působící mezi Qubity 1 a 0.
Následující buňka zobrazuje vlastnosti pro operaci měření (včetně chyby čtení) na Qubitu 0.
Zobrazení vlastností instrukcí
prob-meas0-prep1
Tento parametr udává pravděpodobnost změření Qubitu ve stavu 0, když byl zamýšlen k přípravě ve stavu , označenou jako . Odráží chyby přípravy stavu a měření (SPAM), zejména chyby měření v supravodivých Qubitech.
| View with Qiskit | backend.properties().qubit_property(<qubit>, 'prob_meas0_prep1') |
|---|---|
| View on IBM Quantum Platform | Calibration data section, qubit dropdown menu |
prob-meas1-prep0
Obdobně tento parametr představuje pravděpodobnost změření Qubitu ve stavu 1, když byl zamýšlen k přípravě ve stavu , označenou jako . Stejně jako prob_meas0_prep1 odráží SPAM chyby, přičemž dominantním přispěvatelem jsou chyby měření v supravodivých Qubitech.
| View with Qiskit | backend.properties().qubit_property(<qubit>, 'prob_meas0_prep0') |
|---|---|
| View on IBM Quantum Platform | Calibration data section, qubit dropdown menu |
2Q error (Heron and Nighthawk: CZ, Eagle: ECR)
DvoQubitová chyba na hranu ze stejné dávky měření použité k výpočtu chyby mediánu 2Q. Chyba 2Q (nejlepší) označuje nejnižší dvoQubitovou chybu na libovolné hraně zařízení, také z této dávky měření.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, <qubit 2>] |
|---|---|
| View on IBM Quantum Platform | Calibration section: hover over the qubit connection in Map view, or find the value in Table view under the CZ error (Heron and Nighthawk) or ECR error (Eagle) column; find the value for 2Q error (best) in the Details section |
Median 2Q error (Heron: CZ, Eagle: ECR)
Průměrná věrnost Gate dvoQubitové operace z randomizovaného benchmarkingu. Měřeno „v izolaci": dávky s minimálním odstupem dvou Qubitů mezi hranami. Tento randomizovaný benchmarking používá střídající se vrstvy jednoQubitových Cliffordů a dvoQubitových Gate, takže výsledná hodnota chyby 2Q zahrnuje i chybu vrstvy jednoQubitových Cliffordů.
| Calculate with Qiskit | Follow the example in this Qiskit Community GitHub notebook |
|---|---|
| View on IBM Quantum Platform | Details section; also find per-edge data in the Calibration data section |
2Q error (layered)
Průměrná chyba na vrstvené Gate (EPLG) v řetězci 100 Qubitů. Průměrné EPLG měří průměrnou chybu Gate ve vrstveném řetězci Qubitů (=100 zde). Je odvozeno od podobné veličiny zvané věrnost vrstvy (LF), kde EPLG = 4/5(1-LF) a věrnost vrstvy je procesní věrnost vrstveného řetězce Qubitů. Podrobnosti najdeš v článku Benchmarking quantum processor performance at scale. Poznámka: v článku je EPLG definováno pro procesní chybu, ale pro konzistenci s jednotlivě uváděnými chybami Gate je zde uvedeno jako průměrná chyba Gate, proto faktor 4/5.
Na IBM Quantum Platform má detailní informační karta každého QPU část nazvanou Two-qubit gate error (layered), která poskytuje rozšířený pohled na nejnižší chybu dvoQubitové Gate (vrstvené) měřenou jako funkci počtu Qubitů v řetězci. Konečná hodnota při délce řetězce 100 je hodnota uvedená v části Details. V praxi se měří šest 100-Qubitových řetězců (předem vybraných na základě očekávaného optimálního výkonu) a hodnota uváděná pro počet Qubitů N je nejnižší chyba nalezená v podřetězci délky N při prohledávání šesti 100-Qubitových řetězců.
| Calculate with Qiskit | Follow the example in this Qiskit Community GitHub notebook |
|---|---|
| View on IBM Quantum Platform | Details section, and an expanded view in the Two-qubit gate error (layered) section |
RZZ error (Heron)
Chyba Gate RZZ průměrovaná přes úhly RZZ pomocí varianty randomizovaného benchmarkingu pro libovolné unitární operátory.
| View with Qiskit | Important: Be sure you have set use_fractional_gates=True when you load the backend, then you can use backend.target['rzz'][<qubit 1>, <qubit 2>] |
|---|---|
| View on IBM Quantum Platform | Calibration section: Select RZZ in the Connection dropdown menu and hover over the qubit connection in Map view. You can also select RZZ error in the Graph output dropdown menu in Graph view, or find the value in Table view under the RZZ error column |
ID error / √x (sx) error / Pauli-X error / RX error
Chyba v jednoQubitových Gate s konečnou dobou trvání, měřená z randomizovaného benchmarkingu. Sekvence randomizovaného benchmarkingu zahrnuje Gate SX, ID a X, přičemž se předpokládá, že jejich chyby jsou stejné. Gate ID je prodleva s dobou trvání rovnou době trvání Gate √X a X. Gate RX má také stejnou dobu trvání jako Gate √X a X s proměnnou amplitudou, a proto je uváděna jako Gate se stejnou chybou jako tyto Gate.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, ] |
|---|---|
| View on IBM Quantum Platform | Calibration section: Qubit dropdown menu |
SX error (median)
Průměrná věrnost Gate Gate √X (SX) z randomizovaného benchmarkingu, měřeného současně na všech Qubitech. Sekvence randomizovaného benchmarkingu zahrnuje Gate SX, ID a X, přičemž se předpokládá, že jejich chyby jsou stejné.
| View on IBM Quantum Platform | Details section |
|---|
Z-axis rotation (RZ) error
Chyba virtuální Gate RZ. Uváděna jako samé 0, protože tyto operace se provádějí softwarově.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, ] |
|---|---|
| View on IBM Quantum Platform | Calibration section: Connection dropdown menu |
Readout error
Chyba čtení kvantifikuje průměrnou pravděpodobnost nesprávného změření stavu Qubitu. Obvykle se vypočítává jako průměr prob_meas0_prep1 a prob_meas1_prep0, čímž vzniká jediná metrika věrnosti měření.
| View with Qiskit | backend.properties().readout_error(<qubit>) |
|---|---|
| View on IBM Quantum Platform | Calibration data section, qubit dropdown menu |
Readout error (median)
Věrnost operace čtení. Chyba čtení se měří tak, že qubit je připraven ve stavu 0 (1) a měří se pravděpodobnost výstupu ve stavu 1 (0). Uváděná hodnota je průměr těchto dvou chyb. Medián je vypočten přes všechny Qubity.
| View on IBM Quantum Platform | Calibration data section, Details section |
|---|
Single-qubit gate length
Doba trvání jednoQubitové Gate operace. Hodnoty zobrazené na IBM Quantum Platform jsou v nanosekundách. Hodnoty vrácené v Qiskit jsou v sekundách.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, ].duration |
|---|---|
| View on IBM Quantum Platform | Calibration section: Qubit dropdown menu |
Gate length (2Q gates)
Doba trvání dvoQubitové Gate operace. Hodnoty zobrazené na IBM Quantum Platform jsou v nanosekundách. Hodnoty vrácené v Qiskit jsou v sekundách.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, <qubit 2> ].duration |
|---|---|
| View on IBM Quantum Platform | Calibration section: Qubit dropdown menu |
Readout length
Délka čtení udává dobu trvání operace čtení pro qubit. Měří čas od zahájení měřicího pulzu do dokončení digitalizace signálu, po níž je systém připraven na další operaci. Pochopení tohoto parametru je klíčové pro optimalizaci provádění Circuit, zejména při zahrnutí měření uprostřed Circuit.
| View with Qiskit |
|
|---|---|
| View on IBM Quantum Platform | Calibration data section, qubit dropdown menu |
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)
Další vlastnosti
CLOPS (or CLOPS_h)
Circuit layer operations per second (CLOPS) je míra toho, kolik vrstev Circuit 100×100 (hardwarově přizpůsobený Circuit) dokáže QPU provést za jednotku času.
| Calculate with Qiskit | Find the CLOPS code in the Qiskit Community GitHub |
|---|---|
| View on IBM Quantum Platform | Details section |
Status
Pomocí BackendStatus zjistíš stav QPU (například Active, Paused, Offline) a také počet čekajících úloh.
| View with Qiskit | print(backend.status().status_msg), print(backend.status().pending_jobs) |
|---|---|
| View on IBM Quantum Platform | Details section |
Topology diagram or coupling map
Diagram znázorňující páry Qubitů, které mezi sebou podporují dvoQubitové Gate operace. Označuje se také jako coupling map nebo konektivita. Qubity jsou znázorněny jako kruhy a podporované dvoQubitové Gate operace jsou zobrazeny jako čáry spojující Qubity.
| View with Qiskit | from qiskit.visualization import plot_gate_map then plot_gate_map(backend) |
|---|---|
| View on IBM Quantum Platform | Calibration data section; Click on Expand for a larger view |
Pokud benchmarking Qubitu nebo hrany po dobu několika dní neuspěje, ať už kvůli špatné kvalitě dat nebo jiným interním faktorům, je uváděná hodnota chyby považována za zastaralou a bude zobrazena jako 1. To neznamená, že qubit nebo hrana nutně nefunguje nebo že chyba je skutečně 1; chyba je spíše považována za nedefinovanou a při práci s daným Qubitem nebo Gate bys měl(a) postupovat opatrně.
Další kroky
- Zjisti, jak sestavit šumové modely pro klasickou simulaci se šumem.
- Projdi si téma Fáze Transpileru a zjisti, jak Transpiler využívá vlastnosti backendu pro optimalizaci Circuit.
- Prostuduj referenci QiskitRuntime backend API.