Skip to main content
IBM Quantum Platform

IBMBackend

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

GitHub

Basi: BackendV2

Classe backend che si interfaccia con un backend IBM Quantum Compute (precedentemente Qiskit Runtime ).

Nota
  • Non si deve istanziare direttamente la classe IBMBackend . Invece, utilizzare i metodi forniti da un'istanza QiskitRuntimeService per recuperare e gestire i backend.

Questa classe rappresenta un backend di IBM Quantum Compute. I suoi attributi e metodi forniscono informazioni sul backend. Ad esempio, il metodo status() restituisce un'istanza BackendStatus . L'istanza contiene gli attributi pending_jobs e operational , che indicano rispettivamente se il backend è operativo e il numero di lavori presenti nella coda del server per quel backend:

status = backend.status()
is_operational = status.operational
jobs_in_queue = status.pending_jobs

Ecco l'elenco degli attributi disponibili per la classe IBMBackend :

  • nome: nome del backend.

  • backend_version: versione del backend nella forma X.Y.Z.

  • num_qubit: numero di qubit.

  • obiettivo: A qiskit.transpiler.Target per il backend.

  • cancelli_base: elenco dei nomi dei cancelli base sul backend.

  • cancelli: elenco dei cancelli di base del backend.

  • local: il backend è locale o remoto.

  • simulatore: il backend è un simulatore.

  • conditional: il backend supporta le operazioni condizionali.

  • open_pulse: il backend supporta l'open pulse.

  • memoria: il backend supporta la memoria.

  • mappa di accoppiamento (elenco): La mappa di accoppiamento per il dispositivo

  • istruzioni supportate ( [Liststr] ): Istruzioni supportate dal backend.

  • dynamic_reprate_enabled (bool): se il ritardo tra le primitive può essere impostato dinamicamente (cioè tramite rep_delay). Il valore predefinito è false.

  • rep_delay_range ( [Listfloat] ): 2d elenco che definisce l'intervallo di ritardi di ripetizione supportati per il backend in μs. La prima voce corrisponde all'estremità inferiore dell'intervallo, la seconda all'estremità superiore dell'intervallo. Opzionale, ma sarà specificato quando dynamic_reprate_enabled=True.

  • default_rep_delay (float): Valore di rep_delay se non specificato dall'utente e dynamic_reprate_enabled=True.

  • n_canali: Numero di canali u.

  • u_channel_lo: Relazione canale U su dispositivo los.

  • livelli di misura: Livelli di misura supportati.

  • qubit_lo_range: Intervalli Qubit Lo per ciascun qubit con forma (min, max) in GHz.

  • intervallo_di_misura_lo: Intervalli di misura lo per ciascun qubit con forma (min, max) in GHz.

  • dt: Tempo del canale di pilotaggio del Qubit in nanosecondi.

  • dtm: Passo temporale del canale di misura in nanosecondi.

  • tempi di ripetizione: Tempi di ripetizione supportati (tempo di esecuzione del programma) per il backend in μs.

  • meas_kernels: Kernel di misura supportati.

  • discriminatori: Discriminatori supportati.

  • hamiltoniano: Un dizionario opzionale con campi che caratterizzano l'hamiltoniana del sistema.

  • larghezza di banda del canale (elenco): Larghezza di banda di tutti i canali (qubit, misura e U)

  • acquisizione_latenza (elenco): Array di dimensione n_qubit x n_registri. Latenza (in unità di dt) per scrivere un risultato di misura dal qubit n nello slot del registro m.

  • condizionale_latenza (elenco): Array di dimensione n_canali [d->u->m] x n_registri. Latenza (in unità di dt) per eseguire un'operazione condizionale sul canale n dallo slot di registro m

  • meas_map (elenco): Raggruppamento di misure che sono multiplexate

  • nome_campione (str): Nome di esempio per il backend

  • n_registri (int): Numero di slot di registro disponibili per il feedback (se il condizionale è Vero)

  • register_map (elenco): Un array di dimensione n_qubit X n_registri che specifica se un qubit può memorizzare una misura in un certo slot di registro.

  • configurable (bool): Vero se il backend è configurabile, se il backend è un simulatore

  • credits_required (bool): Vero se il backend richiede crediti per eseguire un lavoro.

  • online_date (datetime): La data in cui il dispositivo è stato messo online

  • display_name (str): Campo del nome alternativo per il backend

  • descrizione (str): Una descrizione per il backend

  • tags (elenco): Un elenco di stringhe di tag per descrivere il backend

  • version: versione della classe Backend (Es: 1, 2)

  • canali: Un dizionario opzionale contenente informazioni su ciascun canale: scopo, tipo e qubit gestiti.

  • impulsi parametrici (elenco): Un elenco di forme di impulso supportate dal backend. Ad esempio: ['gaussian', 'constant']

  • processor_type (dict): Tipo di processore per questo backend. Un dizionario della forma {"family": <str>, "revision": <str>, segment: <str>} come {"family": "Canary", "revision": "1.0", segment: "A"}.

    • famiglia: Famiglia di processori di questo backend.
    • revisione: Versione della revisione di questo processore.
    • segmento: Segmento a cui appartiene questo processore all'interno di un chip più grande.

