Skip to main content
IBM Quantum Platform

Sessão

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

GitHub

Bases: object

Classe para criar uma sessão Qiskit Runtime.

Um Qiskit Runtime session permite que você agrupe uma coleção de chamadas iterativas para o computador quântico. Uma sessão é iniciada quando o primeiro trabalho dentro da sessão é iniciado. Os trabalhos subsequentes dentro da sessão são priorizados pelo agendador.

Você pode abrir uma sessão Qiskit Runtime usando essa classe Session e enviar trabalhos para uma ou mais primitivas.

Por exemplo:

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) – Instância da classe Backend .
  • max_time (int | str | None) – Tempo máximo que uma sessão de tempo de execução pode permanecer aberta antes de ser encerrada forçosamente. Pode ser especificado como segundos (int) ou uma string como “2h 30m 40s”. Este valor deve ser inferior ao máximo imposto pelo sistema.
  • create_new (bool | None) – Se for verdadeiro, o endpoint da API da sessão POST será chamado para criar uma nova sessão. Impede a criação de uma nova sessão quando from_id() é chamado.

Aumentos

ValueError - Se um valor de entrada for inválido.


Atributos

service

Serviço de retorno associado a essa sessão.

Retorna

qiskit_ibm_runtime.QiskitRuntimeService associado a essa sessão.

session_id

Retorna a ID da sessão.

Retorna

ID de Sessão. Nenhum se o backend for um simulador.


Métodos

backend

backend()

GitHub

Retorna o backend para essa sessão.

Retorna

Backend para esta sessão. Nenhum se for desconhecido.

Tipo de retorno

str | Nenhum

cancel

cancel()

GitHub

Cancelar todos os trabalhos pendentes em uma sessão.

Tipo de retorno

Nenhum

close

close()

GitHub

Feche a sessão para que não sejam mais aceitos novos trabalhos.

Feche a sessão para que novos trabalhos não sejam mais aceitos, mas os trabalhos existentes na fila ou em execução serão executados até a conclusão. A sessão será encerrada quando não houver mais trabalhos pendentes.

Tipo de retorno

Nenhum

details

details()

GitHub

Retornar detalhes da sessão.

Retorna

Um dicionário com os detalhes das sessões.

  • idiD da sessão: id da sessão.
  • backend_namebackend usado para a sessão.
  • interactive_timeout: O tempo ocioso máximo (em segundos) entre trabalhos que pode ocorrer antes que a sessão seja desativada.
  • max_time: Tempo máximo permitido (em segundos) para a sessão, sujeito aos limites do plano.
  • active_timeout: O tempo máximo (em segundos) que uma sessão pode permanecer ativa.
  • state: Estado da sessão - aberta, ativa, inativa ou fechada.
  • accepting_jobs: Se a sessão está ou não aceitando trabalhos.
  • last_job_started: Registro de data e hora do início do último trabalho na sessão.
  • last_job_completed: Registro de data e hora da conclusão do último trabalho na sessão.
  • started_at: Registro de data e hora de quando a sessão foi iniciada.
  • closed_at: Registro de data e hora de quando a sessão foi encerrada.
  • activated_at: Registro de data e hora de quando o estado da sessão foi alterado para ativo.
  • mode: Modo de execução da sessão.
  • usage_time: O tempo de uso, em segundos, dessa sessão ou lote. O uso é definido como o tempo que um sistema quântico fica comprometido para concluir um trabalho.

Tipo de retorno

dict [str, Qualquer] | Nenhum

from_id

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

GitHub

Crie um objeto Session com um determinado session_id.

Por exemplo:

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) – O ID da sessão a ser criada. Esse deve ser um ID de sessão já existente.
  • service (QiskitRuntimeService) – Instância da classe QiskitRuntimeService . session_idSe estiver usando várias instâncias, observe que a instância ativa na nuvem service será substituída pela que tiver acesso a esse recurso. Consulte a QiskitRuntimeService documentação sobre o uso de várias instâncias e o active_instance() método para verificar qual é a instância ativa.
  • use_fractional_gates (bool) – Se deve ou não permitir portas fracionárias para o backend utilizado para criar a sessão.
  • calibration_id (str | None) – O ID de calibração do backend utilizado para criar a sessão.

Aumentos

  • IBMInputValueError – Se o session_id fornecido não existir.
  • IBMRuntimeError – Se o backend da sessão for desconhecido.

Retorna

Uma nova sessão com o session_id

Tipo de retorno

Sessão

status

status()

GitHub

Retorna o status da sessão atual.

Retorna

Status da sessão como uma cadeia de caracteres.

  • Pending: A sessão foi criada, mas não está ativa. Ele se tornará ativo quando o próximo trabalho dessa sessão for retirado da fila.
  • In progress, accepting new jobssessão: está ativa e aceitando novos trabalhos.
  • In progress, not accepting new jobssessão: está ativa e não está aceitando novos trabalhos.
  • Closedtempo máximo expirou ou a sessão foi encerrada explicitamente.
  • None: os detalhes do status não estão disponíveis.

Tipo de retorno

str | Nenhum

usage

usage()

GitHub

Retorna o uso da sessão em segundos.

O uso da sessão é o tempo desde o início do primeiro trabalho até o momento em que a sessão fica inativa, é fechada ou quando o último trabalho é concluído, o que ocorrer por último.

O uso do lote é a quantidade de tempo que todos os trabalhos passam na QPU.

Tipo de retorno

float | Nenhum

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.