Skip to main content
IBM Quantum Platform

IBMBackend

class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None, physical_qubits=None)

GitHub

Basen: BackendV2

Backend-Klasse, die eine Schnittstelle zu einem „ IBM Quantum Compute “-Backend (früher „ Qiskit Runtime “) bildet.

Anmerkung
  • Sie sollten die Klasse IBMBackend nicht direkt instanziieren. Verwenden Sie stattdessen die Methoden, die von einer QiskitRuntimeService instanz 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_jobs

Es 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.Target objekt 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_delay Sekunden, falls vom Benutzer nicht anders angegeben und dynamic_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 , da version für die abstrakte Backend Schnittstellenversion des Objekts steht, während backend_version der 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

A qiskit.transpiler.Target objekt für das Backend.

Rückgabe

Ziel

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__

__call__()

GitHub

Gibt die Backend-Instanz zurück, wenn die Funktion aufgerufen wird.

Rückgabetyp

IBMBackend

check_faulty

check_faulty(circuit)

GitHub

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

GitHub

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ür

    Unterstützung dynamischer Schaltkreise.

  • parallel_compilation: ein Boolescher Wert, der angibt, ob das Backend mehrere Daten verarbeiten kann oder nicht

    sofort zu erledigen. Teile des klassischen Rechenvorgangs werden parallelisiert.

Rückgabe

Die Konfiguration für das Backend.

Rückgabetyp

QasmBackendConfiguration

get_translation_stage_plugin

get_translation_stage_plugin()

GitHub

Rückgabe des Standard-Plugin-Namens der Übersetzungsstufe für IBM Backends.

Rückgabetyp

str

properties

properties(refresh=False, datetime=None)

GitHub

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 BackendProperties zurü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()

GitHub

Ruft die neueste Backend-Konfiguration ab und aktualisiert das aktuelle Backend-Ziel.

Rückgabetyp

Keine

run

run(*args, **kwargs)

GitHub

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

GitHub

Rückgabe des Backend-Status.

Anmerkung

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

BackendStatus

target_history

target_history(datetime=None)

GitHub

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

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.