Qiskit Runtime overview¶
Qiskit Runtime is a quantum computing service and programming model that streamlines quantum computations. It is designed to use classical compute resources to execute quantum circuits with more efficiency on quantum processors. It improves efficiency by giving you access to primitives, which are designed to run in sessions.
Primitives are a simplified interface for defining near-time quantum-classical workloads required to efficiently build and customize applications. They are designed to be run in sessions, which essentially bind the backend to your session jobs for a period of time so they are not interrupted by other users’ jobs.
The following figure illustrates how the Qiskit Runtime program jobs are run when using sessions and primitives. The first job waits through the regular fair-share queue. When it starts to run, the session is started. After the first session job is finished processing, the next job in the session is run. This process continues until the session is paused (due to a lack of queued session jobs) or closed.
Primitives are core functions that provide a simplified interface for defining near-time quantum-classical workloads required to efficiently build and customize applications. The initial release of Qiskit Runtime includes two primitives: Estimator and Sampler. They perform foundational quantum computing tasks and act as an entry point to the Qiskit Runtime service.
The estimator primitive allows users to efficiently calculate and interpret expectation values of quantum operators required for many algorithms. Users specify circuits that prepare quantum states and then Pauli-basis observables to measure on those states. The estimator can use advanced error mitigation capabilities to improve the accuracy of the returned expectation values.
This primitive takes a user circuit as input and returns a quasiprobability distribution over the measurement outcomes. This generalizes histograms from quantum circuits to allow for error mitigation of readout.
A session is a contract between the user and the Qiskit Runtime service that ensures that a collection of jobs can be grouped and jointly prioritized by the quantum computer’s job scheduler. This eliminates artificial delays caused by other users’ jobs running on the same quantum device during the session time.