IBM makes developing for quantum computers easier with the Qiskit Functions Catalog

IBM today launched the Qiskit Functions Catalog, a new set of services that aims to make programming quantum computers easier by abstracting away many of the complexities of working with these machines.

"I do think it's the next big transition since we put the quantum computer on the cloud," Jay Gambetta, IBM's VP in charge of its quantum programs, told me. "I'm looking forward to seeing what it can do and the only way that's possible is with performant hardware, of course, but also performant software. To me, I'm as excited as when I put the quantum computer on the cloud to see how the community will react to it."

Quantum computers continue to get bigger and better (and more error-corrected). And while we're still at least a few years out from having machines that can run algorithms that would take impossibly long to compute on a classical computer, we are at a point where the current generation of machines is usable for at least a limited set of experiments. It's one thing to have usable hardware, though. It's another to write applications for that hardware.

Launched in 2017, IBM's Qiskit is one of a handful of quantum programming frameworks that also include Microsoft's Q# and Google's Cirq, but it's likely the one with the largest mindshare. The idea behind the Functions Catalog is to enable domain experts -- who may not be experts in managing quantum computers and their fickle ways -- to start using quantum computing. A company like Qedma, for example, is putting its novel way of doing error mitigation into a function.

And that's IBM's overall approach here: work with the wider quantum computing industry to create this library of functions that, just like in programming a classical computer, developers can then call upon in their Qiskit-based applications. Other partners include Q-CTRL, Algorithmiq, and QunaSys. Like Qedma, Algorithmiq is contributing a service that focuses on error mitigation in noisy systems, while QunaSys is offering a service that aims to solve the ground state energy estimation problem, which has some fundamental applications for chemistry-related problems.

"What has driven the progress of software and compute in the classical world of abstraction is becoming a reality in the quantum world," Gambetta said. Not many developers today, after all, focus on writing assembly. Yet in quantum computing, it's not that long ago that developers had to figure out how to map their algorithms to quantum circuits for a specific target hardware. The Qiskit framework already abstracted much of this away and now the Functions Catalog aims to make it easier for non-quantum computing experts to take many of the innovations in the overall ecosystem and apply them to their problems.

"I think this is going to be as big as when we put the computer on the cloud because it's going to transition everyone from having to learn what a quantum gate is and quantum circuits to 'can I actually start to see how quantum computing will be injected into my workflow? And I don't need to worry about these details. And this is just the start," Gambetta said. He also stressed that it's the continuous innovation in software and hardware, combined with the innovations from the larger partner ecosystem, that will bring a simplified developer experience to users that will, eventually, unlock quantum computing's potential.

Now, Gambetta stressed that we're not yet at the point where the company is targeting enterprise developers. "It's gone from the physicist, to the computational scientist, to the chemist. [...] It's opening the aperture to really allow computer scientists to come in and to increase the technical breadth of what can be done with the quantum computer," he said.

As part of today's announcement, IBM is also launching Benchpress, a set of new benchmarks for quantum software development kits. Using over 1,000 tests (with only a handful written by IBM itself), IBM pitted Qiskit against BQSKit, Braket, Cirq, Stak, and TKET. Qiskit, which IBM has been rewriting in Rust to make it more performant, typically outperforms the other SDKs by a wide margin. It was 13 times faster at transpiling and producing circuits, for example, and also created more efficient circuits in the process.