BackendV2
class qiskit.providers.BackendV2(provider=None, name=None, description=None, online_date=None, backend_version=None, **fields)
Abstrakte Klasse für Backends
Diese abstrakte Klasse ist für alle Backend-Objekte zu verwenden, die von einem Anbieter erstellt werden. Diese Version unterscheidet sich von früheren abstrakten Backend-Klassen dadurch, dass das Konfigurationsattribut nicht mehr existiert. Stattdessen werden Attribute hinzugefügt, die äquivalente erforderliche unveränderliche Eigenschaften des Backend-Geräts darstellen. Zum Beispiel ist backend.configuration().n_qubits jetzt über backend.num_qubits erreichbar.
Das Attribut options des Backends wird verwendet, um die dynamischen, vom Benutzer konfigurierbaren Optionen des Backends zu enthalten. Sie sollte eher für Laufzeitoptionen verwendet werden, die die Verwendung des Backends konfigurieren. Zum Beispiel so etwas wie ein shots Feld für ein Backend, das Experimente durchführt, das eine int für die Anzahl der auszuführenden Schüsse enthalten würde.
get_scheduling_stage_pluginEin Backend-Objekt kann optional Methoden mit den Namen get_translation_stage_plugin und enthalten. Wenn diese Methoden in einem Backend-Objekt vorhanden sind und dieses Objekt für transpile() oder generate_preset_pass_manager() verwendet wird, greift der Transpilierungsprozess standardmäßig auf die Ausgabe dieser Methoden für die Planungs- und die Übersetzungs- bzw. Kompilierungsphase zurück. Dadurch kann ein Backend, das spezielle Anforderungen an die Kompilierung stellt, für diese Phasen ein Phasen-Plugin festlegen, um eine benutzerdefinierte Transformation der Schaltung zu ermöglichen und sicherzustellen, dass diese auf dem Backend ausgeführt werden kann. Diese Hooks sind standardmäßig aktiviert und sollten nur verwendet werden, um zusätzliche Kompilierungsschritte zu aktivieren, wenn diese erforderlich sind, um sicherzustellen, dass eine Schaltung auf dem Backend ausführbar ist oder das erwartete Leistungsniveau erreicht. Diesen Methoden werden keine Eingabeargumente übergeben, und es wird erwartet, dass sie einen str Wert zurückgeben, der den Methodennamen darstellt, bei dem es sich um ein Stage-Plugin handeln sollte (siehe: qiskit.transpiler.preset_passmanagers.plugin für weitere Details zu Plugins). Der typische Anwendungsfall ist, dass ein Backend-Anbieter ein Stage-Plugin für translation oder scheduling implementiert, das die benutzerdefinierten Kompilierungsschritte enthält, und dass die Hook-Methoden des Backend-Objekts anschließend den Namen des Plugins zurückgeben, sodass transpile() dieses standardmäßig verwendet, wenn das Backend als Ziel ausgewählt wird.
Unterklassen davon sollten die öffentliche Methode run() und die interne Methode _default_options():
_default_options
abstractmethod classmethod _default_options()
Rückgabe der Standardoptionen
Diese Methode gibt ein qiskit.providers.Options unterklassenobjekt zurück, das für die Standardoptionen verwendet wird. Dies sollten die Standardparameter sein, die für die Optionen des Backends verwendet werden.
Rückgabe
Ein Optionsobjekt mit
eingestellte Standardwerte
Rückgabetyp
Initialisieren eines BackendV2 basierten Backends
Parameter
- provider - Ein optionaler Rückverweis auf das Provider-Objekt, von dem das Backend stammt
- name (str | None) – Ein optionaler Name für das Backend
- description (str | None) – Eine optionale Beschreibung des Backends
- online_date (datetime | None) – Ein optionales Datums- und Zeitangabe, zu der das Backend in Betrieb genommen wurde
- backend_version (str | None) – Eine optionale Zeichenfolge für die Backend-Version. Dies unterscheidet sich vom Attribut
version, da für die abstrakteversionBackendSchnittstellenversion des Objekts steht, während der Versionierung desbackend_versionBackends selbst dient. - fields - kwargs für die Werte, die verwendet werden sollen, um die Standardoptionen außer Kraft zu setzen.
Erhöht
AttributeError - Wenn ein Feld angegeben wird, das nicht in den Optionen des Backends enthalten ist
Attribute
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
Rückgabe der Systemzeitauflösung der Ausgangssignale
Rückgabe
Der Zeitschritt des Ausgangssignals in Sekunden.
Erhöht
NotImplementedError - wenn das Backend die Abfrage des Zeitschrittes des Ausgangssignals nicht unterstützt
instruction_durations
Geben Sie das InstructionDurations objekt.
instructions
Eine Liste von Befehlstupeln auf der Backend-Seite des Formulars (instruction, (qubits))
max_circuits
Die maximale Anzahl von Schaltkreisen, die in einem einzigen Auftrag ausgeführt werden können.
Wenn es kein Limit gibt, wird None zurückgegeben
meas_map
Rückgabe der Gruppierung von Messungen, die gemultiplext sind
Dies ist erforderlich, wenn das Backend die Impulsplanung unterstützt.
Rückgabe
Die Gruppierung von Messungen, die gemultiplext werden
Erhöht
NotImplementedError - wenn das Backend die Abfrage der Messungszuordnung nicht unterstützt
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.
provider
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.versiondie die Version der Backend abstrakten Schnittstelle ist.
Methoden
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
run
abstractmethod run(run_input, **options)
Wird im Backend ausgeführt.
Diese Methode gibt ein Job objekt zurück, das Schaltungen ausführt. Je nach Backend kann dies entweder ein asynchroner oder ein synchroner Aufruf sein. Es liegt im Ermessen des Anbieters zu entscheiden, ob die Ausführung blockiert werden soll, bis die Ausführung beendet ist oder nicht: Die Klasse Job kann mit beiden Situationen umgehen.
Parameter
- run_input (QuantumCircuit orlist) – Ein einzelnes Objekt oder eine Liste von
QuantumCircuitObjekten, die im Backend ausgeführt werden sollen. - options - Beliebige kwarg-Optionen, die an das Backend zur Ausführung der Konfiguration übergeben werden. Wenn ein Schlüssel auch im Options-Attribut/Objekt vorhanden ist, wird erwartet, dass der angegebene Wert anstelle des im Options-Objekt eingestellten Wertes verwendet wird.
Rückgabe
Das Auftragsobjekt für den Lauf
Rückgabetyp
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