By Robert Davis, Technical Writer, IBM Quantum and Qiskit
There’s been a lot of buzz surrounding “Qiskit Runtime,” including evidence that it can make quantum programs run even faster. But what is it? How does it work? Who should use it? Since it has the word “Qiskit” in its name, we figured the blog would be a good place to dig into what this service is and how it may offer some value to both experienced Qiskitters, and those who are just getting started. So, if you’re an existing Qiskit user, hello! Read on to learn more about Qiskit Runtime. And if you’re a new user, welcome! Qiskit Runtime exists to make it easier for you to create powerful algorithms and run them at scale, and we’re excited to tell you all about it.
Qiskit Runtime is a programming model and containerized execution environment for deploying quantum programs launched by IBM Quantum developers last year — and we’ll explain what those words mean in this blog. But first, let’s cover some basics. Qiskit is a hardware-agnostic software development kit that gives users the ability to build, compile, run, and analyze quantum circuits and quantum programs. Qiskit makes it easy to control the interaction between quantum software and quantum hardware, and that’s great for quantum researchers and kernel developers who are interested in things like error mitigation or low-level pulse controls. However, as quantum computing matures, the field is increasingly attracting new categories of users, such as algorithm developers and applications researchers, who just want results without getting into the intricacies of hardware or dealing with quantum noise. Qiskit Runtime introduces new layers of abstraction that make it easy to access high performance quantum computing systems, run quantum circuits at speed, and get error-mitigated results.
Ready to see what Qiskit Runtime can do for you? Click here to get started.
To better understand how this works, let’s take a look back to see why Qiskit Runtime was first introduced, and how it makes cloud-based quantum computing faster.
The Earliest Days of Cloud-Based Quantum
The debut of cloud-based quantum processing in May, 2016 made quantum computers more accessible than ever before, but using them wasn’t a frictionless process, at first. Researchers typically had to learn about the specifics of quantum hardware to tailor their code to individual quantum resources, and even then, running jobs on that hardware required patience.
To execute a quantum program, users first had to send circuits from their local machine to a cloud data center potentially hundreds of miles away. There, a cloud services provider would authenticate the circuits before sending it to a quantum data center perhaps even farther away. It was only then that a quantum computer would run each circuit and send results back to the user. On its own, that may not sound too different from how most cloud services work. Quantum computing, however, isn’t like most cloud services.
Unlike streaming a movie or uploading a document, the vast majority of real-world quantum applications require an iterative back-and-forth between quantum and classical resources. So when early users of cloud-enabled quantum computing received results from a quantum system, those results were usually only intended to further optimize the parameters of the quantum circuit, which would then make another trip to the quantum data center and back. Each one of these circuit-optimizing iterations meant jumping back in the queue of all the other quantum circuits waiting their turn. This resulted in a workflow that was inefficient.
A Crash Course in Containerization
First announced last spring, Qiskit Runtime delivered significant improvements to these less-efficient workflows by leveraging a cloud computing concept known as “containerization.” In cloud computing, a container is just an executable unit of software that makes applications more portable. A container packages an application’s code along with all its libraries and dependencies, and makes it easy to run that application on any system.
Rather than plucking a circuit from a user’s local quantum program and sending it on the long journey to quantum hardware and back, Qiskit Runtime packages the entire quantum program and all its dependencies into a container, so it can execute on quantum hardware in closer proximity to classical hardware. Users need only send their updated parameters with each iteration, rather than an entire circuit. With this updated programming model, users could quickly run multiple iterative loops between quantum and classical resources in that container before bringing results back to their local machines. This is why we refer to Qiskit Runtime as a containerized execution environment.
Cloud-Based Quantum Expands Its Horizons
This week, the Qiskit Runtime development team launched a new update of Qiskit Runtime as well as a new way to access it as a managed service (in beta) on the IBM Cloud with pay-as-you-go pricing. The update will introduce an array of novel features and capabilities, including a diverse collection of primitives that will give more programmers an entry point to the Qiskit Runtime service.
In computing, primitives are a kind of simple pre-made program — core functions that a programmer can use to take care of basic tasks. Qiskit Runtime primitives will come with built-in capabilities that enable them to easily handle essential quantum computing tasks while also accounting for the latest developments in quantum hardware and software. That means researchers and developers will be able to spend less time worrying about how the latest software updates will interact with their code, and more time exploring the power and possibilities of quantum computing.
The new Qiskit Runtime introduces two primitive programs to start, both aimed at making it easier for users to get meaningful information out of quantum systems. Because quantum computers are inherently probabilistic and highly sensitive to environmental noise, they generally return a range of different solutions when given the same problem more than once. This means that, in most cases, the only way to get meaningful results from a quantum computer is to run a problem multiple times.
When users run their problem multiple times, they generally just get a readout of all the answers the quantum computer returns, otherwise known as “the counts.” The new Qiskit Runtime Estimator and Sampler primitives are designed to return more immediately meaningful information.
Those who are most interested in finding a final solution to a given problem — but who don’t need to examine the full distribution of counts — will find the Estimator primitive most useful. Estimator makes it possible to efficiently calculate and interpret expectation values of the quantum operators that are required for many algorithms.
Those who want to dive deep into their data and examine their counts with greater context will find the Sampler primitive more useful. When a user inputs a quantum circuit into Sampler, they get an error-mitigated readout of quasiprobabilities, which they’ll use to evaluate the probability of each result. This allows users to more efficiently assess the probability of multiple relevant data points.
Try It Yourself
In addition to the introduction of primitives, everyday Qiskit users can now access premium quantum systems via IBM Cloudwith pay-as-you-go pricing. Available in beta, any Qiskit user can now create an instance of Qiskit Runtime on IBM Cloud and pay with either a credit card or IBM Cloud credits (no subscription required) for standard access to premium, 27-qubit IBM Quantum systems. Anyone who already uses Qiskit Runtime via an IBM Quantum account will still be able to do so, and very little will change for those users.
While right now Qiskit Runtime is for use with IBM hardware, we ultimately hope that Qiskit Runtime will be a framework to connect to any cloud-based quantum hardware. But for now, to learn more about how you can take advantage of the Qiskit Runtime update and all of the latest Qiskit Runtime features in your own work, be sure to take a look at the official announcement from IBM Quantum, here.