Skip to content

Commit 1911221

Browse files
Prepare 0.8 release (#1207)
* 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]>
1 parent bd91677 commit 1911221

19 files changed

+222
-117
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
prelude: |
3+
The 0.8 release includes several new features and bug fixes. The
4+
highlights for this release are: the introduction of a unified
5+
:class:`~qiskit.provider.aer.AerSimulator` backend for running circuit
6+
simulations using any of the supported simulation methods; a simulator
7+
instruction library (:mod:`~qiskit.providers.aer.library`)
8+
which includes custom instructions for saving various kinds of simulator
9+
data; MPI support for running large simulations on a distributed
10+
computing environment.
11+
features:
12+
- |
13+
This release includes support for building qiskit-aer with MPI support to
14+
run large simulations on a distributed computing environment. See the
15+
`contributing guide <https://github.com/Qiskit/qiskit-aer/blob/master/CONTRIBUTING.md#building-with-mpi-support>`__
16+
for instructions on building and running in an MPI environment.
17+
- |
18+
It is now possible to build qiskit-aer with CUDA enabled in Windows.
19+
See the
20+
`contributing guide <https://github.com/Qiskit/qiskit-aer/blob/master/CONTRIBUTING.md#building-with-gpu-support>`__
21+
for instructions on building from source with GPU support.
22+
- |
23+
When building the qiskit-aer Python extension from source several build
24+
dependencies need to be pre-installed to enable C++ compilation. As a
25+
user convenience when building the extension any of these build
26+
dependencies which were missing would be automatically installed using
27+
``pip`` prior to the normal ``setuptools`` installation steps, however it was
28+
previously was not possible to avoid this automatic installation. To solve
29+
this issue a new environment variable ``DISABLE_DEPENDENCY_INSTALL``
30+
has been added. If it is set to ``1`` or ``ON`` when building the python
31+
extension from source this will disable the automatic installation of these
32+
missing build dependencies.
33+
- |
34+
Adds support for optimized N-qubit Pauli gate (
35+
:class:`qiskit.circuit.library.generalized_gates.PauliGate`) to the
36+
:class:`~qiskit.providers.aer.StatevectorSimulator`,
37+
:class:`~qiskit.providers.aer.UnitarySimulator`, and the
38+
statevector and density matrix methods of the
39+
:class:`~qiskit.providers.aer.QasmSimulator`.
40+
upgrade:
41+
- |
42+
The minimum version of `Conan <https://conan.io/>`__ has been increased to 1.31.2.
43+
This was necessary to fix a compatibility issue with newer versions of the
44+
`urllib3 <https://pypi.org/project/urllib3/>`__ (which is a dependency of Conan).
45+
It also adds native support for AppleClang 12 which is useful for users with
46+
new Apple computers.
47+
- |
48+
``pybind11`` minimum version required is 2.6 instead of 2.4. This is needed
49+
in order to support CUDA enabled compilation in Windows.
50+
- |
51+
Cython has been removed as a build dependency.
52+
- |
53+
Removed x90 gate decomposition from noise models that was deprecated
54+
in qiskit-aer 0.7. This decomposition is now done by using regular
55+
noise model basis gates and the qiskit transpiler.
56+
fixes:
57+
- |
58+
Fixes bug with the :meth:`~qiskit.providers.aer.QasmSimulator.from_backend`
59+
method of the :class:`~qiskit.provider.aer.QasmSimulator` that would set the
60+
``local`` attribute of the configuration to the backend value rather than
61+
always being set to ``True``.
62+
- |
63+
Fixes bug in
64+
:meth:`~qiskit.providers.aer.noise.NoiseModel.from_backend` and
65+
:meth:`~qiskit.providers.aer.QasmSimulator.from_backend` where
66+
:attr:`~qiskit.providers.aer.noise.NoiseModel.basis_gates` was set
67+
incorrectly for IBMQ devices with basis gate set
68+
``['id', 'rz', 'sx', 'x', 'cx']``. Now the noise model will always
69+
have the same basis gates as the backend basis gates regardless of
70+
whether those instructions have errors in the noise model or not.

