BackendV2
class qiskit.providers.BackendV2(provider=None, name=None, description=None, online_date=None, backend_version=None, **fields)
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()
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
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
versionl'attribut, carversionconcerne la version de l'interfaceBackendabstraite de l'objet, tandis quebackend_versionsert à 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
target
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)
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
run
abstractmethod run(run_input, **options)
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
QuantumCircuitd'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
set_options
set_options(**fields)
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