Skip to main content
IBM Quantum Platform

Sessione

class Session(backend, max_time=None, *, create_new=True)

GitHub

Basi: object

Classe per la creazione di una sessione “ IBM Quantum Compute ” (precedentemente denominata “ Qiskit Runtime ”).

Un " IBM Quantum Compute " consente session di raggruppare una serie di chiamate iterative al computer quantistico. Una sessione viene avviata quando viene avviato il primo processo al suo interno. I lavori successivi all'interno della sessione vengono ordinati in base alla priorità dallo scheduler.

È possibile aprire una sessione IBM Quantum Compute utilizzando questa Session classe e inviare lavori a una o più primitive.

Ad esempio:

from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService, Session, SamplerV2 as Sampler

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Bell Circuit
qr = QuantumRegister(2, name="qr")
cr = ClassicalRegister(2, name="cr")
qc = QuantumCircuit(qr, cr, name="bell")
qc.h(qr[0])
qc.cx(qr[0], qr[1])
qc.measure(qr, cr)

pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_circuit = pm.run(qc)

with Session(backend=backend) as session:
    sampler = Sampler(mode=session)
    job = sampler.run([isa_circuit])
    pub_result = job.result()[0]
    print(f"Sampler job ID: {job.job_id()}")
    print(f"Counts: {pub_result.data.cr.get_counts()}")

Parametri

  • backend (BackendV2) – Istanza della classe Backend .
  • max_time (int | str | None) – Tempo massimo durante il quale una sessione di IBM Quantum Compute può rimanere aperta prima di essere chiusa automaticamente. Può essere specificato come numero di secondi (int) o come stringa del tipo “2h, 30m, 40s”. Questo valore deve essere inferiore al limite massimo imposto dal sistema.
  • create_new (bool | None) – Se vero, verrà chiamato l'endpoint API della sessione POST per creare una nuova sessione. Impedisce la creazione di una nuova sessione quando from_id() viene chiamato.

Aumenti

ValueError - Se un valore di ingresso non è valido.


Attributi

service

Restituisce il servizio associato a questa sessione.

Risultati

qiskit_ibm_runtime.QiskitRuntimeService associato a questa sessione.

session_id

Restituisce l'ID della sessione.

Risultati

ID sessione. Nessuno se il backend è un simulatore.


Metodi

backend

backend()

GitHub

Restituisce il backend per questa sessione.

Risultati

Backend per questa sessione. Nessuno se sconosciuto.

Tipo di restituzione

str | Nessuno

cancel

cancel()

GitHub

Annulla tutti i lavori in sospeso in una sessione.

Tipo di restituzione

Nessuna

close

close()

GitHub

Chiudi la sessione in modo che non vengano più accettati nuovi lavori.

Chiudere la sessione, in modo che non vengano più accettati nuovi lavori, ma i lavori esistenti in coda o in esecuzione vengano eseguiti fino al completamento. La sessione verrà terminata quando non ci saranno più lavori in sospeso.

Tipo di restituzione

Nessuna

details

details()

GitHub

Restituire i dettagli della sessione.

Risultati

Un dizionario con i dettagli delle sessioni.

  • id: id della sessione.
  • backend_name: backend utilizzato per la sessione.
  • interactive_timeout: Il tempo massimo di inattività (in secondi) tra un lavoro e l'altro consentito prima che la sessione venga disattivata.
  • max_time: Tempo massimo consentito (in secondi) per la sessione, soggetto ai limiti del piano.
  • active_timeout: Il tempo massimo (in secondi) in cui una sessione può rimanere attiva.
  • state: Stato della sessione: aperta, attiva, inattiva o chiusa.
  • accepting_jobs: Se la sessione sta accettando o meno lavori.
  • last_job_started: Timestamp dell'inizio dell'ultimo lavoro della sessione.
  • last_job_completed: Timestamp del completamento dell'ultimo lavoro della sessione.
  • started_at: Timestamp di quando è stata avviata la sessione.
  • closed_at: Timestamp di quando la sessione è stata chiusa.
  • activated_at: Timestamp di quando lo stato della sessione è stato cambiato in attivo.
  • mode: Modalità di esecuzione della sessione.
  • usage_time: Il tempo di utilizzo, in secondi, di questa sessione o batch. L'utilizzo è definito come il tempo in cui un sistema quantistico è impegnato a completare un lavoro.

Tipo di restituzione

dict [str, Qualsiasi] | Nessuno

from_id

classmethod from_id(session_id, service, use_fractional_gates=False, calibration_id=None)

GitHub

Crea un oggetto Session con un dato session_id.

Ad esempio:

from qiskit_ibm_runtime import QiskitRuntimeService, Session
service = QiskitRuntimeService()
job = service.job(<job_id>)
existing_session_id = job.session_id

new_session = Session.from_id(existing_session_id, service)

Parametri

  • session_id (str) – L'ID della sessione da creare. Questo deve essere un ID di sessione già esistente.
  • QiskitRuntimeServiceservice (QiskitRuntimeService) – Istanza della classe. Se si utilizzano più istanze, tenere presente che l'istanza cloud attiva nel service verrà sostituita con quella che ha accesso a quel session_id. Si prega di consultare la QiskitRuntimeService documentazione sull'uso di più istanze e il active_instance() metodo per verificare quale sia l'istanza attiva.
  • use_fractional_gates (bool) – Se consentire o meno i gate frazionari per il backend utilizzato per creare la sessione.
  • calibration_id (str | None) – L'ID di calibrazione del backend utilizzato per creare la sessione.

Aumenti

  • IBMInputValueError – Se l'ID della sessione specificato non esiste.
  • IBMRuntimeError – Se il backend della sessione è sconosciuto.

Risultati

Una nuova sessione con i dati session_id

Tipo di restituzione

Sessione

status

status()

GitHub

Restituisce lo stato attuale della sessione.

Risultati

Stato della sessione come stringa.

  • Pending: La sessione è stata creata ma non è attiva. Diventerà attivo quando il lavoro successivo di questa sessione verrà eliminato.
  • In progress, accepting new jobs: la sessione è attiva e accetta nuovi lavori.
  • In progress, not accepting new jobs: la sessione è attiva e non accetta nuovi lavori.
  • Closed: il tempo massimo è scaduto o la sessione è stata chiusa esplicitamente.
  • None: i dettagli sullo stato non sono disponibili.

Tipo di restituzione

str | Nessuno

usage

usage()

GitHub

Restituisce l'utilizzo della sessione in secondi.

L'utilizzo della sessione è il tempo che intercorre tra l'avvio del primo lavoro e l'inattività della sessione, la sua chiusura o il completamento dell'ultimo lavoro, a seconda dell'ultimo caso.

L'utilizzo dei batch è la quantità di tempo che tutti i lavori trascorrono sulla QPU.

Tipo di restituzione

galleggiante | Nessuno

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