Coming soon: Qiskit 1.0!

Understand this faster with AI
--1ListenShareBy Abby Mitchell, Jake Lishman, Luciano Bello, Matthew Treinish & Blake JohnsonQiskit 1.0 will be released in February 2024 🎉This is a huge milestone, the culmination of six years of open-source efforts, all made possible by the continued enthusiasm of thousands of users and the ongoing support of hundreds of contributors.In this article you’ll find the following:The article below is a repost of our original announcement on the IBM Research blog.This upcoming release signals a new phase for Qiskit development, one centered on performance, stability and usability. Qiskit 1.0 is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.What does this mean, exactly? We have been making numerous changes over the past few minor releases to prepare for this new phase, with an emphasis on the following:We know it’s not enough for us to just say “Qiskit is more performant now!” We know you want to see the numbers, so let’s take a deeper look at what we mean when we talk about improved performance for Qiskit 1.0.There are many different metrics to analyze for judging performance in a project like Qiskit, we’re going to focus on two: memory and speed.In terms of speed, many features in Qiskit 1.0 just work faster now than they used to, due to ongoing internal refactoring and the introduction of Rust code under the hood. For example, the transpiler in Qiskit 1.0 can bind and transpile circuits 16x faster than Qiskit 0.33 (while also returning shorter circuit depths). See below for a comparison of the transpilation capabilities for different types of 100+ qubit circuits. The blue bars indicate how many times faster Qiskit can transpile these circuits compared to TKET (an alternative circuit building SDK), and the pink bars indicate the percentage reduction in two-qubit gates:Similarly, when it comes to memory, we’ve done a lot of internal refactoring to reduce the footprint of circuits, with Qiskit 1.0 demonstrating an average 55% decrease in memory usage compared to Qiskit 0.39. The chart below shows data collected on the maximum memory used in building a 127-qubit Two Local circuit at increasing circuit depth, comparing the last three Qiskit versions with the upcoming 1.0 version:Before the full release in February 2024, we will be offering a very early pre-release of Qiskit 1.0 on December 4, 2023. This will include a subset of the changes coming in the full 1.0 release two months later.As an open-source project, we have always strived to bring our community along with us in our development journey, and so we’re thrilled to be able to provide this opportunity for users and contributors to test out Qiskit 1.0 early. As always, we greatly appreciate any bug reports and feedback made by opening an issue in our GitHub repository.Also, in early February 2024 (after the 1.0 pre-release but before the 1.0 stable release) we will release an additional Qiskit 0.46. This version will be compatible with 0.45, and will be a useful stepping stone in the transition to 1.0. We will continue to support Qiskit 0.46 for a further six months, overlapping with the release of Qiskit 1.0. This version will contain warnings for everything that is changing in Qiskit 1.0 and possibly some bug fixes, but no new features.The following instructions are relevant for upgrading to Qiskit 1.0 or installing the pre-release.The most important thing to know when the time comes to upgrade is this:You will need to create a new virtual environment to install Qiskit 1.0.Qiskit 1.0 will use a new packaging structure, and you will not be able to upgrade an existing Qiskit 0.x installation to Qiskit 1.0 in-place. This is the only time we expect to break packaging; you will be able to upgrade from Qiskit 1.0 and beyond in-place.Qiskit 1.0 is not yet available, so there is nothing you need to do immediately. When it is released, you will not be able to use pip install -U qiskit to upgrade from any Qiskit 0.x version to 1.0.To upgrade, you will need to begin a new virtual environment.For example, using the standard tool venv, you might do the following:Note: For installing the pre-release, you can use the same steps above. The only difference is that for the last line, you should run pip install ‘qiskit==1.0.0b1’ instead.You can follow similar steps if you prefer to use virtualenv, Conda, or any other virtual-environment management. Consult the documentation for your chosen environment for more information on how to create new ones.In addition to creating a new virtual environment, you might need to adapt your code to work with Qiskit 1.0, as there will be some breaking changes with respect to 0.x.To prepare for this, we recommend that you install Qiskit 0.46 when it is released in early February 2024, and try running your code to see if anything breaks. Where there are places that you need to change, you will see DeprecationWarnings being issued, which will include descriptions of how to modify your code for Qiskit 1.0.We will support Qiskit 0.46 with bugfixes, but no new features, for six months after its release. This will give users time to make modifications, and will also give library maintainers time to upgrade any libraries users may depend on.It will take some time for downstream projects to begin supporting Qiskit 1.0. Please be patient with these projects; it is a lot of work to support new versions of libraries, and it can take maintainers time to switch over.As an end user, you must not install packages that require Qiskit versions before Qiskit 1.0 in the same environment where you have Qiskit 1.0 installed.Doing so could break your virtual environment, and you might need to create a new one.Qiskit 1.0 will include breaking changes, and we do not expect that packages supporting the current 0.44 or 0.45 series will necessarily support 1.0 unchanged.We recommend two immediate modifications to your dependency management:After implementing the above steps, but before the full release of Qiskit 1.0 we recommend testing your project with Qiskit 0.46 once it is released in early February. This will enable you to find all the warnings it will generate so you can upgrade your library to support Qiskit 1.0 when it is released. We will support Qiskit 0.46 with bug fixes for six months after the release of Qiskit 1.0, to give you time to begin supporting 1.0.Once Qiskit 1.0 is released in February 2024 (and you have sufficiently tested it with your codebase), we recommend releasing a new version of your package with updated version requirements.Throughout the history of Qiskit development, we have strived to keep pace with the rapid progress of quantum technology while also trying very hard to keep breaking changes to a minimum, and to provide a clean upgrade path that allows library authors to support multiple versions of the Qiskit package simultaneously.Qiskit 1.0 will require some changes that could not necessarily be made safely in this manner. These largely affect data-structure internals, which we could not change smoothly without severely compromising performance. We hope that many of these changes will not affect user code, but are aware that this is not always the case. The best way to prepare for the transition to 1.0, and understand which breaking changes will impact you, is to try out the Qiskit 1.0 pre-release and the final minor version Qiskit 0.46 when they are released.With the transition to Qiskit 1.0 the development cycle of Qiskit is also changing. There will be a minimum of one year between major releases, and minor version releases will happen as usual every three months. This means that breaking changes will only occur during major releases. To dig into the details of how the release cycles are changing and why, you can check out our open RFC here.While we anticipate the release of Qiskit 1.0 will result in some initial disruption, we see this as being necessary to pave the way towards a more stable and less breaking future for the package.We are incredibly thankful to everyone who has taken the time over the past six years to get us to this place, whether it was a pull request, bug report, or just a comment on slack. Please keep it up! We are very proud of how far we’ve come, and can’t wait to embark on this next phase of our development journey with your continued support. Stay tuned for more Qiskit 1.0 updates!Want to know more about what’s happening for Qiskit 1.0 at a codebase level? These resources may be of interest to you:
Tags
Source Information
Discussion
0 professional contributions
Sign in to join this professional discussion.
Be the first to add a constructive contribution.
