mirror of https://github.com/Qiskit/qiskit-aer.git
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 <mtreinish@kortar.org>
This commit is contained in:
parent
bd91677ec3
commit
1911221ad4
|
@ -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.
|
|
@ -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
|
||||
|
@ -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)
|
|
@ -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')
|
|
@ -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
|
|
@ -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`
|
||||
|
@ -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
|
||||
|
@ -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`
|
||||
|
@ -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.
|
|
@ -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.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
It is now possible to build AER with CUDA enabled in Windows.
|
||||
upgrade:
|
||||
- |
|
||||
``pybind11`` minimum version required is 2.6 instead of 2.4. This is needed
|
||||
in order to support CUDA enabled compilation in Windows.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Some *Python* packages needed at C++ compilaton step were installed outside the regular *setuptools* circuit,
|
||||
and it was not possible to avoid their installation by any option. Now it is possible to avoid automatic
|
||||
installation of those packages by setting the environment variable *DISABLE_DEPENDENCY_INSTALL* to *1* or *ON*.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
fixes:
|
||||
- |
|
||||
Fixes bug where creating a simulator from a backend would set the
|
||||
``local`` attribute of the configuration to the backend value
|
||||
(typically ``False``) rather than always being set to ``True``.
|
|
@ -1,4 +0,0 @@
|
|||
---
|
||||
upgrade:
|
||||
- |
|
||||
Code that dependes on Aer has been removed, so Cython is no longer a dependency.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
|
||||
features:
|
||||
- |
|
||||
Added support for MPS::apply_diagonal_matrix.
|
||||
|
||||
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
---
|
||||
fixes:
|
||||
- |
|
||||
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.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
|
||||
features:
|
||||
- |
|
||||
Added support for `initialize` in the MPS simulation method.
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
|
||||
fixes:
|
||||
- |
|
||||
Fixed bug in MPS with Kraus noise. Failure was detected in QFT.
|
||||
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
|
||||
features:
|
||||
- |
|
||||
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`.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
upgrade:
|
||||
- |
|
||||
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.
|
|
@ -1,22 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
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.
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
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.
|
2
setup.py
2
setup.py
|
@ -82,7 +82,7 @@ setup_requirements = common_requirements + [
|
|||
if not _DISABLE_CONAN:
|
||||
setup_requirements.append('conan>=1.22.2')
|
||||
|
||||
requirements = common_requirements + ['qiskit-terra>=0.16.0']
|
||||
requirements = common_requirements + ['qiskit-terra>=0.17.0']
|
||||
|
||||
if not hasattr(setuptools,
|
||||
'find_namespace_packages') or not inspect.ismethod(
|
||||
|
|
Loading…
Reference in New Issue