IBMBackend
class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None, physical_qubits=None)
Bases : BackendV2
Classe backend assurant l'interface avec un backend « IBM Quantum Compute » (anciennement « Qiskit Runtime »).
- Vous ne devez pas instancier directement la classe
IBMBackend. Au lieu de cela, utilisez les méthodes fournies par une instanceQiskitRuntimeServicepour récupérer et gérer les backends.
Cette classe représente un backend d' IBM Quantum Compute. Ses attributs et ses méthodes fournissent des informations sur le backend. Par exemple, la méthode status() renvoie une instance BackendStatus de. L'instance contient les attributs pending_jobs et operational , qui indiquent respectivement si le backend est opérationnel et le nombre de tâches présentes dans la file d'attente du serveur pour ce backend :
status = backend.status()
is_operational = status.operational
jobs_in_queue = status.pending_jobsVoici la liste des attributs disponibles pour la classe IBMBackend :
nom : nom du backend.
backend_version : version du backend sous la forme X.Y.Z.
num_qubits : nombre de qubits.
cible : A
qiskit.transpiler.Targetobjet pour le backend.basis_gates : liste des noms des portes de la base sur le backend.
gates : liste des portes de la base sur le backend.
local : le backend est local ou distant.
simulateur : le backend est un simulateur.
conditionnel : le backend prend en charge les opérations conditionnelles.
open_pulse : le backend prend en charge l'impulsion ouverte.
mémoire : le backend prend en charge la mémoire.
coupling_map (liste) : La carte de couplage pour l'appareil
supported_instructions ( [Liststr] ) : Instructions prises en charge par le backend.
dynamic_reprate_enabled (bool) : si le délai entre les primitives peut être défini dynamiquement (c'est-à-dire via
rep_delay). La valeur par défaut est false.rep_delay_range ( [Listfloat] ) : 2d liste définissant la gamme des délais de répétition pris en charge pour le backend en μs. La première entrée correspond au bas de la fourchette, la seconde au haut de la fourchette. Facultatif, mais sera spécifié à l'adresse
dynamic_reprate_enabled=True.default_rep_delay (float) : Valeur de
rep_delaysi elle n'est pas spécifiée par l'utilisateur etdynamic_reprate_enabled=True.n_uchannels : Nombre de canaux U.
u_channel_lo : Relation U-channel sur l'appareil los.
meas_levels : Niveaux de mesure pris en charge.
qubit_lo_range : Plages Qubit lo pour chaque qubit avec la forme (min, max) en GHz.
meas_lo\range : Plages de mesure lo pour chaque qubit avec la forme (min, max) en GHz.
dt : Pas de temps du canal d'entraînement du Qubit en nanosecondes.
dtm : Pas de temps du canal d'entraînement de la mesure en nanosecondes.
rep_times : Temps de répétition pris en charge (temps d'exécution du programme) pour le backend en μs.
meas_kernels : Noyaux de mesure pris en charge.
discriminateurs : Discriminateurs pris en charge.
hamiltonien : Un dictionnaire optionnel avec des champs caractérisant le hamiltonien du système.
channel_bandwidth (list) : Largeur de bande de tous les canaux (qubit, mesure et U)
acquisition_latency (liste) : Tableau de dimension n_qubits x n_registres. Temps de latence (en unités de dt) pour écrire un résultat de mesure du qubit n dans l'emplacement de registre m.
latence conditionnelle (liste) : Tableau de dimension n_canaux [d->u->m] x n_registres. Temps de latence (en unités de dt) pour effectuer une opération conditionnelle sur le canal n à partir de l'emplacement de registre m
meas_map (liste) : Groupement de mesures qui sont multiplexées
sample_name (str) : Exemple de nom pour le backend
n_registers (int) : Nombre d'emplacements de registre disponibles pour le retour d'information (si la conditionnelle est True)
register_map (list) : Un tableau de dimension n_qubits X n_registres qui spécifie si un qubit peut stocker une mesure dans un certain emplacement de registre.
configurable (bool) : True si le backend est configurable, si le backend est un simulateur
credits_required (bool) : True si le backend exige des crédits pour exécuter un travail.
online_date (datetime) : Date à laquelle l'appareil a été mis en ligne
display_name (str) : Champ de nom alternatif pour le backend
description (str) : Une description du backend
tags (liste) : Une liste de chaînes de caractères pour décrire le backend
version : version de la classe
Backend(Ex : 1, 2)canaux : Un dictionnaire optionnel contenant des informations sur chaque canal - son but, son type et les qubits utilisés.
parametric_pulses (list) : Liste des formes d'impulsions prises en charge par le backend. Par exemple :
['gaussian', 'constant']processor_type (dict) : Type de processeur pour ce backend. Un dictionnaire de la forme
{"family": <str>, "revision": <str>, segment: <str>}tel que{"family": "Canary", "revision": "1.0", segment: "A"}.
- famille : Famille de processeur de ce backend.
- révision : Version de révision de ce processeur.
- segment : Segment auquel appartient ce processeur au sein d'une puce plus grande.
Paramètres
- configuration (QasmBackendConfiguration) – Configuration du backend.
- service (QiskitRuntimeService) – Exemplaire d' QiskitRuntimeService
- api_client (RuntimeClient) – IBM utilisé pour communiquer avec le serveur.
- instance (str | None) – L'instance de service à utiliser.
- calibration_id (str | None) – Un identifiant de calibration optionnel à utiliser pour ce backend
- physical_qubits (int | None) – Le nombre de qubits physiques du backend.
Initialiser un backend basé sur l' BackendV2
Paramètres
- fournisseur – Une référence en amont facultative vers l'objet fournisseur dont provient le backend
- nom – Un nom facultatif pour le backend
- description – Une description facultative du backend
- online_date – Date et heure (facultatives) auxquelles le serveur a été mis en ligne
- backend_version – Chaîne de caractères facultative indiquant la version du backend. Cela diffère de l'attribut
version, carversionconcerne la version de l'interface abstraiteBackendde l'objet, tandis quebackend_versionsert à gérer les versions du backend lui-même. - champs – arguments de clé-valeur permettant de remplacer les options par défaut.
- configuration (QasmBackendConfiguration)
- service (QiskitRuntimeService)
- api_client (RuntimeClient)
- instance (str | None)
- calibration_id (str | None)
- physical_qubits (int | None)
Augmentations
AttributeError – Si un champ est spécifié qui ne figure pas dans les options du backend
Attributs
calibration_id
L'identifiant de calibration utilisé pour ce backend.
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
Renvoie la résolution temporelle système des signaux de sortie.
Retours
Le pas de temps du signal de sortie en secondes.
id_warning_issued
Valeur par défaut : False
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
Renvoie le nombre maximal de circuits pouvant être exécutés dans une seule tâche.
Cette propriété renvoyait auparavant la valeur max_experiments de la configuration du backend, mais cette valeur n'est plus une représentation exacte des limites des circuits du backend. De nouveaux champs seront ajoutés pour indiquer les nouvelles limites.
meas_map
Renvoie le regroupement des mesures 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
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.
physical_qubits
Renvoie le nombre de qubits physiques dont dispose le backend.
Renvoie le nombre de qubits physiques du backend (qubits programmables, qubits de réinitialisation et coupleurs confondus).
provider
Renvoyer le fournisseur d'accès.
Retours
le fournisseur responsable du backend.
Type de retour
fournisseur
service
Renvoie service l'objet.
Retours
Une instance de l' QiskitRuntimeService
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.version, qui est la version de l'interface abstraite Backend .
Méthodes
__call__
__call__()
Renvoie l'instance du backend lorsqu'elle est appelée en tant que fonction.
Type de retour
check_faulty
check_faulty(circuit)
Vérifier si le circuit d'entrée utilise des qubits ou des arêtes défectueux.
Paramètres
circuit (QuantumCircuit) – Circuit à vérifier.
Augmentations
ValueError - Si une instruction opérant sur un qubit ou un bord défectueux est trouvée.
Type de retour
Aucun
configuration
configuration()
Retourne la configuration du backend.
La configuration du backend contient des informations fixes sur le backend, telles que son nom, le nombre de qubits, les portes de base, la carte de couplage, le volume quantique, etc.
Vous trouverez des informations sur la configuration du backend dans l 'API REST « Obtenir la configuration du backend ».
Pour plus de détails sur les propriétés de configuration du backend, voir ici QasmBackendConfiguration.
IBM peuvent également inclure les propriétés suivantes :
-
supported_features: une liste de chaînes de caractères correspondant aux fonctionnalités prises en charge, telles que “qasm3” pourprise en charge des circuits dynamiques.
-
parallel_compilation: un booléen indiquant si le backend peut ou non traiter plusieursemplois en même temps. Certaines parties du calcul classique seront parallélisées.
Retours
La configuration du backend.
Type de retour
get_translation_stage_plugin
get_translation_stage_plugin()
Retourne le nom du plugin d'étape de traduction par défaut pour les backends IBM.
Type de retour
str
properties
properties(refresh=False, datetime=None)
Renvoie les propriétés du backend, sujettes à un filtrage optionnel.
Ces données décrivent les propriétés des qubits (telles que T1 et T2 ), les propriétés des portes (telles que la longueur de la porte et l'erreur) et d'autres propriétés générales du backend.
Vous trouverez des informations sur les propriétés du backend dans l 'API REST Get backend configuration.
Paramètres
- refresh (bool) – Si
True, demander à nouveau au serveur les propriétés du backend. Sinon, il renvoie une version mise en cache. - datetime (python_datetime | None) – En spécifiant une date-heure, cette fonction renvoie une instance de l'objet
BackendPropertiesdont l'horodatage est le plus proche de la date-heure spécifiée, tout en étant antérieur à celle-ci.
Retours
Les propriétés du backend ou None si les propriétés du backend ne sont pas disponibles actuellement.
Augmentations
- TypeError - Si un argument d'entrée n'est pas du bon type.
- NotImplementedError – Si une date-heure est spécifiée lors de l'utilisation de la fonction
IBM Quantum Compute.
Type de retour
BackendProperties | Aucun
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, cette méthode n'a pas besoin d'être mise en œuvre.
Paramètres
qubit (int | list[int]) – Le qubit destiné à récupérer l'objet QubitProperties . 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 ]
refresh
refresh()
Récupère la dernière configuration du backend et actualise la cible actuelle du backend.
Type de retour
Aucun
run
run(*args, **kwargs)
Exécuter une tâche en arrière-plan.
Augmentations
IBMBackendError - La méthode run() n'est plus prise en charge.
Type de retour
Aucun
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
status
status()
Renvoie le statut du backend.
Si l'instance BackendStatus renvoyée contient operational=True mais pas status_msg="internal", le backend accepte des travaux mais ne les traite pas.
Retours
Le statut du backend.
Augmentations
IBMBackendApiProtocolError - Si le statut du backend ne peut pas être formaté correctement.
Type de retour
target_history
target_history(datetime=None)
A qiskit.transpiler.Target objet pour le backend.
Retours
Cible avec les propriétés trouvées sur datetime
Paramètres
datetime (python_datetime | None)
Type de retour
cible