Chapter 9. Working with Providers and Backends
There are lots of different ways to run quantum circuits and quantum algorithms. If we want to see how a noise-free quantum computer behaves, we could choose from a few different simulators (e.g., statevector
or unitary
), and we’re not limited to just local simulators. Chances are, at some point you will want to run a circuit on a real quantum system, accessed remotely.
To manage all these options, and ensure all backends are compatible with the same data types, Qiskit defines a general Backend
object. This makes it easier to interchange backends in our code (and also to remember what the right code is in the first place). You’ve already seen these Backend
objects in action, as we use the Backend.run()
method every time we run a circuit. Real quantum systems have unique properties that can change regularly. The Backend
object also helps us access this information so we can investigate different systems and make decisions about which systems to use. We can access this information both programmatically and through graphical user interfaces.
These Backend
objects are organized by providers. If you’ve read the rest of this book, you will have used the Aer
and BasicAer
providers, which manage simulator backends that run on your local machine (e.g., using .get_backend()
to retrieve a backend object by name), but we can install other providers to use other backends (real or simulated). Examples are the IBM Quantum provider (from the qiskit-ibmq-provider ...
Get Qiskit Pocket Guide now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.