Parametri

  • configuration (QasmBackendConfiguration) – Configurazione del backend.
  • service (QiskitRuntimeService) – Istanza di QiskitRuntimeService.
  • api_client (RuntimeClient) – IBM client utilizzato per comunicare con il server.
  • instance (str | None) – L'istanza del servizio da utilizzare.
  • calibration_id (str | None) – Un id di calibrazione opzionale da utilizzare per questo backend
  • physical_qubits (int | None) – Il numero di qubit fisici del backend.

Inizializza un backend basato su BackendV2

Parametri

  • provider – Un riferimento a ritroso facoltativo all'oggetto provider a cui appartiene il backend
  • nome – Un nome facoltativo per il backend
  • descrizione – Una descrizione facoltativa del backend
  • online_date – Data e ora (facoltative) in cui il backend è stato messo online
  • backend_version – Una stringa facoltativa che indica la versione del backend. Ciò differisce dall'attributo version , poiché version si riferisce alla versione dell'interfaccia astratta Backend dell'oggetto, mentre backend_version serve a gestire il versioning del backend stesso.
  • campi – argomenti per i valori da utilizzare per sovrascrivere le opzioni predefinite.
  • configuration (QasmBackendConfiguration)
  • service (QiskitRuntimeService)
  • api_client (RuntimeClient)
  • instance (str | None)
  • calibration_id (str | None)
  • physical_qubits (int | None)

Aumenti

AttributeError – Se viene specificato un campo che non rientra nelle opzioni del backend


Attributi

calibration_id

L'id di calibrazione utilizzato per questo backend.

coupling_map

Restituire l'oggetto CouplingMap oggetto

dt

Restituzione della risoluzione temporale del sistema dei segnali di ingresso

È necessario implementare questa funzione se il backend supporta la programmazione degli impulsi.

Risultati

Il passo temporale del segnale di ingresso in secondi. Se il backend non definisce dt, verrà restituito None .

dtm

Restituisce la risoluzione temporale di sistema dei segnali in uscita.

Risultati

Il passo temporale del segnale di uscita in secondi.

id_warning_issued

Valore predefinito: False

instruction_durations

Restituire l'oggetto InstructionDurations oggetto.

instructions

Un elenco di tuple di istruzioni nel backend del modulo (instruction, (qubits))

max_circuits

Restituisce il numero massimo di circuiti che possono essere eseguiti in un singolo processo.

Questa proprietà restituiva il valore max_experiments dalla configurazione del backend, ma questo valore non è più una rappresentazione accurata dei limiti del circuito del backend. Verranno aggiunti nuovi campi per indicare i nuovi limiti.

meas_map

Restituisce il raggruppamento delle misurazioni multiplexate.

È necessario implementare questa funzione se il backend supporta la programmazione degli impulsi.

Risultati

Il raggruppamento delle misure che vengono multiplexate

num_qubits

Restituisce il numero di qubit di cui dispone il backend.

operation_names

Un elenco di nomi di istruzioni supportate dal backend.

operations

Un elenco di Instruction che il backend supporta.

options

Restituisce le opzioni per il backend

Le opzioni di un backend sono i parametri dinamici che definiscono le modalità di utilizzo del backend. Questi vengono utilizzati per controllare il run() metodo.

physical_qubits

Restituisce il numero di qubit fisici presenti nel backend.

Restituisce il numero di qubit fisici del backend (qubit programmabili, qubit di reset e accoppiatori considerati complessivamente).

provider

Restituisce il fornitore di backend.

Risultati

il provider responsabile del backend.

Tipo di restituzione

provider

service

Restituisce service l'oggetto.

Risultati

Un'istanza di QiskitRuntimeService

target

A qiskit.transpiler.Target per il backend.

Risultati

Destinazione

version

Valore predefinito: 2

name

Nome del backend.

description

Descrizione facoltativa leggibile dall'uomo.

online_date

Data in cui il backend è stato messo online.

backend_version

Versione del backend fornito. Non è la stessa cosa di BackendV2.version, che è la versione dell'interfaccia astratta Backend .


Metodi

__call__

__call__()

GitHub

Restituisce l'istanza del backend quando viene chiamata come funzione.

Tipo di restituzione

IBMBackend

check_faulty

check_faulty(circuit)

GitHub

Verificare se il circuito di ingresso utilizza qubit o edge difettosi.

Parametri

