Wyświetlanie szczegółów 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
Ta strona wyjaśnia, jak znaleźć informacje o dostępnych backendach.
Wyświetlanie i filtrowanie backendów
Wyświetlanie dostępnych backendów
Do wyświetlania listy dostępnych backendów lub wyszukiwania określonego backendu można użyć Qiskit lub IBM Quantum Platform.
QPU hostowane na IBM Cloud® mają nazwy zaczynające się od ibm_*. Wszystkim QPU nadawana jest nazwa miasta — na przykład ibm_kingston. Nazwa ta nie wskazuje miejsca, w którym fizycznie znajduje się QPU.
- View backends with Qiskit
- View backends on IBM Quantum Platform
Use the QiskitRuntimeService.backends() method, as shown in the next code block. This method returns a list of IBMBackend instances.
To run the following code, be sure you have already authenticated to the service. See Set up your IBM Cloud account for more details.
To search for a specific backend, use the QiskitRuntimeService.backend() method (note that this is singular: backend), which takes the name of the backend as the input parameter and returns an IBMBackend instance representing that particular backend:
To view the backends you have access to, navigate to the list of backends on the Compute resources page (note that your selected region might impact the QPUs listed). Click the filter icon and choose either "All my instances" or a specific instance name to see the available QPUs.
# 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')>]
Jeśli jesteś zalogowany do określonej instancji lub regionu albo jeśli zainicjalizowałeś usługę z konkretną instancją lub regionem za pomocą QiskitRuntimeService(), zwracane są wyłącznie backendy dostępne dla Ciebie w tej instancji lub regionie.
Filtrowanie backendów
- Filter by properties with Qiskit
- Filter by properties on IBM Quantum Platform
You can filter the available backends by their configuration or status. For more general filters, set the filters argument to a function that accepts a backend object and returns True if it meets your criteria. Refer to the API documentation for more details.
The following code returns only backends that fit these criteria and are available to you on your currently selected instance:
- Are real quantum devices (
simulator=False) - Are currently operational (
operational=True) - Have at least a hundred qubits (
min_num_qubits=100)
A similar method is QiskitRuntimeService.least_busy(), which takes the same filters as backends() but returns the backend that matches the filters and has the least number of jobs pending in the queue:
To view the backends you have access to, view the table on the Compute resources page. Click the filter icon to see filter options. You can filter by processor type and status. Note also that you can sort the table by any column by hovering over a column title, and then clicking the arrows that appear.
service.least_busy(operational=True, min_num_qubits=100)
<IBMBackend('ibm_fez')>
Statyczne informacje o backendzie
Niektóre informacje o backendzie nie zmieniają się regularnie — jak jego nazwa, wersja, liczba kubitów, typ procesora (nazwa rodziny ptaków, wskazująca topologię i przybliżoną liczbę kubitów) oraz obsługiwane typy funkcji. Informacje te są dostępne jako atrybuty obiektu backend. Pełna lista atrybutów znajduje się w dokumentacji API IBMBackend. Więcej informacji na temat wersjonowania zawiera sekcja Wersjonowanie QPU poniżej.
Region backendu (lokalizacja centrum danych, w którym będą przechowywane i przetwarzane dane i eksperymenty) jest podany na szczegółowej karcie informacyjnej na stronie Zasobów obliczeniowych w IBM Quantum Platform.
- View backend information with Qiskit
- View backend information on IBM Quantum Platform
Navigate to the Compute resources page to view a table of all QPUs, then click the name of any QPU to open its detailed information card. Find backend information under the Details section of the card.
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'}
Wersjonowanie QPU
Każdy QPU ma numer wersji w postaci X.Y.Z (główna.pomocnicza.rewizja). Obwód skompilowany dla danego numeru wersji ma gwarancję uruchomienia na tym QPU. W przypadku zmiany numeru rewizji obwód nadal będzie działał. W przypadku zmiany numeru głównego lub pomocniczego nie ma gwarancji uruchomienia obwodu, choć może to być możliwe.
Numer wersji rewizji będzie zwiększany dla poprawek, które nie naruszają istniejącego skompilowanego obwodu.
Przykład kodu w tej sekcji pokazuje, jak znaleźć wersję backendu. W IBM Quantum Platform można wyświetlić wersję na szczegółowej karcie informacyjnej QPU (kliknij nazwę QPU w tabeli Zasobów obliczeniowych, aby otworzyć kartę).
Warunki, w których może zmienić się numer wersji lub rewizji, wymieniono w poniższej tabeli.
| Major version | Minor version | Revision version |
|---|---|---|
| Sample changes | Warmup / cool-down cycles | QPU software updates |
| Major changes to the control electronics | Swapping out some electronics, if the replacement appreciably affects operation | Manual calibrations to improve fidelities |
| Moving the QPU to a new location, if significant behavior changes result | Dropping a gate for some duration of time due to calibration issues, and corrections cannot readily be done in software | Small electronics changes that don't affect operation |
| Changing the direction of a CNOT gate |
Obsługiwane instrukcje
Każda rodzina procesorów natywnie obsługuje ograniczony zestaw instrukcji. Zestaw ten obejmuje bramki jednokubitowe i dwukubitowe, a także operacje nieunitarne, takie jak pomiar i reset. Każda bramka w obwodzie musi zostać przetranslowana (przez transpiler) na elementy obsługiwanego zestawu instrukcji QPU przed uruchomieniem na QPU.
Obsługiwane zestawy instrukcji QPU można wyświetlić za pomocą Qiskit. Strona zasobów obliczeniowych IBM Quantum Platform wyświetla tylko obsługiwane bramki unitarne (bramki bazowe) dla QPU.
- Find supported instructions with Qiskit
- Find basis gates on IBM Quantum Platform
Navigate to the Compute resources page to view a table of all QPUs, then click the name of any QPU to open its detailed information card. The basis gates for that QPU are listed in the Details section.
Tabela obsługiwanych instrukcji
| Operation category | Name |
|---|---|
| Single-qubit gates | RZ, SX, X, ID, delay |
| Two-qubit gates | CZ, ECR |
| Fractional gates | RX (single-qubit), RZZ (two-qubit) |
| Non-unitary instructions | measure, reset, measure_*, delay |
| Control flow | if_else (classical feedforward) |
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']
Dynamiczne informacje o backendzie
Backendy mają również właściwości zmieniające się po każdej kalibracji, takie jak czas życia kubitu i współczynniki błędów operacji. Właściwości backendu są aktualizowane po zakończeniu sekwencji kalibracyjnej. Właściwości te mogą być używane podczas optymalizacji obwodów kwantowych lub do konstruowania modeli szumów dla klasycznego symulatora. Więcej informacji zawiera przewodnik Zadania kalibracyjne.
W IBM Quantum Platform można pobrać dane kalibracyjne jako plik CSV. Kliknij QPU na stronie Zasobów obliczeniowych, aby wyświetlić szczegółową kartę informacyjną, a następnie kliknij ikonę pobierania w prawym górnym rogu sekcji Dane kalibracyjne.
You can retrieve historical backend properties data in Qiskit with the following code:
backend.properties(datetime=<datetime>)
Właściwości kubitów
Przejdź do listy właściwości kubitów
backend.properties().qubit_property() zwraca informacje o fizycznych atrybutach kubitów. Zawiera słownik różnych właściwości kubitu, każda sparowana z jej wartością i znacznikiem czasu ostatniej kalibracji.
Poniższe przykłady kodu pokazują, jak wyświetlić wszystkie właściwości lub pobrać określone właściwości konkretnego kubitu.
Wyświetlanie właściwości kubitów
T1 (Relaxation time)
The time represents the average duration a qubit remains in its excited state before decaying to its ground state due to energy relaxation. This parameter is used to characterize the qubit's energy relaxation behavior, and is expressed in units of seconds (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)
The time denotes the timescale over which a qubit maintains phase coherence of a superposition between the and states. It accounts for both energy relaxation and pure dephasing processes, providing insight into the qubit's coherence properties. is reported from a Hahn echo sequence.
| 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
Właściwości instrukcji
Przejdź do listy właściwości instrukcji
Atrybut backend.target jest obiektem qiskit.transpiler.Target: obiektem zawierającym wszystkie informacje potrzebne do transpilacji obwodu dla danego backendu. Obejmuje to błędy i czasy trwania instrukcji. Na przykład poniższa komórka pobiera właściwości bramki cz działającej między kubitami 1 i 0.
Poniższa komórka pokazuje właściwości operacji pomiaru (w tym błąd odczytu) na kubicie 0.
Wyświetlanie właściwości instrukcji
prob-meas0-prep1
This parameter indicates the probability of measuring a qubit in the 0 state when it was intended to be prepared in the state, denoted as . It reflects errors in state preparation and measurement (SPAM), particularly measurement errors in superconducting qubits.
| 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
Similarly, this parameter represents the probability of measuring a qubit in the 1 state when it was intended to be prepared in the state, denoted as . Like prob_meas0_prep1, it reflects SPAM errors, with measurement errors being the predominant contributor in superconducting qubits.
| 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)
Błąd dwukubitowy na krawędź z tej samej partii pomiarów użytej do obliczenia błędu mediany 2Q. Błąd 2Q (najlepszy) oznacza najniższy błąd dwukubitowy na dowolnej krawędzi urządzenia, również z tej partii pomiarów.
| 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)
Średnia wierność bramki operacji dwukubitowej wyznaczona z randomizowanego benchmarkingu. Mierzona w „izolacji": partie z minimalnym odstępem dwóch kubitów pomiędzy krawędziami. Randomizowany benchmarking używa naprzemiennych warstw jednokubitowych Cliffordów i bramek dwukubitowych, a zatem końcowa wartość błędu 2Q uwzględnia błąd warstwy jednokubitowych Cliffordów.
| 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)
Average error per layered gate (EPLG) in a chain of 100 qubits. Average EPLG measures the average gate error in a layered chain of qubits (=100 here). It is derived from a similar quantity known as the layer fidelity (LF) where EPLG = 4/5(1-LF) and layer fidelity is the process fidelity of the layered chain of qubits. For details, see the paper Benchmarking quantum processor performance at scale. Note that in the paper EPLG is defined for process error, but for consistency with the individually reported gate errors here it is quoted for average gate error, thus the factor of 4/5.
Na IBM Quantum Platform szczegółowa karta informacyjna każdego QPU zawiera sekcję Two-qubit gate error (layered), która przedstawia rozszerzony widok najniższego błędu bramki dwukubitowej (warstwowego) mierzonego jako funkcja liczby kubitów w łańcuchu. Końcowa wartość, przy długości łańcucha 100, jest wartością prezentowaną w sekcji Details. W praktyce mierzonych jest sześć łańcuchów 100-kubitowych (wstępnie wybranych na podstawie oczekiwanej optymalnej wydajności), a wartość raportowana dla liczby kubitów N to najniższy błąd znaleziony w podłańcuchu o długości N przeszukiwanym spośród sześciu łańcuchów 100-kubitowych.
| 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)
Error in the RZZ gate averaged over the RZZ angles using a variant of randomized benchmarking for arbitrary unitaries.
| 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
Błąd w jednokubitowych bramkach dyskretnych o skończonym czasie trwania, mierzony z randomizowanego benchmarkingu. Sekwencja randomizowanego benchmarkingu obejmuje bramki SX, ID i X, przy założeniu, że ich błędy są równe. Bramka ID jest opóźnieniem o czasie trwania równym bramkom √X i X. Bramka RX ma również taki sam czas trwania jak bramki √X i X, ze zmienną amplitudą — jest zatem raportowana jako posiadająca ten sam błąd co te bramki.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, ] |
|---|---|
| View on IBM Quantum Platform | Calibration section: Qubit dropdown menu |
SX error (median)
Średnia wierność bramki bramki √X (SX) wyznaczona z randomizowanego benchmarkingu, mierzona jednocześnie na wszystkich kubitach. Sekwencja randomizowanego benchmarkingu obejmuje bramki SX, ID i X, przy założeniu, że ich błędy są równe.
| View on IBM Quantum Platform | Details section |
|---|
Z-axis rotation (RZ) error
Error in the virtual RZ gate. Reported as all 0 since these are performed in software.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, ] |
|---|---|
| View on IBM Quantum Platform | Calibration section: Connection dropdown menu |
Readout error
Błąd odczytu kwantyfikuje średnie prawdopodobieństwo nieprawidłowego zmierzenia stanu kubitu. Jest zazwyczaj obliczany jako średnia wartości prob_meas0_prep1 i prob_meas1_prep0, stanowiąc pojedynczą miarę wierności pomiaru.
| View with Qiskit | backend.properties().readout_error(<qubit>) |
|---|---|
| View on IBM Quantum Platform | Calibration data section, qubit dropdown menu |
Readout error (median)
Wierność operacji odczytu. Błąd odczytu jest mierzony przez przygotowanie kubitu w stanie 0 (1) i pomiar prawdopodobieństwa uzyskania wyniku 1 (0). Raportowana wartość jest średnią tych dwóch błędów. Mediana jest wyznaczana dla wszystkich kubitów.
| View on IBM Quantum Platform | Calibration data section, Details section |
|---|
Single-qubit gate length
Czas trwania jednokubitowej operacji bramki. Należy pamiętać, że wartości wyświetlane na IBM Quantum Platform są w nanosekundach. Wartości zwracane przez Qiskit są w sekundach.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, ].duration |
|---|---|
| View on IBM Quantum Platform | Calibration section: Qubit dropdown menu |
Gate length (2Q gates)
Czas trwania dwukubitowej operacji bramki. Należy pamiętać, że wartości wyświetlane na IBM Quantum Platform są w nanosekundach. Wartości zwracane przez Qiskit są w sekundach.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, <qubit 2> ].duration |
|---|---|
| View on IBM Quantum Platform | Calibration section: Qubit dropdown menu |
Readout length
Długość odczytu określa czas trwania operacji odczytu kubitu. Mierzy czas od inicjacji impulsu pomiarowego do zakończenia digitalizacji sygnału, po której system jest gotowy do następnej operacji. Zrozumienie tego parametru jest kluczowe dla optymalizacji wykonania obwodu, szczególnie przy uwzględnieniu pomiarów śródukładowych.
| 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)
Dodatkowe właściwości
CLOPS (or CLOPS_h)
Operacje warstwy obwodu na sekundę (CLOPS) to miara określająca, ile warstw obwodu 100×100 (obwodu uwzględniającego sprzęt) QPU może wykonać w jednostce czasu.
| Calculate with Qiskit | Find the CLOPS code in the Qiskit Community GitHub |
|---|---|
| View on IBM Quantum Platform | Details section |
Status
Za pomocą BackendStatus można znaleźć status QPU (na przykład Active, Paused, Offline) oraz liczbę oczekujących zadań.
| 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 wskazujący pary kubitów obsługujących między nimi dwukubitowe operacje bramek. Znany jest również jako mapa sprzężeń lub łączność. Kubity są reprezentowane jako kółka, a obsługiwane dwukubitowe operacje bramek są wyświetlane jako linie łączące kubity.
| 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 |
Jeśli benchmarking kubitu lub krawędzi nie powiedzie się przez kilka dni z rzędu — niezależnie od przyczyny (niska jakość danych lub inne czynniki wewnętrzne) — raportowana wartość błędu jest uznawana za nieaktualną i zostanie zgłoszona jako 1. Nie oznacza to, że kubit lub krawędź są koniecznie niesprawne ani że błąd wynosi 1; błąd jest wówczas uznawany za nieokreślony i należy zachować ostrożność podczas operowania tym kubitem lub bramką.
Następne kroki
- Dowiedz się, jak budować modele szumów do zaszumionej symulacji klasycznej.
- Zapoznaj się z tematem Etapy transpilatora, aby dowiedzieć się, jak transpilator wykorzystuje właściwości backendu do optymalizacji obwodów.
- Przejrzyj dokumentację QiskitRuntime backend API.