Session
Session(max_time=None)
Class for creating a flexible Qiskit Runtime session.
A Qiskit Runtime session
allows you to group a collection of iterative calls to the quantum computer. A session is started when the first job within the session is started. Subsequent jobs within the session are prioritized by the scheduler. Data used within a session, such as transpiled circuits, is also cached to avoid unnecessary overhead.
You can open a Qiskit Runtime session using this Session
class and submit one or more jobs.
For example:
from qiskit.test.reference_circuits import ReferenceCircuits
from qiskit_ibm_provider import IBMProvider
circ = ReferenceCircuits.bell()
backend = IBMProvider().get_backend("ibmq_qasm_simulator")
backend.open_session()
job = backend.run(circ)
print(f"Job ID: {job.job_id()}")
print(f"Result: {job.result()}")
# Close the session only if all jobs are finished and
# you don't need to run more in the session.
backend.cancel_session()
Session can also be used as a context manager:
with backend.open_session() as session:
job = backend.run(ReferenceCircuits.bell())
assert job.job_id() == session.session_id
Session constructor.
Parameters
max_time (Union
[int
, str
, None
]) – (EXPERIMENTAL setting, can break between releases without warning) Maximum amount of time, a runtime session can be open before being forcibly closed. Can be specified as seconds (int) or a string like “2h 30m 40s”. This value must be in between 300 seconds and the system imposed maximum (opens in a new tab).
Raises
ValueError – If an input value is invalid.
Attributes
active
bool
Return the status of the session.
Return type
bool
Returns
True if the session is active, False otherwise.
session_id
str
Return the session ID.
Return type
str
Returns
Session ID. None until a job runs in the session.
Methods
cancel
Session.cancel()
Set the session._active status to False
Return type
None