Session
class Session(backend, max_time=None, *, create_new=True)
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()
Retourner le backend pour cette session.
Retours
Backend pour cette session. Aucune si elle est inconnue.
Type de retour
str | Aucun
cancel
close
close()
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()
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)
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
QiskitRuntimeServiceclasse. Si vous utilisez plusieurs instances, notez que l'instance cloud active dans leservicesera remplacée par celle qui a accès à cesession_id. Veuillez consulter laQiskitRuntimeServicedocumentation relative à l'utilisation de plusieurs instances ainsi que laactive_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
status
status()
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()
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