Skip to main content
IBM Quantum Platform

BackendV2

class qiskit.providers.BackendV2(provider=None, name=None, description=None, online_date=None, backend_version=None, **fields)

GitHub

Bases : Backend, ABC

Classe abstraite pour les backends

Cette classe abstraite doit être utilisée pour tous les objets Backend créés par un fournisseur. Cette version diffère des classes de backend abstraites précédentes en ce sens que l'attribut de configuration n'existe plus. Au lieu de cela, des attributs exposant les propriétés immuables requises équivalentes de l'appareil dorsal sont ajoutés. Par exemple, backend.configuration().n_qubits est désormais accessible depuis backend.num_qubits .

L'attribut options du backend est utilisé pour contenir les options dynamiques configurables par l'utilisateur du backend. Il devrait être utilisé davantage pour les options d'exécution qui configurent la manière dont le backend est utilisé. Par exemple, quelque chose comme un champ shots pour un backend qui exécute des expériences, qui contiendrait un int pour le nombre de tirs à exécuter.

Un objet backend peut, s'il le souhaite, contenir des méthodes nommées get_translation_stage_plugin et get_scheduling_stage_plugin. Si ces méthodes sont présentes sur un objet backend et que cet objet est utilisé pour transpile() ou generate_preset_pass_manager() , le processus de transpilation utilisera par défaut le résultat de ces méthodes pour les étapes de planification et de compilation-traduction. Cela permet à un backend ayant des exigences spécifiques en matière de compilation de spécifier un plugin de phase pour ces phases, afin de permettre une transformation personnalisée du circuit et de garantir ainsi son exécution sur le backend. Ces hooks sont activés par défaut et ne doivent être utilisés que pour activer des étapes de compilation supplémentaires si celles-ci sont nécessaires pour garantir qu'un circuit soit exécutable sur le backend ou qu'il atteigne le niveau de performance attendu. Ces méthodes ne reçoivent aucun argument d'entrée et doivent renvoyer un str représentant le nom de la méthode, qui doit être un plugin de stage (voir : qiskit.transpiler.preset_passmanagers.plugin pour plus de détails sur les plugins). Le cas d'utilisation typique consiste pour un fournisseur de backend à implémenter un plugin de phase pour translation ou scheduling contenant les passes de compilation personnalisées, puis pour que les méthodes de hook de l'objet backend renvoient le nom du plugin, afin que transpile() l'utilise par défaut lors du ciblage du backend.

Les sous-classes de cette méthode doivent surcharger la méthode publique run() et la méthode interne _default_options():

_default_options

abstractmethod classmethod _default_options()

GitHub

Retourner les options par défaut

Cette méthode renvoie un objet qiskit.providers.Options qui sera utilisé pour les options par défaut. Il s'agit des paramètres par défaut à utiliser pour les options du backend.

Retours

Un objet d'options avec

valeurs par défaut définies

Type de retour

qiskit.providers.Options

Initialiser un backend basé sur BackendV2

Paramètres

  • provider - Une référence optionnelle à l'objet provider dont le backend est issu
  • name (str | None) – Un nom facultatif pour le backend
  • description (str | None) – Une description facultative du backend
  • online_date (datetime | None) – Une date et une heure facultatives indiquant la mise en service du serveur
  • backend_version (str | None) – Une chaîne de version du backend facultative. Cela diffère de version l'attribut, car version concerne la version de l'interface Backend abstraite de l'objet, tandis que backend_version sert à gérer les versions du backend lui-même.
  • fields - kwargs pour les valeurs à utiliser pour remplacer les options par défaut.

Augmentations

AttributeError - Si un champ est spécifié en dehors des options du backend


Attributs

coupling_map

Renvoyer l CouplingMap objet

dt

Renvoi de la résolution temporelle du système des signaux d'entrée

Cette fonction doit être mise en œuvre si le backend prend en charge la planification de Pulse.

Retours

Le pas de temps du signal d'entrée en secondes. Si le backend ne définit pas dt, None sera renvoyé.

