Qiskit Overview. Credit: IBM

In the world of software, there is a concept known as Semantic Versioning to indicate the version number of the software that can indicate both the maturity of the software and the level of changes in the software when a new version is released. Typically, version labelled 0.xxx are known as early software, possible in a beta stage, that can be expected to see significant updates before it becomes a stable and released product. So, it is a big deal when a software product moves from 0.xxx to a 1.0 level which indicates the software at a more stable level for production use.

Qiskit was first introduced by IBM in 2017 and it has gone through over a hundred 0.xxx releases from over 500 contributors since then. Now, IBM has recently made this change for Qiskit and graduated it from the previous 0.46 version to the latest 1.0 version. For the end user, this will mean more stability because “breaking changes” will only occur when the major portion of the version number changes and IBM has committed to support all major versions for a minimum of 18 months.

Semantic Versioning Methodology that IBM will Use for Qiskit

One of the key areas of emphasis IBM has made with version 1.0 of Qiskit is to improve performance in a couple of different ways. Internally, they have rewritten some of the performance critical sections of Qiskit to use the Rust programming language instead of Python. Rust is a language that particularly focuses on performance and the results for compiling programs using Qiskit have been significant. IBM is reporting reductions in the classical memory footprint during 100 qubit program compilations to as much as 1/3 of the previous size and a 39X reduction in the binding and transpiling times compared to earlier versions of Qiskit. This will become important as customers start working with more complex circuits that have larger circuit depths and require classical computers with gigabytes of main memory just to compile the circuit.

This release will help improve performance is that their new AI-based Transpiler Service to improve the optimization algorithms in their transpiler.  The company has reported a 20-50% improvement circuit depth and CNOT count for algorithms compared to previous versions in the Qiskit SDK. Reduced circuit depth will not only reduce the runtime on the quantum processor, but more importantly it will improve the quality of the circuit’s output. The release will also provide greater support for dynamic circuits that can include branches, loops, and classical expressions with a capability to import and export OpenQASM3 code.

Another improvement includes new features in the Qiskit Runtime Service to incorporate three different modes in how a circuit can be run. The include Job mode for running small jobs, Batch mode for running large numbers of independent jobs, and Session Mode for running iterative workloads as a single experiment. Proper utilization of these modes can improve efficiency because the Job and Batch modes reduce the time a QPU is locked for use by a specific user.

A future release that IBM is planning for later this year is the next release of Qiskit Serverless. This open-source tool coordinates the running of hybrid classical/quantum supercomputing workload across quantum hardware and classical clusters. IBM made an alpha release of this tool in December and is planning on making a beta release of it at the IBM Think 2024 conference later this month.

In addition, another new tool the company is developing is a Qiskit Code Assistant service with a Visual Studio code extension that will help customer generate code for their Qiskit programs. IBM’s quantum team is developing this tool in conjunction with their watsonX AI team and is projecting to have an alpha version available in Q2 2024.

Qiskit still remains as the most popular quantum software development tool with roughly 550 thousand people reported to have used it. According to a survey performed by the Unitary Fund in Q4 2023, approximately 70% of the respondents to the survey were using it. And it should be mentioned that not only are people using it to program the IBM quantum computers, but Qiskit is also supported by many other quantum platforms including those from Alpine Quantum Technology (AQT), Amazon Braket, Microsoft Azure Quantum, IonQ, IQM, Quantinuum, Rigetti, and others. It is not clear if all the features in Qiskit will be supported by those platforms, but it does allow a user to experiment with the different quantum processors by writing a program once in Qiskit and running on different machines to compare the results.

A press release from IBM announcing the expansion of Qiskit is available on their website here and a blog post that goes through IBM’s vision for Qiskit here. A document describing that summarizes the new features in the release is here and an even more new technical paper titled Quantum computing with Qiskit has been posted by IBM on arXiv that describes the Qiskit software architecture, its key components and provides examples of building workflows. It’s worth a good read.

May 15, 2024