releasenotes/notes/add-new-backend-interface-5d8c1b5c7d47c50c.yaml renamed to releasenotes/notes/0.8/add-new-backend-interface-5d8c1b5c7d47c50c.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
features:
33
- |
4-
The :meth:`~qiskit.providers.aer.QasmSimulator.run` method for the
4+
The :meth:`~qiskit.providers.aer.AerSimulator.run` method for the
5+
:class:`~qiskit.providers.aer.AerSimulator`,
56
:class:`~qiskit.providers.aer.QasmSimulator`,
67
:class:`~qiskit.providers.aer.StatevectorSimulator`, and
78
:class:`~qiskit.providers.aer.UnitarySimulator` backends now takes a
@@ -16,7 +17,7 @@ features:
1617
1718
from qiskit.providers.aer import Aer
1819
19-
backend = Aer.get_backend('qasm_simulator')
20+
backend = Aer.get_backend('aer_simulator')
2021
2122
circuit = QuantumCircuit(2)
2223
qc.h(0)
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
features:
3+
- |
4+
Adds the new :class:`~qiskit.provider.aer.AerSimulator` simulator backend
5+
supporting the following simulation methods
6+
7+
* `automatic`
8+
* `statevector`
9+
* `stabilizer`
10+
* `density_matrix`
11+
* `matrix_product_state`
12+
* `unitary`
13+
* `superop`
14+
15+
The default `automatic` method will automatically choose a simulation
16+
method separately for each run circuit based on the circuit instructions
17+
and noise model (if any). Initializing a simulator with a specific
18+
method can be done using the `method` option.
19+
20+
.. code::python
21+
22+
from qiskit.providers.aer import AerSimulator
23+
24+
# Create a MPS simulator backend
25+
backend = AerSimulator(method='matrix_product_state')
26+
27+
GPU simulation for the statevector, density matrix and unitary methods
28+
can be enabled by setting the `device='GPU'` backend option.
29+
30+
.. code::python
31+
32+
from qiskit.providers.aer import AerSimulator
33+
34+
# Create a GPU statevector backend
35+
backend = AerSimulator(method='statevector', device='GPU')
36+
37+
Note that the `unitary` and `superop` methods do not support measurement
38+
as they simulate the unitary matrix or superopator matrix of the run
39+
circuit so one of the new :func:`~qiskit.provider.aer.library.save_unitary`,
40+
:func:`~qiskit.provider.aer.library.save_superop`, or
41+
:func:`~qiskit.provider.aer.library.save_state` instructions must
42+
be used to save the simulator state to the returned results. Similarly
43+
state of the other simulations methods can be saved using the
44+
appropriate instructions. See the :mod:`qiskit.provider.aer.library`
45+
API documents for more details.
46+
47+
Note that the :class:`~qiskit.provider.aer.AerSimulator` simulator
48+
superceds the :class:`~qiskit.provider.aer.QasmSimulator`,
49+
:class:`~qiskit.provider.aer.StatevectorSimulator`, and
50+
:class:`~qiskit.provider.aer.UnitarySimulator` backends which will
51+
be deprecated in a future release.
52+
- |
53+
Updates the :class:`~qiskit.providers.aer.AerProvider` class to include
54+
multiple :class:`~qiskit.provider.aer.AerSimulator` backends preconfigured
55+
for all available simulation methods and simulation devices. The new
56+
backends can be accessed through the provider interface using the names
57+
58+
* `"aer_simulator"`
59+
* `"aer_simulator_statevector"`
60+
* `"aer_simulator_stabilizer"`
61+
* `"aer_simulator_density_matrix"`
62+
* `"aer_simulator_matrix_product_state"`
63+
* `"aer_simulator_extended_stabilizer"`
64+
* `"aer_simulator_unitary"`
65+
* `"aer_simulator_superop"`
66+
67+
Additional if Aer was installed with GPU support on a compatible system
68+
the following GPU backends will also be available
69+
70+
* `"aer_simulator_statevector_gpu"`
71+
* `"aer_simulator_density_matrix_gpu"`
72+
* `"aer_simulator_unitary_gpu"`
73+
74+
Example
75+
76+
.. code::python
77+
78+
from qiskit import Aer
79+
80+
# Get the GPU statevector simulator backend
81+
backend = Aer.get_backend('aer_simulator_statevector_gpu')

releasenotes/notes/extended_stabilizer_norm_estimation-d17632efe8d2bb19.yaml renamed to releasenotes/notes/0.8/extended_stabilizer_norm_estimation-d17632efe8d2bb19.yaml

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
11
---
22
features:
33
- |
4-
Introduce a new method for performing measurements with the Extended
5-
Stabilizer simulator, called Norm Estimation. This method can be used by passing
6-
the following options to the ``QasmSimulator`` provider::
4+
Added a new ``norm estimation`` method for performing measurements when using
5+
the `"extended_stabilizer"` simulation method. This norm estimation method
6+
can be used by passing the following options to the
7+
:class:`~qiskit.providers.aer.AerSimulator` and
8+
:class:`~qiskit.providers.aer.QasmSimulator` backends
9+
10+
.. code::python
711
812
simulator = QasmSimulator(
9-
method='extended_stabilizer,
10-
extended_stabilizer_sampling_method="norm_estimation"
11-
)
13+
method='extended_stabilizer',
14+
extended_stabilizer_sampling_method='norm_estimation')
1215
1316
The norm estimation method is slower than the alternative `metropolis`
1417
or `resampled_metropolis` options, but gives better performance on circuits
15-
with sparse output distributions. See the documentation of the ``QasmSimulator``
16-
provider for more information.
18+
with sparse output distributions. See the documentation of the
19+
:class:`~qiskit.providers.aer.QasmSimulator` for more information.
1720
fixes:
1821
- |
19-
Fixes an issue where the Extended Stabilizer simulator would give incorrect
20-
results on quantum circuits with sparse output distributions. Refer to
21-
`#306 <https://github.com/Qiskit/qiskit-aer/issues/306>` for more information
22-
and examples.
22+
Fixes an issue where the Extended `"extended_stabilizer"` simulation method
23+
would give incorrect results on quantum circuits with sparse output
24+
distributions. Refer to
25+
`#306 <https://github.com/Qiskit/qiskit-aer/issues/306>` for more
26+
information and examples.
2327
upgrade:
2428
- |
25-
The following options for the Extended Stabilizer simulator have changed.
29+
The following options for the `"extended_stabilizer"` simulation method
30+
have changed.
2631
2732
+ ``extended_stabilizer_measure_sampling``: This option has been replaced
2833
by the options ``extended_stabilizer_sampling_method``, which controls