dtm

Renvoi de la résolution temporelle du système des signaux de sortie

Retours

Le pas de temps du signal de sortie en secondes.

Augmentations

NotImplementedError - si le backend ne permet pas d'interroger le signal de sortie timetep

instruction_durations

Renvoyer l'objet InstructionDurations objet.

instructions

Une liste de tuples d'instructions dans la partie arrière du formulaire (instruction, (qubits))

max_circuits

Nombre maximum de circuits pouvant être exécutés en un seul travail.

S'il n'y a pas de limite, le résultat est nul

meas_map

Retourne le regroupement des mesures qui sont multiplexées

Cette fonction doit être mise en œuvre si le backend prend en charge la planification de Pulse.

Retours

Le regroupement des mesures qui sont multiplexées

Augmentations

NotImplementedError - si le backend ne permet pas d'interroger la cartographie des mesures

num_qubits

Retourne le nombre de qubits que possède le backend.

operation_names

Une liste de noms d'instructions prises en charge par le backend.

operations

Une liste d'instances Instruction instances prises en charge par le backend.

options

Retourne les options pour le backend

Les options d'un backend sont les paramètres dynamiques qui définissent la manière dont le backend est utilisé. Ceux-ci sont utilisés pour contrôler la run() méthode.

provider

Renvoyer le fournisseur d'accès.

Retours

le fournisseur responsable du backend.

Type de retour

fournisseur

target

A qiskit.transpiler.Target objet pour le backend.

Type de retour

Cible

version

Valeur par défaut : 2

name

Nom du backend.

description

Description facultative lisible par l'homme.

online_date

Date à laquelle le backend a été mis en ligne.

backend_version

Version du backend fournie. Ce n'est pas la même chose que BackendV2.versionqui est la version de l'interface abstraite Backend interface abstraite.


Méthodes

qubit_properties

qubit_properties(qubit)

GitHub

Retourne QubitProperties pour un qubit donné.

Si aucun détail n'est défini ou si le backend ne permet pas d'interroger ces détails, il n'est pas nécessaire de mettre en œuvre cette méthode.

Paramètres

qubit (int |list[int]) – Le qubit destiné à récupérer QubitProperties l'objet. Il peut s'agir d'un simple entier pour 1 qubit ou d'une liste de qubits; une liste QubitProperties d'objets sera renvoyée dans le même ordre

Retours

L'objet QubitProperties pour le qubit spécifié. Si une liste de qubits est fournie, une liste sera renvoyée. Si des propriétés sont manquantes pour un qubit, cela peut être None.

Augmentations

NotImplementedError - si le backend ne permet pas d'interroger les propriétés des qubits

Type de retour

QubitProperties | liste [ QubitProperties ]

run

abstractmethod run(run_input, **options)

GitHub

Exécuter sur le backend.

Cette méthode renvoie un objet Job qui exécute les circuits. Selon le backend, il peut s'agir d'un appel asynchrone ou synchrone. Il appartient au fournisseur de décider si l'exécution doit être bloquée jusqu'à ce qu'elle soit terminée ou non : la classe Job peut gérer l'une ou l'autre de ces situations.

Paramètres

  • run_input (QuantumCircuit orlist) – Un élément ou une liste QuantumCircuit d'objets à exécuter sur le backend.
  • options - Toutes les options kwarg à passer au backend pour exécuter la configuration. Si une clé est également présente dans l'attribut/objet options, on s'attend à ce que la valeur spécifiée soit utilisée à la place de celle définie dans l'objet options.

Retours

L'objet du travail pour l'exécution

Type de retour

tâche planifiée

set_options

set_options(**fields)

GitHub

Définir les champs d'options pour le backend

Cette méthode est utilisée pour mettre à jour les options d'un backend. Si vous devez modifier l'une des options avant l'exécution, il vous suffit de passer le kwarg avec la nouvelle valeur des options.

Paramètres

champs - Les champs pour mettre à jour les options

Augmentations

AttributeError - Si le champ transmis ne fait pas partie des options

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.