IBMBackend
class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None, physical_qubits=None)
Basen: BackendV2
Backend-Klasse, die eine Schnittstelle zu einem „ IBM Quantum Compute “-Backend (früher „ Qiskit Runtime “) bildet.
- Sie sollten die Klasse
IBMBackendnicht direkt instanziieren. Verwenden Sie stattdessen die Methoden, die von einerQiskitRuntimeServiceinstanz bereitgestellten Methoden, um Backends abzurufen und zu behandeln.
Diese Klasse stellt ein „ IBM Quantum Compute “-Backend dar. Seine Attribute und Methoden liefern Informationen über das Backend. Beispielsweise gibt die Methode status() eine Instanz BackendStatus zurück. Die Instanz enthält die Attribute pending_jobs und operational , die angeben, ob das Backend betriebsbereit ist bzw. wie viele Aufträge sich in der Serverwarteschlange für das Backend befinden:
status = backend.status()
is_operational = status.operational
jobs_in_queue = status.pending_jobsEs folgt eine Liste der Attribute, die für die Klasse IBMBackend verfügbar sind:
name: Backend-Name.
backend_version: Backend-Version in der Form X.Y.Z.
num_qubits: Anzahl der Qubits.
ziel: A
qiskit.transpiler.Targetobjekt für das Backend.basis_gates: Liste der Namen der Basis-Gates auf dem Backend.
gates: Liste der Basis-Gates auf dem Backend.
lokal: Backend ist lokal oder entfernt.
simulator: Backend ist ein Simulator.
conditional: Backend unterstützt bedingte Operationen.
open_pulse: Backend unterstützt open pulse.
speicher: Backend unterstützt Speicher.
coupling_map (Liste): Die Kopplungskarte für das Gerät
supported_instructions ( [Liststr] ): Vom Backend unterstützte Anweisungen.
dynamic_reprate_enabled (bool): ob die Verzögerung zwischen Primitiven dynamisch eingestellt werden kann (d.h. über
rep_delay). Standardmäßig wird 'Falsch' angenommen.rep_delay_range (Liste[float]): 2d Liste, die den unterstützten Bereich der Wiederholungsverzögerungen für das Backend in Sekunden definiert. Der erste Eintrag entspricht dem unteren Ende des Bereichs, der zweite Eintrag dem oberen Ende des Bereichs. Optional, wird jedoch angegeben, wenn
dynamic_reprate_enabled=True.default_rep_delay (float): Wert in
rep_delaySekunden, falls vom Benutzer nicht anders angegeben unddynamic_reprate_enabled=True.n_uchannels: Anzahl der U-Kanäle.
u_channel_lo: U-Kanal-Beziehung am Gerät los.
meas_levels: Unterstützte Messebenen.
qubit_lo_range: Qubit-Lo-Bereiche für jedes Qubit mit Form (min, max) in GHz.
messung_lo_bereich: Mess-Lo-Bereiche für jedes Qubit in der Form (min, max) in GHz.
dt: Zeitschritt des Qubit-Antriebskanals in Nanosekunden.
dtm: Zeitschritt für den Messkanal in Nanosekunden.
rep_times: Unterstützte Wiederholungszeiten (Programmausführungszeit) für Backend in μs.
meas_kernels: Unterstützte Messkerne.
unterscheidungsmerkmale: Unterstützte Diskriminatoren.
hamiltonian: Ein optionales Wörterbuch mit Feldern, die den Systemhamiltonianer charakterisieren.
channel_bandwidth (Liste): Bandbreite aller Kanäle (Qubit, Messung und U)
acquisition_latency (Liste): Array der Dimension n_qubits x n_registers. Latenzzeit (in Einheiten von dt), um ein Messergebnis von Qubit n in den Registerplatz m zu schreiben.
bedingte_latency (Liste): Array der Dimension n_channels [d->u->m] x n_registers. Latenzzeit (in Einheiten von dt), um eine bedingte Operation auf Kanal n von Registerplatz m aus durchzuführen
meas_map (Liste): Gruppierung von Messungen, die gemultiplext werden
sample_name (str): Beispielname für das Backend
n_registers (int): Anzahl der für die Rückmeldung verfügbaren Registerplätze (wenn die Bedingung True ist)
register_map (Liste): Ein Array der Dimension n_qubits X n_registers, das angibt, ob ein Qubit eine Messung in einem bestimmten Register-Slot speichern kann.
konfigurierbar (bool): True, wenn das Backend konfigurierbar ist, wenn das Backend ein Simulator ist
credits_required (bool): True, wenn das Backend für die Ausführung eines Auftrags Credits benötigt.
online_date (datetime): Das Datum, an dem das Gerät online ging
display_name (str): Alternatives Namensfeld für das Backend
beschreibung (str): Eine Beschreibung für das Backend
tags (Liste): Eine Liste von String-Tags zur Beschreibung des Backends
version: Version der Klasse
Backend(Beispiel: 1, 2)kanäle: Ein optionales Wörterbuch, das Informationen über jeden Kanal enthält - seinen Zweck, seinen Typ und die verarbeiteten Qubits.
parametric_pulses (Liste): Eine Liste von Impulsformen, die vom Backend unterstützt werden. Beispiel:
['gaussian', 'constant']processor_type (dict): Prozessortyp für dieses Backend. Ein Wörterbuch der Form
{"family": <str>, "revision": <str>, segment: <str>}wie{"family": "Canary", "revision": "1.0", segment: "A"}.
- familie: Prozessorfamilie dieses Backends.
- revision: Die Revisionsversion dieses Prozessors.
- segment: Segment, zu dem dieser Prozessor innerhalb eines größeren Chips gehört.
Parameter
- configuration (QasmBackendConfiguration) – Backend-Konfiguration.
- service (QiskitRuntimeService) – Instanz von „ QiskitRuntimeService “.
- api_client (RuntimeClient) – IBM client für die Kommunikation mit dem Server verwendet.
- instance (str | None) – Die zu verwendende Service-Instanz.
- calibration_id (str | None) – Eine optionale Kalibrierungskennung, die für dieses Backend zu verwenden ist
- physical_qubits (int | None) – Die Anzahl der physikalischen Qubits des Backends.
Ein Backend auf Basis von „ BackendV2 “ initialisieren
Parameter
- Anbieter – Ein optionaler Rückverweis auf das Anbieterobjekt, aus dem das Backend stammt
- name – Ein optionaler Name für das Backend
- Beschreibung – Eine optionale Beschreibung des Backends
- online_date – Ein optionales Datums- und Zeitangabe, zu der das Backend in Betrieb genommen wurde
- backend_version – Eine optionale Zeichenfolge für die Backend-Version. Dies unterscheidet sich vom Attribut
version, daversionfür die abstrakteBackendSchnittstellenversion des Objekts steht, währendbackend_versionder Versionierung des Backends selbst dient. - Felder – kwargs für die Werte, mit denen die Standardoptionen überschrieben werden sollen.
- configuration (QasmBackendConfiguration)
- service (QiskitRuntimeService)
- api_client (RuntimeClient)
- instance (str | None)
- calibration_id (str | None)
- physical_qubits (int | None)
Erhöht
AttributeError – Wenn ein Feld angegeben wird, das außerhalb der Optionen des Backends liegt
Attribute
calibration_id
Die für dieses Backend verwendete Kalibrierungs-ID.
coupling_map
Geben Sie das CouplingMap objekt
dt
Rückgabe der Systemzeitauflösung der Eingangssignale
Dies ist erforderlich, wenn das Backend die Impulsplanung unterstützt.
Rückgabe
Der Zeitschritt des Eingangssignals in Sekunden. Wenn das Backend nicht dt definiert, wird None zurückgegeben.
dtm
Gibt die Zeitauflösung der Ausgangssignale an.
Rückgabe
Der Zeitschritt des Ausgangssignals in Sekunden.
id_warning_issued
Standardwert: False
instruction_durations
Geben Sie das InstructionDurations objekt.
instructions
Eine Liste von Befehlstupeln auf der Backend-Seite des Formulars (instruction, (qubits))
max_circuits
Gibt die maximale Anzahl an Durchläufen zurück, die in einem einzelnen Auftrag ausgeführt werden können.
Diese Eigenschaft gab früher den Wert max_experiments aus der Backend-Konfiguration zurück, aber dieser Wert ist nicht mehr eine genaue Darstellung der Backend-Schaltkreisgrenzen. Es werden neue Felder zur Angabe neuer Grenzwerte hinzugefügt.
meas_map
Gibt die Gruppierung der multiplexierten Messwerte zurück.
Dies ist erforderlich, wenn das Backend die Impulsplanung unterstützt.
Rückgabe
Die Gruppierung von Messungen, die gemultiplext werden
num_qubits
Gibt die Anzahl der Qubits zurück, die das Backend hat.
operation_names
Eine Liste von Befehlsnamen, die das Backend unterstützt.
operations
Eine Liste von Instruction instanzen, die das Backend unterstützt.
options
Rückgabe der Optionen für das Backend
Die Optionen eines Backends sind die dynamischen Parameter, die festlegen, wie das Backend verwendet wird. Diese werden zur Steuerung der run() methode.
physical_qubits
Gibt die Anzahl der physikalischen Qubits zurück, über die das Backend verfügt.
Gibt die Anzahl der physikalischen Qubits des Backends zurück (programmierbare Qubits, Reset-Qubits und Koppler zusammen).
provider
Rückgabe des Backend-Anbieters.
Rückgabe
der für das Backend zuständige Anbieter.
Rückgabetyp
Anbieter
service
Gib das service Objekt zurück.
Rückgabe
Eine Instanz von QiskitRuntimeService
target
version
Standardwert: 2
name
Name des Backends.
description
Optionale, von Menschen lesbare Beschreibung.
online_date
Datum, an dem das Backend online ging.
backend_version
Version des bereitgestellten Backends. Dies ist nicht dasselbe wie BackendV2.version, das die Version der abstrakten Schnittstelle Backend ist.
Methoden
__call__
check_faulty
check_faulty(circuit)
Prüfen Sie, ob die Eingangsschaltung fehlerhafte Qubits oder Flanken verwendet.
Parameter
circuit (QuantumCircuit) – Zu prüfende Schaltung.
Erhöht
ValueError - Wird ein Befehl gefunden, der auf einem fehlerhaften Qubit oder einer fehlerhaften Flanke arbeitet.
Rückgabetyp
Keine
configuration
configuration()
Rückgabe der Backend-Konfiguration.
Die Backend-Konfiguration enthält feste Informationen über das Backend, z. B. seinen Namen, die Anzahl der Qubits, die Basisgatter, die Kopplungskarte, das Quantenvolumen usw.
Informationen zur Backend-Konfiguration finden Sie in der REST-API „Backend-Konfiguration abrufen “.
Weitere Details zu den Eigenschaften der Backend-Konfiguration finden Sie hier QasmBackendConfiguration.
IBM backends können auch die folgenden Eigenschaften enthalten:
-
supported_features: eine Liste von Zeichenfolgen mit unterstützten Funktionen wie „ “qasm3” “ fürUnterstützung dynamischer Schaltkreise.
-
parallel_compilation: ein Boolescher Wert, der angibt, ob das Backend mehrere Daten verarbeiten kann oder nichtsofort zu erledigen. Teile des klassischen Rechenvorgangs werden parallelisiert.
Rückgabe
Die Konfiguration für das Backend.
Rückgabetyp
get_translation_stage_plugin
get_translation_stage_plugin()
Rückgabe des Standard-Plugin-Namens der Übersetzungsstufe für IBM Backends.
Rückgabetyp
str
properties
properties(refresh=False, datetime=None)
Gibt die Backend-Eigenschaften zurück, vorbehaltlich einer optionalen Filterung.
Diese Daten beschreiben die Eigenschaften der Qubits (z. B. T1 und T2 ), die Eigenschaften der Gatter (z. B. Gatterlänge und Fehler) und andere allgemeine Eigenschaften des Backends.
Informationen zu Backend-Eigenschaften finden Sie in der REST-API „Backend-Konfiguration abrufen “.
Parameter
- refresh (bool) – Wenn
True, fragen Sie den Server erneut nach den Backend-Eigenschaften ab. Andernfalls wird eine gecachte Version zurückgegeben. - datetime (python_datetime | None) – Bei Angabe eines Datums- und Zeitwerts gibt diese Funktion eine Instanz des Typs
BackendPropertieszurück, deren Zeitstempel dem angegebenen Datums- und Zeitwert am nächsten liegt, aber älter ist als dieser.
Rückgabe
Die Backend-Eigenschaften oder None , wenn die Backend-Eigenschaften derzeit nicht verfügbar sind.
Erhöht
- TypeError - Wenn ein Eingangsargument nicht vom richtigen Typ ist.
- NotImplementedError – Wenn bei der Verwendung von „ IBM Quantum Compute “ ein Datums- und Zeitangabe angegeben wird.
Rückgabetyp
BackendProperties | Keine
qubit_properties
qubit_properties(qubit)
Rückgabe QubitProperties für ein gegebenes Qubit.
Wenn keine Details definiert sind oder das Backend die Abfrage dieser Details nicht unterstützt, muss diese Methode nicht implementiert werden.
Parameter
qubit (int | list[int]) – Das Qubit, für das das QubitProperties Objekt benötigt wird. Dies kann eine einzelne Ganzzahl für 1 Qubit sein oder eine Liste von Qubits; eine Liste von QubitProperties Objekten wird in derselben Reihenfolge zurückgegeben
Rückgabe
Das QubitProperties Objekt für das angegebene Qubit. Wenn eine Liste von Qubits angegeben wird, wird eine Liste zurückgegeben. Wenn Eigenschaften für ein Qubit fehlen, kann dies None sein.
Erhöht
NotImplementedError - wenn das Backend die Abfrage der Qubit-Eigenschaften nicht unterstützt
Rückgabetyp
QubitProperties | Liste[ QubitProperties ]
refresh
refresh()
Ruft die neueste Backend-Konfiguration ab und aktualisiert das aktuelle Backend-Ziel.
Rückgabetyp
Keine
run
run(*args, **kwargs)
Einen Job im Backend ausführen.
Erhöht
IBMBackendError - Die Methode run() wird nicht mehr unterstützt.
Parameter
- args (Any)
- kwargs (Any)
Rückgabetyp
Keine
set_options
set_options(**fields)
Einstellen der Optionsfelder für das Backend
Diese Methode wird verwendet, um die Optionen eines Backends zu aktualisieren. Wenn Sie eine der Optionen vor der Ausführung ändern müssen, geben Sie einfach den kwarg mit den neuen Werten für die Optionen ein.
Parameter
fields - Die Felder zur Aktualisierung der Optionen
Erhöht
AttributeError - Wenn das übergebene Feld nicht Teil der Optionen ist
status
status()
Rückgabe des Backend-Status.
Wenn die zurückgegebene Instanz BackendStatus operational=True aber status_msg="internal" hat, dann nimmt das Backend Aufträge an, verarbeitet sie aber nicht.
Rückgabe
Der Status des Backends.
Erhöht
IBMBackendApiProtocolError - Wenn der Status für das Backend nicht richtig formatiert werden kann.
Rückgabetyp
target_history
target_history(datetime=None)
A qiskit.transpiler.Target objekt für das Backend.
Rückgabe
Ziel mit Eigenschaften gefunden auf datetime
Parameter
datetime (python_datetime | None)
Rückgabetyp
Ziel