releasenotes/notes/save-data-instructions-24b127612c9f6502.yaml renamed to releasenotes/notes/0.8/instructions-c7ab21d4e9ed8a10.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ features:
2424
2525
See the :mod:`qiskit.providers.aer.library` API documentation
2626
for details on method compatibility for each instruction.
27+
28+
Note that the snapshot instructions
29+
:class:`~qiskit.providers.aer.extensions.SnapshotStatevector`,
30+
:class:`~qiskit.providers.aer.extensions.SnapshotDensityMatrix`,
31+
:class:`~qiskit.providers.aer.extensions.SnapshotStabilizer` are
32+
still supported but will be deprecated in a future release.
2733
- |
2834
Adds :class:`qiskit.providers.aer.library.SaveExpectationValue` and
2935
:class:`qiskit.providers.aer.library.SaveExpectationValueVariance`
@@ -35,6 +41,10 @@ features:
3541
:class:`~qiskit.providers.aer.library.save_expectation_value` and
3642
:class:`~qiskit.providers.aer.library.save_expectation_value_variance`
3743
circuit methods which is added to ``QuantumCircuit`` when importing Aer.
44+
45+
Note that the snapshot instruction
46+
:class:`~qiskit.providers.aer.extensions.SnapshotExpectationValue`,
47+
is still supported but will be deprecated in a future release.
3848
- |
3949
Adds :class:`qiskit.providers.aer.library.SaveProbabilities` and
4050
:class:`qiskit.providers.aer.library.SaveProbabilitiesDict` quantum
@@ -44,6 +54,10 @@ features:
4454
:class:`~qiskit.providers.aer.library.save_probabilities` and
4555
:class:`~qiskit.providers.aer.library.save_probabilities_dict` circuit
4656
methods which is added to ``QuantumCircuit`` when importing Aer.
57+
58+
Note that the snapshot instruction
59+
:class:`~qiskit.providers.aer.extensions.SnapshotProbabilities`,
60+
is still supported but will be deprecated in a future release.
4761
- |
4862
Adds :class:`qiskit.providers.aer.library.SaveAmplitudes` and
4963
:class:`qiskit.providers.aer.library.SaveAmplitudesSquared`
@@ -53,3 +67,23 @@ features:
5367
:class:`~qiskit.providers.aer.library.save_amplitudes` and
5468
:class:`~qiskit.providers.aer.library.save_amplitudes_squared`circuit
5569
methods which is added to ``QuantumCircuit`` when importing Aer.
70+
- |
71+
Adds instructions for setting the state of the simulators. These
72+
instructions must be defined on the full number of qubits in the circuit.
73+
They can be applied at any point in a circuit and will override the
74+
simulator state with the one specified. Added instructions are
75+
76+
* :class:`qiskit.providers.aer.library.SetDensityMatrix`
77+
* :class:`qiskit.providers.aer.library.SetStabilizer`
78+
* :class:`qiskit.providers.aer.library.SetStatevector`
79+
* :class:`qiskit.providers.aer.library.SetUnitary`
80+
81+
These instruction can be appended to a quantum circuit by using the
82+
:class:`~qiskit.providers.aer.library.set_density_matrix`,
83+
:class:`~qiskit.providers.aer.library.set_stabilizer`,
84+
:class:`~qiskit.providers.aer.library.set_statevector`,
85+
:class:`~qiskit.providers.aer.library.set_unitary`
86+
circuit methods which are added to ``QuantumCircuit`` when importing Aer.
87+
88+
See the :mod:`qiskit.providers.aer.library` API documentation
89+
for details on method compatibility for each instruction.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
features:
3+
- |
4+
Added support for diagonal gates to the `"matrix_product_state"` simulation
5+
method.
6+
- |
7+
Added support for the ``initialize`` instruction to the
8+
`"matrix_product_state"` simulation method.
9+
issues:
10+
- |
11+
There is a known issue where the simulation of certain circuits with a Kraus
12+
noise model using the `"matrix_product_state"` simulation method can cause
13+
the simulator to crash. Refer to
14+
`#306 <https://github.com/Qiskit/qiskit-aer/issues/1184>` for more
15+
information.

releasenotes/notes/allow_cuda_on_win-c3e5c920528eb282.yaml

Lines changed: 0 additions & 8 deletions
This file was deleted.

releasenotes/notes/avoid-dependency-install-7d782ed5c8965629.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

releasenotes/notes/config-local-46d47ae08eeab339.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

releasenotes/notes/cython-dep-removed-ffc095dcc575c449.yaml

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)