Skip to main content
IBM Quantum Platform

Sesión

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

GitHub

Bases: object

Clase para crear una sesión Qiskit Runtime.

Un Qiskit Runtime session permite agrupar una colección de llamadas iterativas al ordenador cuántico. Una sesión se inicia cuando se inicia el primer trabajo dentro de la sesión. Los trabajos subsiguientes dentro de la sesión son priorizados por el planificador.

Puede abrir una sesión Qiskit Runtime utilizando esta clase Session y enviar trabajos a una o más primitivas.

Por ejemplo:

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

Parámetros

  • backend (BackendV2) – Instancia de la clase Backend .
  • max_time (int | str | None) – Tiempo máximo que una sesión de tiempo de ejecución puede permanecer abierta antes de ser cerrada de forma forzada. Se puede especificar en segundos (int) o como una cadena como “2h 30m 40s”. Este valor debe ser inferior al máximo impuesto por el sistema.
  • create_new (bool | None) – Si es verdadero, se llamará al punto final de la API de sesión POST para crear una nueva sesión. Evita la creación de una nueva sesión cuando from_id() se llama.

Eleva

ValueError - Si un valor de entrada no es válido.


Atributos

service

Devuelve el servicio asociado a esta sesión.

Devuelve

qiskit_ibm_runtime.QiskitRuntimeService asociada a esta sesión.

session_id

Devuelve el ID de la sesión.

Devuelve

ID de sesión. Ninguno si el backend es un simulador.


Métodos

backend

backend()

GitHub

Devuelve el backend de esta sesión.

Devuelve

Backend para esta sesión. Ninguna si es desconocida.

Tipo de retorno

str | Ninguno

cancel

cancel()

GitHub

Cancela todos los trabajos pendientes de una sesión.

Tipo de retorno

Ninguna

close

close()

GitHub

Cierra la sesión para que no se acepten más trabajos.

Cierra la sesión para que ya no se acepten nuevos trabajos, pero los trabajos existentes en cola o en ejecución se ejecutarán hasta su finalización. La sesión finalizará cuando no haya más trabajos pendientes.

Tipo de retorno

Ninguna

details

details()

GitHub

Devuelve los detalles de la sesión.

Devuelve

Un diccionario con los detalles de las sesiones.

  • id: id de la sesión.
  • backend_name: backend utilizado para la sesión.
  • interactive_timeout: El tiempo máximo de inactividad (en segundos) entre trabajos que se permite que ocurra antes de que se desactive la sesión.
  • max_time: Tiempo máximo permitido (en segundos) para la sesión, sujeto a los límites del plan.
  • active_timeout: El tiempo máximo (en segundos) que una sesión puede permanecer activa.
  • state: Estado de la sesión: abierta, activa, inactiva o cerrada.
  • accepting_jobs: Si la sesión está aceptando trabajos o no.
  • last_job_started: Fecha y hora de inicio del último trabajo de la sesión.
  • last_job_completed: Fecha y hora de finalización del último trabajo de la sesión.
  • started_at: Hora de inicio de la sesión.
  • closed_at: Fecha y hora de cierre de la sesión.
  • activated_at: Marca de tiempo de cuando el estado de la sesión cambió a activo.
  • mode: Modo de ejecución de la sesión.
  • usage_time: El tiempo de uso, en segundos, de esta Sesión o Lote. El uso se define como el tiempo que un sistema cuántico está comprometido para completar un trabajo.

Tipo de retorno

dict [str, Cualquiera] | Ninguno

from_id

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

GitHub

session_idCrea un objeto Session con un dato dado.

Por ejemplo:

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)

Parámetros

  • session_id (str) – El identificador de la sesión que se va a crear. Este debe ser un identificador de sesión ya existente.
  • service (QiskitRuntimeService) – Instancia de la QiskitRuntimeService clase. Si se utilizan varias instancias, ten en cuenta que la instancia en la nube activa en el service será sustituida por aquella que tenga acceso a ese session_id. Consulte la QiskitRuntimeService documentación sobre el uso de varias instancias y el active_instance() método para comprobar cuál es la instancia activa.
  • use_fractional_gates (bool) – Si se permiten o no puertas fraccionarias para el backend que se utiliza para crear la sesión.
  • calibration_id (str | None) – El identificador de calibración del backend que se utiliza para crear la sesión.

Eleva

  • IBMInputValueError – Si el «session_id» proporcionado no existe.
  • IBMRuntimeError – Si se desconoce el backend de la sesión.

Devuelve

Se creará una nueva sesión con el valor session_id

Tipo de retorno

Sesión

status

status()

GitHub

Devuelve el estado actual de la sesión.

Devuelve

Estado de la sesión en forma de cadena.

  • Pending: La sesión está creada pero no activa. Se activará cuando se ponga en cola el siguiente trabajo de esta sesión.
  • In progress, accepting new jobs: la sesión está activa y acepta nuevos trabajos.
  • In progress, not accepting new jobs: la sesión está activa y no acepta nuevos trabajos.
  • Closed: max_time expiró o la sesión se cerró explícitamente.
  • None: los detalles de estado no están disponibles.

Tipo de retorno

str | Ninguno

usage

usage()

GitHub

Devuelve el uso de la sesión en segundos.

El uso de la sesión es el tiempo que transcurre desde que se inicia el primer trabajo hasta que la sesión se inactiva, se cierra o finaliza su último trabajo, lo que ocurra en último lugar.

El uso por lotes es la cantidad de tiempo que todos los trabajos pasan en la QPU.

Tipo de retorno

float | Ninguno

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.