Přeskočit na hlavní obsah
Tento projekt je v betě. Našel jsi chybu? Otevřít issue na GitHubu. Máš otázku nebo nápad? Zeptej se v Discussions — rádi si poslechneme tvou zpětnou vazbu!
Jaká je kvalita překladu na této stránce?

Zobrazení podrobností backendu

Verze balíčků

Kód na této stránce byl vyvinut s použitím následujících požadavků. Doporučujeme používat tyto verze nebo novější.

qiskit-ibm-runtime~=0.47.0

Tato stránka vysvětluje, jak najít informace o tvých 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 — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
# 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_kingston')>]
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_pittsburgh')>,
<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_kingston')>]
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 pravidelně nemění, například jeho název, verze, počet qubitů, typ procesoru (název ptačí rodiny, který udává topologii a přibližný počet qubitů) a typy podporovaných funkcí. Tyto informace jsou k dispozici jako atributy objektu backend. Úplný seznam atributů najdeš v dokumentaci API IBMBackend. Více informací o verzování najdeš v sekci 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.least_busy(operational=True, simulator=False)

print(
f"Name: {backend.name}\n"
f"Version: {backend.backend_version}\n"
f"No. of programmable qubits: {backend.num_qubits}\n"
f"Processor type: {backend.processor_type}\n"
)
Name: ibm_fez
Version: 1.3.37
No. of programmable 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ženo (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á hradlaRZ, SX, X, XSlow, ID, delay
Dvouqubitová hradlaCZ, ECR
Frakční hradlaRX (jednoqubitové), RZZ (dvouqubitové)
Neunitární instrukcemeasure, reset, measure_*, reset_*, measure_reset*, delay
Řízení tokuif_else (klasická dopředná vazba (feedforward))
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

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).

Zobrazit pomocí Qiskitbackend.properties().t1(<qubit>)
Zobrazit na IBM Quantum PlatformSekce kalibračních dat: rozbalovací nabídka Qubit; najdi hodnotu medián T1T_1 v sekci Podrobnosti
T2 (doba defázování)

Č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.least_busy(operational=True, simulator=False)

backend.qubit_properties(1)
QubitProperties(t1=0.00022010760855770256, t2=0.0002363339150114578, frequency=None)
# Retrieve qubit properties
qubit_index = backend.num_qubits - 1 # 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")

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 připojeným párem Qubitů.

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⟩|0\rangle, když měl být připraven ve stavu ∣1⟩|1\rangle, označenou jako P(0∣1)P(0 | 1). Odráží chyby přípravy stavu a měření (SPAM), zejména chyby měření v supravodivých Qubitech.

Zobrazení pomocí Qiskitbackend.properties().qubit_property(<qubit>, 'prob_meas0_prep1')
Zobrazení na IBM Quantum PlatformSekce kalibračních dat: rozbalovací nabídka Qubit
prob-meas1-prep0

Obdobně tento parametr představuje pravděpodobnost změření Qubitu ve stavu ∣1⟩|1\rangle, když byl zamýšlen k přípravě ve stavu ∣0⟩|0\rangle, označenou jako P(1∣0)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.

