To promote faster development of quantum algorithms and applications, IBM has just launched the Qiskit Functions Catalog. This new platform allows developers from IBM and other organizations to release Qiskit Functions, which abstract away parts of the quantum software development process to shorten the time spent developing code. Qiskit Functions also bring certain computing functions into reach for developers who don’t have a full range of technical expertise in quantum computing.
All of this takes advantage of IBM’s open-source Qiskit software development framework, which the company launched in 2017 and has evolved since then to simplify the programming of quantum software.
Background On Qiskit
One of IBM’s long-standing missions is to make quantum computing useful to the world. Programming quantum computers is one of the key challenges of that mission because it requires a deep understanding of quantum concepts such as superposition, entanglement and quantum gates. IBM started tackling that knowledge barrier seven years ago when it released Qiskit.
Since then, Qiskit has greatly simplified programming quantum algorithms as it has evolved into its present form. Today, Qiskit is a comprehensive software stack capable of maximizing advanced quantum hardware performance and simplifying the creation of quantum algorithms and applications.
Qiskit is now quantum’s most popular software. With almost 7 million downloads and over 600,000 users, it has been employed to construct and execute more than 3 trillion quantum circuits. Over the last several years, IBM has focused on expanding Qiskit’s foundational capabilities to make quantum computers functional enough and powerful enough to handle more meaningful tasks. Qiskit’s primary development has been as a tool to help quantum physicists—and anyone with an interest in quantum—advance their understanding of quantum theory and develop innovative quantum technologies.
Even though IBM recently integrated AI and machine learning techniques into a few core Qiskit features, many of Qiskit’s recent improvements are the result of converting its Python library into a high-performance Rust library. Now, the introduction of Qiskit Functions may prove to be the most significant addition to Qiskit since its inception.
What Are Qiskit Functions?
The Qiskit Functions Catalog includes a collection of prepackaged application and performance management services provided by IBM and its partners. These are designed to give users access to expanded quantum programming tools and simplified methods to do their jobs, aligned with different users’ areas of interest. More specifically, IBM designed Qiskit Functions to help quantum scientists and enterprise developers more easily use established foundational quantum capabilities to tackle domain-specific problems in areas such as chemistry, finance or logistics.
Qiskit Functions eliminate the need for data scientists and classical developers to understand the technical details of certain complex quantum computing issues such as error mitigation or AI transpilation. There are two major types of functions in the Catalog. Application functions focus on domain-specific use cases by allowing users to define the domain inputs and outputs. Circuit functions enable discovery of new algorithms and applications by abstracting error mitigation and suppression.
All of these abstracted services reduce development time because desired applications can be stitched together using tens to hundreds of qubits to provide workflows and efficient answers right out of the box, sometimes going beyond what can be easily simulated. Qiskit Functions users will also obtain utility-grade results because the processing is done by IBM’s next-generation Heron QPUs using advanced mapping and performance management techniques.
Over time, Qiskit’s purpose has been expanded from aiding the work of only quantum physicists to a broader development path and a methodology that makes it possible for additional users to define algorithms and applications. The result is that Qiskit Functions Catalog reduces the entry barrier to quantum programming and enables users to focus on their own areas of expertise by abstracting away various quantum concepts from use-case development.
Qiskit Patterns
Last year, IBM published the concept of Qiskit Patterns. Patterns explain that all algorithms can be broken down into four canonical steps:
- Mapping a problem
- Optimizing it for hardware
- Running it on the hardware
- Post-processing it back to the application framework or the application context
Many of IBM’s quantum customers understand how to build an efficient quantum circuit or how to translate their problem into a circuit. However, there are many that struggle with the complexity of optimizing circuits for specific quantum hardware. You could think of this as a breakdown in step 2 of the process just described. Optimization is time-consuming and requires deep hardware-level knowledge and experience; based on years of observation, IBM believes that achieving adequate optimization is often a challenge for a quantum computational scientist.
The good news is that Qiskit Functions can address this problem. Since Qiskit Functions contain pre-built tools that can automate complex optimizations, IBM is building circuit functions that will complete steps 2 through 4 in the list above. This could lead to much better results for users—and a much faster development cycle.
Qiskit Functions can go even further than this. Some of IBM’s enterprise clients need to determine how quantum computing fits into their existing enterprise application workflows. For these users, IBM offers functions that cover all four of the steps noted above. These functions can handle everything from definition of the problem to interpretation of the results. Q-CTRL, QunaSys and Multiverse—partners discussed below—are some of the companies supplying these end-to-end Qiskit Functions.
Circuit And Application Partners
In its role as a partner, IBM is building the circuit function as well as AI circuit optimization, error suppression and error mitigation into one workflow that can be called out of the box. Besides providing these functions itself, IBM is partnering with a variety of third parties that can deliver functionality to Qiskit Functions in the first wave of Qiskit Function partners.
Partners Q-CTRL, Algorithmic and Qedma join IBM in providing functions that can run any arbitrary circuit. These functions provide optimization for target hardware—thus mitigating errors—and attempt to obtain a noise-free result.
In addition to circuit-level function deployment, Q-CTRL is also providing an application optimization function. Meanwhile QunaSys is the first Qiskit Functions partner dedicated to problems in chemistry.
Democratizing Quantum Computing With Qiskit Functions
Qiskit Functions represents a significant step towards democratizing quantum computing. It expands Qiskit’s role as a tool previously focused on a highly specialized group of quantum physicists into an expansive platform that includes a broader range of quantum scientists and enterprise developers.
In the bigger picture, Qiskit Function is starting to bridge the gap between quantum theory and practical applications. It simplifies quantum development by providing pre-packaged applications and circuits that researchers can use to focus on their specific domains of interest. By doing this, Qiskit Functions also accelerates research by reducing the time it takes to develop and execute quantum experiments.
As Qiskit Functions continues to evolve, I expect to see significant growth in the number of pre-packaged abstractions, along with a wider range of applications. This growth will attract even more scientists and developers, which should drive more new developments in the quantum ecosystem at an even faster pace. Additionally, when future advancements in quantum error correction and modular architectures are incorporated, Qiskit Functions will incorporate those and produce even more complex and powerful quantum algorithms.