QiskitRuntimeService
class QiskitRuntimeService(*args, **kwargs)
Basi: object
Classe per interagire con il servizio IBM Quantum Compute (precedentemente Qiskit Runtime ).
Usi consigliati:
-
Istanziazione diretta:
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService( channel="ibm_quantum_platform", # optional token="API_KEY", instance="CRN" # recommended ) -
Salvataggio dell'account predefinito:
from qiskit_ibm_runtime import QiskitRuntimeService QiskitRuntimeService.save_account( token="API_KEY", instance="CRN", set_as_default = True ) service = QiskitRuntimeService()
L'informazione minima richiesta per l'autenticazione del servizio su un canale non locale è token. Il canale local non richiede l'autenticazione. Per i canali non locali, si raccomanda di fornire sempre il relativo instance per ridurre al minimo le chiamate API. Se non viene definito un instance , il servizio recupera tutte le istanze accessibili all'interno dell'account, filtrate da region, plans_preference e tags. Se plans_preference non è impostato, le istanze gratuite e di prova avranno la priorità su quelle a pagamento.
Quando si utilizzano più istanze, QiskitRuntimeService il sistema gestirà internamente quale istanza è attiva in un dato momento. Metodi quali backend(), backends(), job() e jobs() possono comportare la modifica dell'istanza attiva. Si consiglia di utilizzare il active_instance() metodo per verificare quale istanza sia attiva, oppure di utilizzare un oggetto separato QiskitRuntimeService per ciascuna istanza per un controllo più preciso.
Si noti inoltre che è possibile utilizzare un solo account per ogni token API. Il token API è collegato all'account in cui è stato creato. Se si desidera utilizzare più account, è necessario creare più token API.
Il servizio tenterà di caricare un conto da file se (a) non è stato fornito un token esplicito durante l'istanziazione o (b) è stato specificato un name , anche se è stato fornito un token esplicito al costruttore del servizio. Il conto verrà selezionato in base ai seguenti criteri:
-
Se viene specificato un
filename, i dettagli dell'account verranno caricati dafilename,altrimenti verranno caricati dal file di configurazione predefinito.
-
Se viene specificato un
name, i dettagli del conto corrispondente verranno caricati dail file di configurazione, inclusi
channel,token,instance,regionplans_preference,, e i parametri di configurazione avanzati:url,url_resolver,private_endpoint,verify, eproxies.instanceNota importante : un valore esplicitoinstancespecificato durante l'istanziazione sovrascriverà il valore del file caricato. -
Se non
nameviene specificato: sechannelviene specificato, il servizio caricherà ilaccount predefinito associato a quel canale nel file di configurazione. In caso contrario, verrà utilizzato l'account predefinito generale, definito al momento della chiamata
save_account()conset_as_default=True.
Poiché qiskit-ibm-runtime``0.49 , è possibile accedere a questa classe anche come qiskit_ibm_runtime.IBMQuantumComputeService.
Parametri
- canale – Stringa che identifica la piattaforma di servizio. Per
ibm_quantum_platformimpostazione predefinita, questo valore è impostato su, ma può anche assumere iibm_cloudvalori elocal.ibm_cloudè un'opzione legacy e punta allo stesso percorso diibm_quantum_platform, il valore consigliato è ibm_quantum_platform`. Selocalsi seleziona, verrà utilizzata la modalità di test locale e le query primitive verranno eseguite su un simulatore locale. Per ulteriori dettagli, consulta la documentazione relativa alla modalità di test locale di IBM Quantum Compute. Per le modalità non locali, il canale viene utilizzato per determinare il valore predefinito dell'API URL.ibm_cloudera l'identificatore della piattaforma legacy IBM Cloud, e il suo URL verrà reindirizzato al nuovoibm_quantum_platformindirizzo. - token – chiave API di IBM Cloud. Per l'autenticazione IQP è necessario fornire una chiave API. Se non specificato esplicitamente, verrà interrogato l'account predefinito salvato per ottenere questa chiave API.
- url – API di base URL. Il valore predefinito è
https://cloud.ibm.comper i canali non locali che accedono all' IBM Quantum Platform (ad es.,ibm_quantum_platform,ibm_cloud). Questo URL viene elaborato da unurl_resolverper indirizzare le richieste al punto di ingresso del servizio corretto.url_resolver``urlSe si fornisce un file personalizzato, è necessario fornire anche un file corrispondente. Il resolver predefinito riscrive l' URL e di base inhttps://quantum.cloud.ibm.com/api/v[x]. - nomefile – Percorso completo del file in cui viene creato l'account. Impostazione predefinita: _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
- nome – Nome dell'account da caricare dal file.
- istanza – L'istanza del servizio da utilizzare. Per
ibm_cloudeibm_quantum_platform, si tratta del nome della risorsa cloud ( CRN ) o del nome del servizio. Se impostato, definirà un'istanza per l'istanziazione del servizio; in caso contrario, il servizio recupererà tutte le istanze accessibili all'interno dell'account in base ai criteri di filtraggio specificati. Passare"auto"per richiedere esplicitamente la selezione automatica senza attivare l'avviso “istanza non impostata”. Questo valore può anche essere salvato nel file di configurazione tramitesave_account()in modo che venga applicato automaticamente ad ogni istanza. - proxy – Configurazione dei proxy. I parametri opzionali supportati sono
urls(un protocollo di mappatura dei dizionari o un protocollo e un host all'indirizzo URL del proxy, documentato all'indirizzo https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ),username_ntlm,password_ntlm(nome utente e password per abilitare l'autenticazione utente NTLM) - Verifica – Se verificare il certificato TLS del server.
- private_endpoint – Si collega all'API privata URL.
- url_resolver – Funzione utilizzata per risolvere l' IBM Quantum Compute URL. Se non viene specificato, verrà utilizzato un resolver predefinito per accedere ai diversi endpoint di servizio.
- regione – Imposta una preferenza relativa alla regione per la selezione automatica delle istanze. Questo argomento viene ignorato se viene specificato un
instance. I valori ammessi sonous-eastoeu-de. Se non viene specificata alcuna istanza, verrà data la priorità a un'istanza appartenente a questa regione. - plans_preference – Un elenco dei nomi dei piani dell'account ordinati per priorità ai fini della selezione automatica delle istanze. Questo argomento viene ignorato se viene specificato un
instance. Saranno prese in considerazione solo le istanze con i nomi dei piani indicati. Ad esempio, se vuoi evitare di utilizzare i tuoi account premium, puoi semplicemente specificare di"open"utilizzare solo le tue istanze open plan. I valori ammessi includono (ma non si limitano a):open,premium,flex,on-prem,pay-as-you-go. - tag – Imposta un elenco di tag per filtrare le istanze disponibili ai fini della selezione automatica. Questo argomento viene ignorato se viene specificato un
instance.
Risultati
Un'istanza di QiskitRuntimeService o QiskitRuntimeLocalService se è impostato il canale locale.
Aumenti
IBMInputValueError - Se un ingresso non è valido.
Crea QiskitRuntimeService un'istanza.
Attributi
channel
Restituisce il tipo di canale utilizzato.
Risultati
Il tipo di canale utilizzato.
Metodi
active_account
active_account()
Restituisce l'account IBM Quantum attualmente in uso per la sessione.
Risultati
Un dizionario con informazioni sull'account attualmente in sessione.
Tipo di restituzione
[d] ictstr, str | Nessuno
active_instance
backend
backend(name, instance=None, use_fractional_gates=False, calibration_id=None)
Restituisce un singolo backend che corrisponde al filtro specificato.
Si noti che la disponibilità del backend viene verificata solo al momento dell'invio del circuito. Per verificare in anticipo lo stato del backend, utilizzare il status() metodo sull'oggetto backend:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend()
status = backend.status()
assert status.operational and status.status_msg == "active"Parametri
- name (str) – Nome del backend.
- instance (str | None) – Specificare il CRN dell'account IBM Cloud.
- use_fractional_gates (bool | None) – Impostare su True per consentire ai backend di includere gate frazionari. Per ulteriori informazioni sulle limitazioni, consultare la sezione “Quando non utilizzare i gate frazionari ”.
- calibration_id (str | None) – L'id di calibrazione usato per istanziare il backend.
Risultati
Un backend che corrisponde al filtraggio.
Aumenti
- QiskitBackendNotFoundError - se non è stato trovato alcun backend.
- IBMInputValueError – se vengono richiesti gate frazionari ma non sono supportati dal backend.
Tipo di restituzione
Backend
backends
backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, *, use_fractional_gates=False, calibration_id=None, **kwargs)
Restituisce tutti i backend accessibili tramite questo account, con un filtro opzionale.
Parametri
-
name (str | None) – Nome del backend da filtrare.
-
min_num_qubits (int | None) – Numero minimo di qubit che il backend deve avere.
-
instance (str | None) – IBM Cloud conto CRN
-
dynamic_circuits (bool | None) – Filtrare in base al fatto che il backend supporti o meno i circuiti dinamici.
-
filters (Callable[[IBMBackend], bool] | None) –
Filtri più complessi, come le funzioni lambda. Ad esempio:
QiskitRuntimeService.backends( filters=lambda backend: ( (status := backend.status()).operational and status.status_msg == "active" ) )restituirà solo i backend operativi e attivi.
-
use_fractional_gates (bool | None) – Impostare True per consentire ai backend di includere porte frazionarie. Si noti che i nostri backend ora supportano simultaneamente circuiti dinamici e porte frazionarie. Non è più necessario disabilitare questo flag quando si utilizzano le funzioni dei circuiti dinamici (ad esempio,
if_else) nell'algoritmo. Le istruzioni del flusso di controllo non vengono rimosse dal backend quando questo flag è impostato su True. SeNone, allora sia le porte frazionarie che le operazioni di flusso di controllo sono incluse nei backend. -
calibration_id (str | None) – L'id di calibrazione usato per istanziare il backend. Questo deve essere usato solo quando si seleziona un singolo backend, poiché l'id di calibrazione è definito per ogni backend.
-
*kwargs (Qualsiasi* ) -
Filtri semplici che richiedono un valore specifico per un attributo nella configurazione o nello stato del backend. Esempi:
# Get the operational real backends QiskitRuntimeService.backends(simulator=False, operational=True) # Get the backends with at least 127 qubits QiskitRuntimeService.backends(min_num_qubits=127) # Get the backends that support OpenPulse QiskitRuntimeService.backends(open_pulse=True)Per l'elenco completo degli attributi backend, vedere la documentazione della classe IBMBackend
Risultati
L'elenco dei backend disponibili che corrispondono al filtro.
Aumenti
- IBMInputValueError - Se un ingresso non è valido.
- QiskitBackendNotFoundError - Se il backend non è in nessuna istanza.
Tipo di restituzione
elenco[ IBMBackend ]
delete_account
static delete_account(filename=None, name=None, channel=None)
Eliminare un account salvato dal disco.
Parametri
- filename (str | None) – Nome del file da cui eliminare l'account.
- name (str | None) – Nome dell'account salvato da eliminare.
- channel (ChannelType | None) – Tipo di canale dell'account predefinito da eliminare. Viene ignorato se viene specificato il nome dell'account.
Risultati
Vero se l'account è stato cancellato. Falso se non è stato trovato alcun conto.
Tipo di restituzione
bool
delete_job
delete_job(job_id)
Elimina un'attività di " IBM Quantum Compute ".
Si noti che questa operazione non può essere annullata.
Parametri
job_id (str) – ID del lavoro da eliminare.
Aumenti
- RuntimeJobNotFound – Il lavoro non esiste.
- IBMRuntimeError – Il metodo non è supportato.
Tipo di restituzione
Nessuna
instances
instances()
Restituisce un elenco delle istanze disponibili per l'account attivo.
Restituisce un elenco contenente una serie di dizionari con i seguenti identificatori per ciascuna istanza: “crn”, “plan”, “name”.
Risultati
Un elenco di istanze disponibili per l'account attivo.
Tipo di restituzione
Sequence[ [dic] tstr, Any]
job
job(job_id)
Recupera un'attività " IBM Quantum Compute ".
Parametri
job_id (str) – ID lavoro.
Risultati
IBM Quantum Compute lavoro recuperato.
Aumenti
- RuntimeJobNotFound - Se il lavoro non esiste.
- IBMRuntimeError - Se la richiesta non è andata a buon fine.
Tipo di restituzione
jobs
jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)
Recupera tutti i lavori IBM Quantum Compute, con la possibilità di applicare filtri opzionali.
Parametri
- limit (int | None) – Numero di lavori da recuperare.
Nonesignifica nessun limite. - skip (int) – Indice di partenza per il recupero dei lavori.
- backend_name (str | None) – Nome del backend da cui recuperare i lavori.
- pending (bool | None) – Filtrare per stato di attesa del lavoro. Se
True, i lavori "QUEUED" e "RUNNING" sono inclusi. SeFalse, vengono inclusi i lavori "DONE", "CANCELLED" e "ERROR". - program_id (str | None) – Filtrare per ID programma.
- instance (str | None) – Filtrare per crn di istanza IBM Cloud.
- job_tags (list[str] | None) – Filtra per tag assegnati ai lavori. I lavori corrispondenti sono associati a tutti i tag.
- session_id (str | None) – Filtrare per id di sessione. Tutti i lavori della sessione verranno restituiti in ordine decrescente rispetto alla data di creazione del lavoro.
- created_after (datetime | None) – Filtrare in base alla data di inizio indicata, in ora locale. Viene utilizzato per trovare i lavori la cui data di creazione è successiva (maggiore o uguale) a questa data/ora locale.
- created_before (datetime | None) – Filtrare in base alla data di fine indicata, in ora locale. Viene utilizzato per trovare i lavori la cui data di creazione è precedente (inferiore o uguale) a questa data/ora locale.
- descending (bool) – Se
True, restituisce i lavori in ordine decrescente rispetto alla data di creazione del lavoro (cioè prima il più recente) fino al raggiungimento del limite.
Risultati
Un elenco di offerte di lavoro presso l' IBM Quantum Compute.
Aumenti
IBMInputValueError - Se un valore di ingresso non è valido.
Tipo di restituzione
elenco[ RuntimeJobV2 ]
least_busy
least_busy(min_num_qubits=None, instance=None, filters=None, use_fractional_gates=False, **kwargs)
Restituisce il backend disponibile meno occupato.
Parametri
-
min_num_qubits (int | None) – Numero minimo di qubit che il backend deve avere.
-
instance (str | None) – IBM Cloud conto CRN.
-
filters (Callable[[IBMBackend], bool] | None) –
I filtri possono essere definiti come per il metodo
backends()metodo. Un esempio per ottenere i backend operativi con 5 qubit:QiskitRuntimeService.least_busy(n_qubits=5, operational=True) -
use_fractional_gates (bool | None) –
TrueIn questo caso, vengono presi in considerazione solo i backend che includono gate frazionari, e tali gate vengono inclusi nel backend restituito. Per ulteriori informazioni sulle limitazioni, consultare la sezione “Quando non utilizzare i gate frazionari ”. -
kwargs (Any) – Argomenti aggiuntivi passati alla query del backend.
Risultati
Il backend con il minor numero di lavori in sospeso.
Aumenti
QiskitBackendNotFoundError - Se nessun backend corrisponde ai criteri.
Tipo di restituzione
save_account
static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, set_as_default=None, private_endpoint=False, region=None, plans_preference=None, tags=None)
Salvare il conto su disco per un uso futuro.
Parametri
- token (str | None) – IBM Cloud Chiave API.
- url (str | None) – L'API URL. Per impostazione predefinita, il valore è https://cloud.ibm.com.
- instance (str | None) – Si tratta di un parametro facoltativo che consente di specificare l' CRN e o il nome del servizio. Se impostato, definirà un'istanza predefinita per l'istanziazione del servizio; in caso contrario, il servizio recupererà tutte le istanze accessibili all'interno dell'account. Impostare su
"auto"per salvare esplicitamente la selezione automatica come impostazione predefinita; in questo modo, nelle successive istanze non verrà più visualizzato l'avviso "istanza non impostata". - channel (ChannelType | None) – Tipo di canale.
ibm_cloudoppureibm_quantum_platform. - filename (str | None) – Percorso completo del file in cui è salvato l'account.
- name (str | None) – Nome del conto da salvare.
- proxies (dict | None) – Configurazione del proxy. I parametri opzionali supportati sono
urls(un protocollo di mappatura da dizionario o da protocollo e host all' URL e del proxy, documentato all'indirizzo https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ),username_ntlm,password_ntlm(nome utente e password per abilitare l'autenticazione utente NTLM) - verify (bool | None) – Verificare il certificato TLS del server.
- overwrite (bool | None) –
Truese il conto esistente deve essere sovrascritto. - set_as_default (bool | None) – Se
True, il conto viene salvato nel nome del file, come conto predefinito. - private_endpoint (bool | None) – Connettersi all'API privata URL.
- region (RegionType | None) – Imposta una preferenza per la regione. us-east o eu-de. Se non viene specificata alcuna istanza, verrà data priorità a un'istanza appartenente a questa regione.
- plans_preference (PlanType | None) – Un elenco dei nomi dei piani di account (
open,premium, ecc.), ordinati in base alle preferenze. Verrà data priorità all'istanza con il primo valore dell'elenco e saranno prese in considerazione solo le istanze con i nomi dei piani specificati. Ad esempio, se vuoi evitare di utilizzare i tuoi account premium, puoi semplicemente specificare di"open"utilizzare solo le tue istanze open plan.plans_preferenceviene ignorato se viene specificato uninstance. - tags (list[str] | None) – Imposta un elenco di tag per filtrare le istanze disponibili. Le istanze con questi tag avranno la priorità se non viene passata alcuna istanza.
Tipo di restituzione
Nessuna
saved_accounts
static saved_accounts(default=None, channel=None, filename=None, name=None)
Elencare i conti salvati su disco.
Parametri
- default (bool | None) – Se impostato su True, vengono restituiti solo i conti predefiniti.
- channel (ChannelType | None) – Canale type.\
\ibm_cloud`` oppureibm_quantum_platform. - filename (str | None) – Nome del file i cui conti vengono restituiti.
- name (str | None) – Se impostato, vengono restituiti solo i conti con il nome indicato.
Risultati
Un dizionario con informazioni sui conti salvate su disco.
Aumenti
ValueError - Se viene trovato un account non valido sul disco.
Tipo di restituzione
dict
usage
usage()
Restituisce le informazioni sull'uso dell'istanza attiva corrente.
Risultati
Dict con dettagli d'uso.
Tipo di restituzione
dizionario [str, qualsiasi]