Zobrazit pomocí Qiskitbackend.properties().qubit_property(<qubit>, 'prob_meas0_prep0')
Zobrazit na IBM Quantum PlatformSekce kalibračních dat: rozbalovací nabídka Qubit
Chyba 2Q (Heron a 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í.

Zobrazit pomocí Qiskitbackend.target['<instruction>'][<qubit 1>, <qubit 2>]
Zobrazit na IBM Quantum PlatformSekce Kalibrace: najeď myší na spojení qubitů v zobrazení Mapa, nebo najdi hodnotu v zobrazení Tabulka ve sloupci CZ error (Heron a Nighthawk) nebo ECR error (Eagle); najdi hodnotu pro 2Q error (nejlepší) v sekci Podrobnosti
Medián chyby 2Q (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 obsahuje podrobná informační karta pro každý QPU sekci nazvanou Two-qubit gate error (layered), která poskytuje rozšířený pohled na nejnižší two-qubit gate error (layered) naměřenou jako funkci počtu qubitů v řetězci. Konečná hodnota při délce řetězce 100 je hodnota uvedená v sekci Podrobnosti. V praxi se měří šest 100qubitových řetězců (předem vybraných na základě očekávaného optimálního výkonu) a hodnota uvedená pro počet qubitů N je nejnižší chyba nalezená v podřetězci délky N při prohledávání šesti 100qubitových řetězců.

Vypočítat pomocí QiskitPostupujte podle příkladu v tomto poznámkovém bloku Qiskit Community na GitHubu
Zobrazit na IBM Quantum PlatformSekce Podrobnosti a rozšířené zobrazení v sekci Chyba dvouqubitového hradla (vrstvená)
Chyba RZZ (Heron)

Chyba Gate RZZ průměrovaná přes úhly RZZ pomocí varianty randomizovaného benchmarkingu pro libovolné unitární operátory.

Zobrazit pomocí QiskitDůležité: Ujisti se, že jsi při načítání backendu nastavil(a) use_fractional_gates=True, pak můžeš použít backend.target['rzz'][<qubit 1>, <qubit 2>]
Zobrazit na IBM Quantum PlatformSekce Kalibrace: Vyber RZZ v rozbalovací nabídce Connection a najeď myší na spojení qubitů v zobrazení Mapa. Můžeš také vybrat RZZ error v rozbalovací nabídce Graph output v zobrazení Graf, nebo najít hodnotu v zobrazení Tabulka ve sloupci RZZ error
Chyba ID / chyba √x (sx) / chyba Pauli-X / chyba RX

Chyba diskrétních jednoqubitových hradel 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é.

Zobrazit na IBM Quantum PlatformSekce Podrobnosti
Chyba rotace kolem osy Z (RZ)

Chyba virtuálního hradla RZ. Hlášena jako nulová, protože je prováděna v softwaru.

Zobrazit pomocí Qiskit backend.target['<instruction>'][<qubit 1>, ]
Zobrazit na IBM Quantum PlatformSekce Kalibrace: rozbalovací nabídka Connection
Chyba čtení (readout)

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í.

Zobrazit pomocí Qiskitbackend.properties().readout_error(<qubit>)
Zobrazit na IBM Quantum PlatformSekce kalibračních dat: rozbalovací nabídka Qubit
Chyba čtení (readout) (medián)

Věrnost operace čtení. Chyba čtení se měří tak, že qubit je připraven ve stavu ∣0⟩|0\rangle (∣1⟩|1\rangle) a měří se pravděpodobnost výstupu ve stavu ∣1⟩|1\rangle (∣0⟩|0\rangle). Uváděná hodnota je průměr těchto dvou chyb. Medián je vypočten přes všechny Qubity.

Zobrazit na IBM Quantum PlatformSekce kalibračních dat: sekce Podrobnosti
Délka jednoqubitového hradla

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.

Zobrazit v Qiskitbackend.target['<instruction>'][<qubit 1>, ].duration
Zobrazit na IBM Quantum PlatformSekce Calibration: rozbalovací nabídka Qubit
Délka Gate (2Q Gate)

Doba trvání operace dvouqubitového hradla. Upozorňujeme, že hodnoty zobrazené na IBM Quantum Platform jsou v nanosekundách. Hodnoty vrácené v Qiskit jsou v sekundách.

Zobrazení pomocí Qiskitbackend.target['<instruction>'][<qubit 1>, <qubit 2> ].duration
Zobrazení na IBM Quantum PlatformSekce kalibrace: rozbalovací nabídka Qubit
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.

Zobrazit pomocí Qiskit
  • Pro measure: backend.properties().readout_length(<qubit>)
  • Pro measure_2: backend.target['measure_2'][<qubit 1>, ].duration
Zobrazit na IBM Quantum PlatformSekce kalibračních dat: rozbalovací nabídka Qubit
Chyba inicializace

Chyba inicializace vyjadřuje procento populace ve stavu ∣1⟩|1\rangle po výchozím rep-delay a postupu inicializace qubitu, když předchozí experiment připravil qubit ve stavu ∣1⟩|1\rangle. Upozorňujeme, že to se jemně liší od veličiny prob_meas1_prep0, která měří procento měření přiřazených ke stavu ∣1⟩|1\rangle. Ta druhá je měřítkem jak chyby inicializace, tak postupu rozlišování mezi stavy ∣0⟩|0\rangle a ∣1⟩|1\rangle. V limitě dokonalého měření jsou obě veličiny stejné.

Zobrazit pomocí Qiskitbackend.properties().qubit_property(<qubit>, 'init_error')
Zobrazit na IBM Quantum PlatformSekce kalibračních dat: rozbalovací nabídka Qubit
# Get the cz gate properties for a connected pair of qubits
# (the first edge in this backend's coupling map)
edge = next(iter(backend.target["cz"]))
backend.target["cz"][edge]
backend.target["measure"][(0,)]
InstructionProperties(duration=1.66e-06, error=0.0126953125)

Další vlastnosti​

Maximální počet obvodů za sekundu (MCPS)

Maximum circuits per second (MCPS) zahrnuje měření, reset a reinicializaci obvodu s Hadamardovým hradlem a jedním měřením.

Zobrazení pomocí Qiskitmcps = backend.configuration().mcps
Zobrazení na IBM Quantum PlatformSekce Podrobnosti
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.

Zobrazit pomocí Qiskitprint(backend.status().status_msg), print(backend.status().pending_jobs)
Zobrazit na IBM Quantum PlatformSekce Podrobnosti
Diagram topologie nebo mapa propojení

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.

Zobrazit v Qiskitfrom qiskit.visualization import plot_gate_map potom plot_gate_map(backend)
Zobrazit na IBM Quantum PlatformSekce Calibration data; klikni na Expand pro větší zobrazení
Co znamená `error = 1`?

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