Skip to main content
IBM Quantum Platform

Session

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

GitHub

Bases : object

Classe permettant de créer une session « IBM Quantum Compute » (anciennement « Qiskit Runtime »).

Un « IBM Quantum Compute » vous permet session de regrouper une série d'appels itératifs vers l'ordinateur quantique. Une session est lancée dès que la première tâche de cette session est lancée. Les tâches suivantes au sein de la session sont classées par ordre de priorité par le planificateur.

Vous pouvez ouvrir une session « IBM Quantum Compute » à l'aide de cette classe Session et envoyer des tâches à une ou plusieurs primitives.

Par exemple :

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

Paramètres

  • backend (BackendV2) – Instance de la classe Backend .
  • max_time (int | str | None) – Durée maximale pendant laquelle une session d' IBM Quantum Compute s peut rester ouverte avant d'être fermée de force. Peut être spécifié en secondes (entier) ou sous forme de chaîne de caractères, par exemple : “2h, 30m, 40s”. Cette valeur doit être inférieure à la limite maximale imposée par le système.
  • create_new (bool | None) – Si True, le point de terminaison API POST session sera appelé pour créer une nouvelle session. Empêche la création d'une nouvelle session lorsque from_id() est appelé.

Augmentations

ValueError - Si une valeur d'entrée n'est pas valide.


Attributs

service

Service de retour associé à cette session.

Retours

qiskit_ibm_runtime.QiskitRuntimeService associée à cette session.

session_id

Renvoie l'identifiant de la session.

Retours

ID de session. Aucune si le backend est un simulateur.


Méthodes

backend

backend()

GitHub

Retourner le backend pour cette session.

Retours

Backend pour cette session. Aucune si elle est inconnue.

Type de retour

str | Aucun

cancel

cancel()

GitHub

Annule tous les travaux en attente dans une session.

Type de retour

Aucun

close

close()

GitHub

Fermez la session afin que les nouvelles tâches ne soient plus acceptées.

Fermez la session afin que les nouveaux travaux ne soient plus acceptés, mais que les travaux en cours ou en file d'attente soient exécutés jusqu'à leur terme. La session sera clôturée lorsqu'il n'y aura plus de travaux en attente.

Type de retour

Aucun

details

details()

GitHub

Renvoyer les détails de la session.

Retours

Un dictionnaire avec les détails des sessions.

  • id: identifiant de la session.
  • backend_name: backend utilisé pour la session.
  • interactive_timeout: Le temps d'inactivité maximal (en secondes) entre deux tâches avant que la session ne soit désactivée.
  • max_time: Durée maximale autorisée (en secondes) pour la session, sous réserve des limites du plan.
  • active_timeout: La durée maximale (en secondes) pendant laquelle une session peut rester active.
  • state: État de la session - ouverte, active, inactive ou fermée.
  • accepting_jobs: Indique si la session accepte ou non des travaux.
  • last_job_started: Horodatage du démarrage du dernier travail de la session.
  • last_job_completed: Date à laquelle le dernier travail de la session s'est achevé.
  • started_at: Horodatage du début de la session.
  • closed_at: Horodatage de la fermeture de la session.
  • activated_at: Date à laquelle l'état de la session est devenu actif.
  • mode: Mode d'exécution de la session.
  • usage_time: La durée d'utilisation, en secondes, de cette session ou de ce lot. L'utilisation est définie comme le temps pendant lequel un système quantique est engagé pour effectuer un travail.

Type de retour

dict [str, Any] | None

from_id

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

GitHub

Créer un objet Session à partir d'un fichier session_id.

Par exemple :

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)

Paramètres

  • session_id (str) – L'identifiant de la session à créer. Il doit s'agir d'un identifiant de session déjà existant.
  • service (QiskitRuntimeService) – Exemplaire de la QiskitRuntimeService classe. Si vous utilisez plusieurs instances, notez que l'instance cloud active dans le service sera remplacée par celle qui a accès à ce session_id. Veuillez consulter la QiskitRuntimeService documentation relative à l'utilisation de plusieurs instances ainsi que la active_instance() méthode permettant de déterminer quelle est l'instance active.
  • use_fractional_gates (bool) – Autoriser ou non les portes fractionnaires pour le backend utilisé pour créer la session.
  • calibration_id (str | None) – L'identifiant de calibrage du backend utilisé pour créer la session.

Augmentations

  • IBMInputValueError – Si l'identifiant de session fourni n'existe pas.
  • IBMRuntimeError – Si le backend de la session est inconnu.

Retours

Une nouvelle session avec la valeur session_id

Type de retour

Session

status

status()

GitHub

Renvoie l'état actuel de la session.

Retours

Statut de la session sous forme de chaîne de caractères.

  • Pending: La session est créée mais n'est pas active. Il deviendra actif lorsque le prochain travail de cette session sera mis en file d'attente.
  • In progress, accepting new jobsla session est active et accepte de nouveaux emplois.
  • In progress, not accepting new jobsla session est active et n'accepte pas de nouveaux emplois.
  • Closed: max_time a expiré ou la session a été explicitement fermée.
  • Noneles détails de l'état ne sont pas disponibles.

Type de retour

str | Aucun

usage

usage()

GitHub

Renvoie l'utilisation de la session en secondes.

L'utilisation d'une session est le temps qui s'écoule entre le moment où le premier travail commence et le moment où la session devient inactive, est fermée ou lorsque son dernier travail se termine, selon ce qui se produit en dernier.

L'utilisation des lots est le temps que tous les travaux passent sur la QPU.

Type de retour

float | None

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