circuit (QuantumCircuit) – Circuito da controllare.

Aumenti

ValueError - Se viene trovata un'istruzione che opera su un qubit o un edge difettoso.

Tipo di restituzione

Nessuna

configuration

configuration()

GitHub

Restituisce la configurazione del backend.

La configurazione del backend contiene informazioni fisse sul backend, come il nome, il numero di qubit, le porte di base, la mappa di accoppiamento, il volume quantico, ecc.

Le informazioni sulla configurazione del backend sono disponibili nell'API REST Ottieni configurazione backend.

Ulteriori dettagli sulle proprietà di configurazione del backend sono disponibili qui QasmBackendConfiguration.

IBM possono includere anche le seguenti proprietà:

  • supported_features: un elenco di stringhe che indicano le funzionalità supportate, come “qasm3” per

    supporto dei circuiti dinamici.

  • parallel_compilation: un booleano che indica se il backend è in grado o meno di elaborare più

    lavori in una volta sola. Alcune parti del calcolo classico saranno parallelizzate.

Risultati

La configurazione del backend.

Tipo di restituzione

QasmBackendConfiguration

get_translation_stage_plugin

get_translation_stage_plugin()

GitHub

Restituisce il nome predefinito del plugin dello stage di traduzione per i backend di IBM.

Tipo di restituzione

STR

properties

properties(refresh=False, datetime=None)

GitHub

Restituisce le proprietà del backend, soggette a un filtro opzionale.

Questi dati descrivono le proprietà dei qubit (come T1 e T2 ), le proprietà delle porte (come la lunghezza della porta e l'errore) e altre proprietà generali del backend.

Le informazioni sulle proprietà del backend sono disponibili nell'API REST Ottieni configurazione backend.

Parametri

  • refresh (bool) – Se True, interrogare nuovamente il server per le proprietà del backend. Altrimenti, restituisce una versione memorizzata nella cache.
  • datetime (python_datetime | None) – Se si specifica una data e un'ora, questa funzione restituisce un'istanza di il BackendProperties cui timestamp è il più vicino possibile, pur rimanendo precedente, alla data e all'ora specificate.

Risultati

Le proprietà del backend o None se le proprietà del backend non sono attualmente disponibili.

Aumenti

  • TypeError - Se un argomento in ingresso non è del tipo corretto.
  • NotImplementedError – Se viene specificata la data e l'ora quando si utilizza IBM Quantum Compute.

Tipo di restituzione

BackendProperties | Nessuno

qubit_properties

qubit_properties(qubit)

Restituisce QubitProperties per un dato qubit.

Se non sono stati definiti o se il backend non supporta l'interrogazione di questi dettagli, questo metodo non deve essere implementato.

Parametri

qubit (int | list[int]) – Il qubit per cui si desidera ottenere l'oggetto QubitProperties . Può trattarsi di un singolo numero intero corrispondente a 1 qubit oppure di un elenco di qubit; verrà restituito un elenco di QubitProperties oggetti nello stesso ordine

Risultati

L'oggetto QubitProperties per il qubit specificato. Se viene fornito un elenco di qubit, verrà restituito un elenco. Se mancano delle proprietà per un qubit, questo può essere None.

Aumenti

NotImplementedError - se il backend non supporta l'interrogazione delle proprietà dei qubit

Tipo di restituzione

QubitProperties | elenco[ QubitProperties ]

refresh

refresh()

GitHub

Recupera la configurazione più recente del backend e aggiorna il target del backend corrente.

Tipo di restituzione

Nessuna

run

run(*args, **kwargs)

GitHub

Esegui un processo nel backend.

Aumenti

IBMBackendError - Il metodo run() non è più supportato.

Tipo di restituzione

Nessuna

set_options

set_options(**fields)

Impostare i campi delle opzioni per il backend

Questo metodo viene utilizzato per aggiornare le opzioni di un backend. Se è necessario modificare una qualsiasi opzione prima dell'esecuzione, è sufficiente passare il kwarg con il nuovo valore delle opzioni.

Parametri

campi - I campi per aggiornare le opzioni

Aumenti

AttributeError - Se il campo passato non fa parte delle opzioni

status

status()

GitHub

Restituisce lo stato del backend.

Nota

Se l'istanza BackendStatus restituita ha operational=True ma status_msg="internal", allora il backend sta accettando lavori ma non li sta elaborando.

Risultati

Lo stato del backend.

Aumenti

IBMBackendApiProtocolError - Se lo stato del backend non può essere formattato correttamente.

Tipo di restituzione

BackendStatus

target_history

target_history(datetime=None)

GitHub

A qiskit.transpiler.Target per il backend.

Risultati

Obiettivo con proprietà trovate su datetime

Parametri

datetime (python_datetime | None)

Tipo di restituzione

Destinazione

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.