IBMBackend
class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None, physical_qubits=None)
Basi: BackendV2
Classe backend che si interfaccia con un backend IBM Quantum Compute (precedentemente Qiskit Runtime ).
- Non si deve istanziare direttamente la classe
IBMBackend. Invece, utilizzare i metodi forniti da un'istanzaQiskitRuntimeServiceper 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_jobsEcco 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.Targetper 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_delayse non specificato dall'utente edynamic_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éversionsi riferisce alla versione dell'interfaccia astrattaBackenddell'oggetto, mentrebackend_versionserve 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
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__()
Restituisce l'istanza del backend quando viene chiamata come funzione.
Tipo di restituzione
check_faulty
check_faulty(circuit)
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()
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” persupporto 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
get_translation_stage_plugin
get_translation_stage_plugin()
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)
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
BackendPropertiescui 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()
Recupera la configurazione più recente del backend e aggiorna il target del backend corrente.
Tipo di restituzione
Nessuna
run
run(*args, **kwargs)
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()
Restituisce lo stato del backend.
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
target_history
target_history(datetime=None)
A qiskit.transpiler.Target per il backend.
Risultati
Obiettivo con proprietà trovate su datetime
Parametri
datetime (python_datetime | None)
Tipo di restituzione
Destinazione