How do Qiskit Runtime primitives differ from backend.run?ΒΆ
There are two methods for accessing IBM Quantum systems. First, the
qiskit-ibm-provider package provides the backend.run()
interface,
allowing direct access to IBM Quantum systems with no pre- or post-processing
involved. This level of access is suitable for those users who want precise
control over circuit execution and result processing. This level of access
is needed for those looking to work at the level Kernel developer developing,
for example, circuit optimization routines, error mitigation techniques, or
characterizing quantum systems.
In contrast, Qiskit Runtime is designed to streamline algorithm and application construction by removing the need for users to understand technical hardware and low-level software details. Advanced processing techniques for error suppression and mitigation are automatically applied, giving users high-fidelity results without the burden of having to code these routines themselves. The inclusion of sessions within Qiskit Runtime allows users to run iterative algorithm circuits back to back, or batch collections of circuits without having to re-queue each job. This results in more efficient quantum processor utilization and reduces the total amount of time users spend running complex computations.
Function |
backend.run |
Qiskit Runtime Primitives |
---|---|---|
Abstracted interface for circuits and variational workloads |
No |
Yes |
Sessions to improve performance for a sequence of jobs |
No |
Yes |
Automated application of error suppression and mitigation techniques |
No |
Yes |
Increased performance for variational algorithms |
No |
Yes |
Pulse Gates |
Yes |
Yes |
Dynamic circuits |
Yes |
No |