Přeskočit na hlavní obsah

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.

Názvy QPU

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.

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:

# 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')>]
poznámka

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ů

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ě:

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.

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í verzeVedlejší verzeVerze revize
Změny vzorkuCykly zahřátí / ochlazeníAktualizace softwaru QPU
Zásadní změny řídicí elektronikyVýměna části elektroniky, pokud náhrada znatelně ovlivní provozManuá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.

Tabulka podporovaných instrukcí

Kategorie operaceNázev
JednoQubitové GateRZ, SX, X, ID, delay
DvoQubitové GateCZ, ECR
Frakční GateRX (jednoQubitová), RZZ (dvoQubitová)
Neunitární instrukcemeasure, reset, measure_*, delay
Řízení tokuif_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.

Načtení historických dat

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 T1T_1 představuje průměrnou dobu, po kterou qubit zůstává ve svém excitovaném stavu 1|1\rangle před tím, než vlivem energetické relaxace přejde do základního stavu 0|0\rangle. Tento parametr slouží k charakterizaci chování energetické relaxace Qubitu a je vyjádřen v jednotkách sekund (s).

View with Qiskitbackend.properties().t1(<qubit>)
View on IBM Quantum PlatformCalibration data section, qubit dropdown menu; find the T1T_1 median value in the Details section
T2 (Dephasing time)

Čas T2T_2 označuje časový rozsah, po který si qubit udržuje fázovou koherenci superpozice mezi stavy 0|0\rangle a 1|1\rangle. Zahrnuje jak energetickou relaxaci, tak procesy čistého defázování, a poskytuje tak přehled o koherenčních vlastnostech Qubitu. T2T_2 je uváděno ze sekvence Hahnova echa.

View with Qiskitbackend.properties().t2(<qubit>)
View on IBM Quantum PlatformCalibration data section, qubit dropdown menu; find the T2T_2 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 1|1\rangle, označenou jako P(01)P(0 | 1). Odráží chyby přípravy stavu a měření (SPAM), zejména chyby měření v supravodivých Qubitech.

View with Qiskitbackend.properties().qubit_property(<qubit>, 'prob_meas0_prep1')
View on IBM Quantum PlatformCalibration 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 0|0\rangle, označenou jako P(10)P(1 | 0). 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 Qiskitbackend.properties().qubit_property(<qubit>, 'prob_meas0_prep0')
View on IBM Quantum PlatformCalibration 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 Qiskitbackend.target['<instruction>'][<qubit 1>, <qubit 2>]
View on IBM Quantum PlatformCalibration 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 QiskitFollow the example in this Qiskit Community GitHub notebook
View on IBM Quantum PlatformDetails 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 NN Qubitů (NN=100 zde). Je odvozeno od podobné veličiny zvané věrnost vrstvy (LF), kde EPLG100_{100} = 4/5(1-LF199^{\frac{1}{99}}) a věrnost vrstvy je procesní věrnost vrstveného řetězce NN 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 QiskitFollow the example in this Qiskit Community GitHub notebook
View on IBM Quantum PlatformDetails 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 QiskitImportant: 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 PlatformCalibration 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 Qiskitbackend.target['<instruction>'][<qubit 1>, ]
View on IBM Quantum PlatformCalibration 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 PlatformDetails 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 PlatformCalibration 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 Qiskitbackend.properties().readout_error(<qubit>)
View on IBM Quantum PlatformCalibration 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 PlatformCalibration 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 Qiskitbackend.target['<instruction>'][<qubit 1>, ].duration
View on IBM Quantum PlatformCalibration 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 Qiskitbackend.target['<instruction>'][<qubit 1>, <qubit 2> ].duration
View on IBM Quantum PlatformCalibration 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
  • For measure: backend.properties().readout_length(<qubit>)
  • For measure_2: backend.target['measure_2'][<qubit 1>, ].duration
View on IBM Quantum PlatformCalibration 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 QiskitFind the CLOPS code in the Qiskit Community GitHub
View on IBM Quantum PlatformDetails section
Status

Pomocí BackendStatus zjistíš stav QPU (například Active, Paused, Offline) a také počet čekajících úloh.

View with Qiskitprint(backend.status().status_msg), print(backend.status().pending_jobs)
View on IBM Quantum PlatformDetails 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 Qiskitfrom qiskit.visualization import plot_gate_map then plot_gate_map(backend)
View on IBM Quantum PlatformCalibration data section; Click on Expand for a larger view
What does `error = 1` mean?

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

Recommendations