The new Qiskit release contains the introduction of major features across the software, which represents the efforts of the entire community. Thanks to the contributions, support and continuous feedback from the growing open-source community, Qiskit is now a tool used in academia, research, startups and even game development.
In this post, we give a high-level view of the new features, and provide links to tutorial notebooks which delve into more details for each of them.
This release contains updates to the core Terra element on several fronts, introducing new features that benefit a wide range of users.
- OpenPulse Python API: We introduce tools to program quantum computers at the pulse level, following the OpenPulse protocol. Learn more about using Qiskit to create pulse shapes and timed schedules by following this tutorial on qubit calibration.
- Composite circuits, parameterized circuits: Circuit-level programming has become more powerful. You can compose circuits from sub-circuits in a hierarchical fashion, and parametrize gates while binding parameters to create a family of circuits. See the circuits tutorial for more details.
- New transpiler functionality: Multiple new circuit analysis and transformation passes, as well as preset pipelines of passes are included in this release. See the transpiler tutorial to learn more the circuit optimization tools at your disposal. If you’d like to extend the transpiler by plugging in new passes, check out the guide on writing a pass.
- Quantum information modules: The Qiskit quantum information module is introduced for working with different types of operators and channels, as well as generating random ones and synthesizing them into circuits. See the tutorial on using Operators to learn more about how to insert arbitrary unitaries in circuits.
The installation of Qiskit now includes Qiskit Aqua 0.5 and Qiskit Chemistry 0.5. Qiskit AI, Finance and Optimization continue to be included in Aqua.
Aqua adds numerous well-known algorithms: Harrow-Hassidim-Lloyd (HHL), Shor, Bernstein-Vazirani, Simon, and Deutsch-Josza. Aqua also includes a novel algorithm, qGAN, which supports Generative Adversarial Networks (GANs) in for use in AI and Finance. As for the algorithmic components, Aqua now includes the novel Analytic Quantum Gradient Descent optimizer, which was the winning project at the recent Qiskit Camp 2019, and the ADAptive Moment estimation (ADAM) optimizer. New, pluggable and reusable algorithmic components have been added to the library. These include neural networks, eigenvalue estimators, and reciprocal calculators. The oracle and feature map libraries have been extended and enhanced. Furthermore, Aqua comes with numerous performance improvements, such as circuit caching for incremental circuit reusability, integration with Aer and its noise models, support for using measurement error mitigation from Ignis, and a collection of reusable circuits for use in Aqua algorithms and components.
For Qiskit AI, the Variational Quantum Classifier (VQC) algorithm has been extended to support Quantum Neural Networks, while the new qGAN algorithm supports GANs on a quantum computer for loading random distributions.
Qiskit Chemistry adds support for 2nd order Møller–Plesset perturbation theory (MP2) for improved quantum-state initialization.
Qiskit Finance now includes support for new problems, such as portfolio optimization and diversification, pricing, risk analysis, as well as loading and processing stock-market time-series data. The qGAN algorithm can also be used to support option pricing.
Finally, Qiskit Optimization comes with a novel component that takes a high-level optimization problem specification and automatically prepares an Ising Hamiltonian to be used in the solution.
The Qiskit Aer 0.2 release includes several new features for the simulator related to performance optimizations and the types of simulations that can be performed.
First of all the QasmSimulator now includes 3 simulation method:
1. A statevector simulation method which can simulate general circuits and general Kraus noise models. This has memory requirements and runtime that are exponential in the number of qubits.
2. A Stabilizer simulator method based on Aaronson and Gottesman (2004) which can simulate Clifford circuits with Clifford + reset noise models. This can handle tens of thousands of qubits and is useful for quantum error correction studies which involve noisy Clifford circuits.
3. An extended stabilizer simulator method based on Bravyi et al. (2018) which can simulate Clifford + T gate circuits with Clifford + reset noise models. This is an approximate method can simulate up to 64 qubits and has a runtime that increases exponentially with the number of T gates. See the Extended Stabilizer tutorial for more details.
In addition, the Qiskit Aer noise module includes several additions:
1. Integrated with the new Qiskit Terra QuantumChannel and Operator classes so that these objects can be seamlessly converted to and from quantum errors in Qiskit Aer for noisy simulation. See the Custom Gate Noise tutorials for an example showing this integration.
2. A noise transformation functions that can be used to find useful approximate noise models for general single-qubit gate errors. This can be used, for example, to generate approximate Clifford noise models from a general noise model for execution on the stabilizer or extended stabilizer simulator. See the Noise Transformations tutorial for an example.
3. A noise remapping function that can be used to remap the qubits of a noise model. In particular this allows for selecting a subset of qubits in a device noise model for use in simulations.
Various optimizations are also included such as automatic configuration of parallelization strategies for multicore CPU simulations, gate fusion for improving the runtime or large qubit simulations, and optimized implementations of multi-controlled and multiplexer gates.
Ignis provides a framework for understanding and mitigating noise in quantum devices by using fitting tools to analyze the results and filters that can be applied to mitigate errors. Augmenting our first release last month (0.1), we have added several new features in release 0.1.1:
Measurement error mitigation using tensored calibration data. This means that only two calibration experiments are required for N qubits, provided the noise is uncorrelated. This feature is demonstrated in the measurement mitigation tutorial.
We have added the quantum volume algorithm as outlined in Cross et. al. “Validating quantum computers using randomized model circuits”, which allows for holistic verification of device performance. Ignis can generate the circuits to run quantum volume, fit the results and determine the volume of a device. Quantum volume is demonstrated in this notebook.
The Qiskit project is made up of several elements each performing different functionality. Each is independently useful and can be used on its own, but for convenience we provide this repository and meta-package to provide a single entry point to install all the elements at once.
After releasing Qiskit 0.9, we had the launch of the IBM Q Experience 2.0 which is a rebuilt and redesigned version of our graphical circuit composer, with the ability to run Qiskit in Jupyter notebooks in the cloud. With this release, we added support for several new API endpoints in qiskit-ibmq-provider, which resulted in a new minor release, and therefore the Qiskit package version number was bumped to 0.10.0.
If you would like to read more about our versioning policies see here.
How can I get started with Qiskit 0.10 today?
- Install Qiskit
- Follow the “Getting started with Qiskit Tutorial”
- Take a look at some of the “Good First Issues” in Terra
And remember, the community is here if you get stuck!