Skip to content

Commit

Permalink
Prepare 0.8 release (#1207)
Browse files Browse the repository at this point in the history
* Organize 0.8 release notes

* Update min terra version

* Apply suggestions from code review

* Fix reno syntax issue

* Move release notes to a a 0.8 directory

Co-authored-by: Matthew Treinish <[email protected]>
  • Loading branch information
chriseclectic and mtreinish authored Apr 1, 2021
1 parent bd91677 commit 1911221
Show file tree
Hide file tree
Showing 19 changed files with 222 additions and 117 deletions.
70 changes: 70 additions & 0 deletions releasenotes/notes/0.8/0.8-release-179e83619783737f.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
prelude: |
The 0.8 release includes several new features and bug fixes. The
highlights for this release are: the introduction of a unified
:class:`~qiskit.provider.aer.AerSimulator` backend for running circuit
simulations using any of the supported simulation methods; a simulator
instruction library (:mod:`~qiskit.providers.aer.library`)
which includes custom instructions for saving various kinds of simulator
data; MPI support for running large simulations on a distributed
computing environment.
features:
- |
This release includes support for building qiskit-aer with MPI support to
run large simulations on a distributed computing environment. See the
`contributing guide <https://github.com/Qiskit/qiskit-aer/blob/master/CONTRIBUTING.md#building-with-mpi-support>`__
for instructions on building and running in an MPI environment.
- |
It is now possible to build qiskit-aer with CUDA enabled in Windows.
See the
`contributing guide <https://github.com/Qiskit/qiskit-aer/blob/master/CONTRIBUTING.md#building-with-gpu-support>`__
for instructions on building from source with GPU support.
- |
When building the qiskit-aer Python extension from source several build
dependencies need to be pre-installed to enable C++ compilation. As a
user convenience when building the extension any of these build
dependencies which were missing would be automatically installed using
``pip`` prior to the normal ``setuptools`` installation steps, however it was
previously was not possible to avoid this automatic installation. To solve
this issue a new environment variable ``DISABLE_DEPENDENCY_INSTALL``
has been added. If it is set to ``1`` or ``ON`` when building the python
extension from source this will disable the automatic installation of these
missing build dependencies.
- |
Adds support for optimized N-qubit Pauli gate (
:class:`qiskit.circuit.library.generalized_gates.PauliGate`) to the
:class:`~qiskit.providers.aer.StatevectorSimulator`,
:class:`~qiskit.providers.aer.UnitarySimulator`, and the
statevector and density matrix methods of the
:class:`~qiskit.providers.aer.QasmSimulator`.
upgrade:
- |
The minimum version of `Conan <https://conan.io/>`__ has been increased to 1.31.2.
This was necessary to fix a compatibility issue with newer versions of the
`urllib3 <https://pypi.org/project/urllib3/>`__ (which is a dependency of Conan).
It also adds native support for AppleClang 12 which is useful for users with
new Apple computers.
- |
``pybind11`` minimum version required is 2.6 instead of 2.4. This is needed
in order to support CUDA enabled compilation in Windows.
- |
Cython has been removed as a build dependency.
- |
Removed x90 gate decomposition from noise models that was deprecated
in qiskit-aer 0.7. This decomposition is now done by using regular
noise model basis gates and the qiskit transpiler.
fixes:
- |
Fixes bug with the :meth:`~qiskit.providers.aer.QasmSimulator.from_backend`
method of the :class:`~qiskit.provider.aer.QasmSimulator` that would set the
``local`` attribute of the configuration to the backend value rather than
always being set to ``True``.
- |
Fixes bug in
:meth:`~qiskit.providers.aer.noise.NoiseModel.from_backend` and
:meth:`~qiskit.providers.aer.QasmSimulator.from_backend` where
:attr:`~qiskit.providers.aer.noise.NoiseModel.basis_gates` was set
incorrectly for IBMQ devices with basis gate set
``['id', 'rz', 'sx', 'x', 'cx']``. Now the noise model will always
have the same basis gates as the backend basis gates regardless of
whether those instructions have errors in the noise model or not.
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
features:
- |
The :meth:`~qiskit.providers.aer.QasmSimulator.run` method for the
The :meth:`~qiskit.providers.aer.AerSimulator.run` method for the
:class:`~qiskit.providers.aer.AerSimulator`,
:class:`~qiskit.providers.aer.QasmSimulator`,
:class:`~qiskit.providers.aer.StatevectorSimulator`, and
:class:`~qiskit.providers.aer.UnitarySimulator` backends now takes a
Expand All @@ -16,7 +17,7 @@ features:
from qiskit.providers.aer import Aer
backend = Aer.get_backend('qasm_simulator')
backend = Aer.get_backend('aer_simulator')
circuit = QuantumCircuit(2)
qc.h(0)
Expand Down
81 changes: 81 additions & 0 deletions releasenotes/notes/0.8/aer-simulator-be393c2caaabb609.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
features:
- |
Adds the new :class:`~qiskit.provider.aer.AerSimulator` simulator backend
supporting the following simulation methods
* `automatic`
* `statevector`
* `stabilizer`
* `density_matrix`
* `matrix_product_state`
* `unitary`
* `superop`
The default `automatic` method will automatically choose a simulation
method separately for each run circuit based on the circuit instructions
and noise model (if any). Initializing a simulator with a specific
method can be done using the `method` option.
.. code::python
from qiskit.providers.aer import AerSimulator
# Create a MPS simulator backend
backend = AerSimulator(method='matrix_product_state')
GPU simulation for the statevector, density matrix and unitary methods
can be enabled by setting the `device='GPU'` backend option.
.. code::python
from qiskit.providers.aer import AerSimulator
# Create a GPU statevector backend
backend = AerSimulator(method='statevector', device='GPU')
Note that the `unitary` and `superop` methods do not support measurement
as they simulate the unitary matrix or superopator matrix of the run
circuit so one of the new :func:`~qiskit.provider.aer.library.save_unitary`,
:func:`~qiskit.provider.aer.library.save_superop`, or
:func:`~qiskit.provider.aer.library.save_state` instructions must
be used to save the simulator state to the returned results. Similarly
state of the other simulations methods can be saved using the
appropriate instructions. See the :mod:`qiskit.provider.aer.library`
API documents for more details.
Note that the :class:`~qiskit.provider.aer.AerSimulator` simulator
superceds the :class:`~qiskit.provider.aer.QasmSimulator`,
:class:`~qiskit.provider.aer.StatevectorSimulator`, and
:class:`~qiskit.provider.aer.UnitarySimulator` backends which will
be deprecated in a future release.
- |
Updates the :class:`~qiskit.providers.aer.AerProvider` class to include
multiple :class:`~qiskit.provider.aer.AerSimulator` backends preconfigured
for all available simulation methods and simulation devices. The new
backends can be accessed through the provider interface using the names
* `"aer_simulator"`
* `"aer_simulator_statevector"`
* `"aer_simulator_stabilizer"`
* `"aer_simulator_density_matrix"`
* `"aer_simulator_matrix_product_state"`
* `"aer_simulator_extended_stabilizer"`
* `"aer_simulator_unitary"`
* `"aer_simulator_superop"`
Additional if Aer was installed with GPU support on a compatible system
the following GPU backends will also be available
* `"aer_simulator_statevector_gpu"`
* `"aer_simulator_density_matrix_gpu"`
* `"aer_simulator_unitary_gpu"`
Example
.. code::python
from qiskit import Aer
# Get the GPU statevector simulator backend
backend = Aer.get_backend('aer_simulator_statevector_gpu')
Original file line number Diff line number Diff line change
@@ -1,28 +1,33 @@
---
features:
- |
Introduce a new method for performing measurements with the Extended
Stabilizer simulator, called Norm Estimation. This method can be used by passing
the following options to the ``QasmSimulator`` provider::
Added a new ``norm estimation`` method for performing measurements when using
the `"extended_stabilizer"` simulation method. This norm estimation method
can be used by passing the following options to the
:class:`~qiskit.providers.aer.AerSimulator` and
:class:`~qiskit.providers.aer.QasmSimulator` backends
.. code::python
simulator = QasmSimulator(
method='extended_stabilizer,
extended_stabilizer_sampling_method="norm_estimation"
)
method='extended_stabilizer',
extended_stabilizer_sampling_method='norm_estimation')
The norm estimation method is slower than the alternative `metropolis`
or `resampled_metropolis` options, but gives better performance on circuits
with sparse output distributions. See the documentation of the ``QasmSimulator``
provider for more information.
with sparse output distributions. See the documentation of the
:class:`~qiskit.providers.aer.QasmSimulator` for more information.
fixes:
- |
Fixes an issue where the Extended Stabilizer simulator would give incorrect
results on quantum circuits with sparse output distributions. Refer to
`#306 <https://github.com/Qiskit/qiskit-aer/issues/306>` for more information
and examples.
Fixes an issue where the Extended `"extended_stabilizer"` simulation method
would give incorrect results on quantum circuits with sparse output
distributions. Refer to
`#306 <https://github.com/Qiskit/qiskit-aer/issues/306>` for more
information and examples.
upgrade:
- |
The following options for the Extended Stabilizer simulator have changed.
The following options for the `"extended_stabilizer"` simulation method
have changed.
+ ``extended_stabilizer_measure_sampling``: This option has been replaced
by the options ``extended_stabilizer_sampling_method``, which controls
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ features:
See the :mod:`qiskit.providers.aer.library` API documentation
for details on method compatibility for each instruction.
Note that the snapshot instructions
:class:`~qiskit.providers.aer.extensions.SnapshotStatevector`,
:class:`~qiskit.providers.aer.extensions.SnapshotDensityMatrix`,
:class:`~qiskit.providers.aer.extensions.SnapshotStabilizer` are
still supported but will be deprecated in a future release.
- |
Adds :class:`qiskit.providers.aer.library.SaveExpectationValue` and
:class:`qiskit.providers.aer.library.SaveExpectationValueVariance`
Expand All @@ -35,6 +41,10 @@ features:
:class:`~qiskit.providers.aer.library.save_expectation_value` and
:class:`~qiskit.providers.aer.library.save_expectation_value_variance`
circuit methods which is added to ``QuantumCircuit`` when importing Aer.
Note that the snapshot instruction
:class:`~qiskit.providers.aer.extensions.SnapshotExpectationValue`,
is still supported but will be deprecated in a future release.
- |
Adds :class:`qiskit.providers.aer.library.SaveProbabilities` and
:class:`qiskit.providers.aer.library.SaveProbabilitiesDict` quantum
Expand All @@ -44,6 +54,10 @@ features:
:class:`~qiskit.providers.aer.library.save_probabilities` and
:class:`~qiskit.providers.aer.library.save_probabilities_dict` circuit
methods which is added to ``QuantumCircuit`` when importing Aer.
Note that the snapshot instruction
:class:`~qiskit.providers.aer.extensions.SnapshotProbabilities`,
is still supported but will be deprecated in a future release.
- |
Adds :class:`qiskit.providers.aer.library.SaveAmplitudes` and
:class:`qiskit.providers.aer.library.SaveAmplitudesSquared`
Expand All @@ -53,3 +67,23 @@ features:
:class:`~qiskit.providers.aer.library.save_amplitudes` and
:class:`~qiskit.providers.aer.library.save_amplitudes_squared`circuit
methods which is added to ``QuantumCircuit`` when importing Aer.
- |
Adds instructions for setting the state of the simulators. These
instructions must be defined on the full number of qubits in the circuit.
They can be applied at any point in a circuit and will override the
simulator state with the one specified. Added instructions are
* :class:`qiskit.providers.aer.library.SetDensityMatrix`
* :class:`qiskit.providers.aer.library.SetStabilizer`
* :class:`qiskit.providers.aer.library.SetStatevector`
* :class:`qiskit.providers.aer.library.SetUnitary`
These instruction can be appended to a quantum circuit by using the
:class:`~qiskit.providers.aer.library.set_density_matrix`,
:class:`~qiskit.providers.aer.library.set_stabilizer`,
:class:`~qiskit.providers.aer.library.set_statevector`,
:class:`~qiskit.providers.aer.library.set_unitary`
circuit methods which are added to ``QuantumCircuit`` when importing Aer.
See the :mod:`qiskit.providers.aer.library` API documentation
for details on method compatibility for each instruction.
15 changes: 15 additions & 0 deletions releasenotes/notes/0.8/mps-4f8541d5b4bf1c18.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
features:
- |
Added support for diagonal gates to the `"matrix_product_state"` simulation
method.
- |
Added support for the ``initialize`` instruction to the
`"matrix_product_state"` simulation method.
issues:
- |
There is a known issue where the simulation of certain circuits with a Kraus
noise model using the `"matrix_product_state"` simulation method can cause
the simulator to crash. Refer to
`#306 <https://github.com/Qiskit/qiskit-aer/issues/1184>` for more
information.
8 changes: 0 additions & 8 deletions releasenotes/notes/allow_cuda_on_win-c3e5c920528eb282.yaml

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions releasenotes/notes/config-local-46d47ae08eeab339.yaml

This file was deleted.

4 changes: 0 additions & 4 deletions releasenotes/notes/cython-dep-removed-ffc095dcc575c449.yaml

This file was deleted.

8 changes: 0 additions & 8 deletions releasenotes/notes/diagnoal-b06c925f44540f8e.yaml

This file was deleted.

11 changes: 0 additions & 11 deletions releasenotes/notes/fix-noise-basis-gates-ecdfa43394ff78e3.yaml

This file was deleted.

6 changes: 0 additions & 6 deletions releasenotes/notes/initialize-in-mps-e9f8b70c798e7e25.yaml

This file was deleted.

7 changes: 0 additions & 7 deletions releasenotes/notes/mps-kraus-bug-1299a1c96e947125.yaml

This file was deleted.

10 changes: 0 additions & 10 deletions releasenotes/notes/pauli-instruction-c3aa2c0c634e642e.yaml

This file was deleted.

6 changes: 0 additions & 6 deletions releasenotes/notes/remove-deprecated-ba6eb1060207af99.yaml

This file was deleted.

22 changes: 0 additions & 22 deletions releasenotes/notes/set-state-a029d86b357df0dd.yaml

This file was deleted.

Loading

0 comments on commit 1911221

Please sign in to comment.