Skip to main content
IBM Quantum Platform

IBMBackend

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

GitHub

Bases : BackendV2

Classe backend assurant l'interface avec un backend « IBM Quantum Compute » (anciennement « Qiskit Runtime »).

Remarque
  • Vous ne devez pas instancier directement la classe IBMBackend . Au lieu de cela, utilisez les méthodes fournies par une instance QiskitRuntimeService pour 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_jobs

Voici 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.Target objet 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_delay si elle n'est pas spécifiée par l'utilisateur et dynamic_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 , car version concerne la version de l'interface abstraite Backend de l'objet, tandis que backend_version sert à 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

A qiskit.transpiler.Target objet pour le backend.

Retours

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.version, qui est la version de l'interface abstraite Backend .


Méthodes

__call__

__call__()

GitHub

Renvoie l'instance du backend lorsqu'elle est appelée en tant que fonction.

Type de retour

IBMBackend

check_faulty

check_faulty(circuit)

GitHub

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

GitHub

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” pour

    prise en charge des circuits dynamiques.

  • parallel_compilation: un booléen indiquant si le backend peut ou non traiter plusieurs

    emplois en même temps. Certaines parties du calcul classique seront parallélisées.

Retours

La configuration du backend.

Type de retour

QasmBackendConfiguration

get_translation_stage_plugin

get_translation_stage_plugin()

GitHub

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)

GitHub

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

GitHub

Récupère la dernière configuration du backend et actualise la cible actuelle du backend.

Type de retour

Aucun

run

run(*args, **kwargs)

GitHub

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

GitHub

Renvoie le statut du backend.

Remarque

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

BackendStatus

target_history

target_history(datetime=None)

GitHub

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

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