mirror of https://github.com/Qiskit/qiskit-aer.git
Prepare 0.9 release (#1344)
Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
This commit is contained in:
parent
b3e375aff0
commit
daae9cf603
|
@ -1,3 +1,5 @@
|
|||
.. _dask:
|
||||
|
||||
Running with Threadpool and DASK
|
||||
================================
|
||||
|
||||
|
|
|
@ -61,13 +61,6 @@ following ``QuantumCircuit`` methods which are patched when importing Aer.
|
|||
Saving Simulator Data
|
||||
=====================
|
||||
|
||||
.. note ::
|
||||
Each save instruction has a default label for accessing from the
|
||||
circuit result data, however duplicate labels in results will result
|
||||
in an exception being raised. If you use more than 1 instance of a
|
||||
specific save instruction you must set a custom label for the
|
||||
additional instructions.
|
||||
|
||||
Simulator State Save Instruction Classes
|
||||
----------------------------------------
|
||||
|
||||
|
@ -95,6 +88,14 @@ for density matrix method etc.).
|
|||
methods, however all other save state instructions must be applied
|
||||
to all qubits in a run circuit.
|
||||
|
||||
.. note::
|
||||
The :class:`~qiskit.providers.aer.StatevectorSimulator` (and
|
||||
:class:`~qiskit.providers.aer.UnitarySimulator`) backend automatically
|
||||
append every run circuit with the a :func:`SaveStatevector``
|
||||
(:func:`SaveUnitary``) instruction using the default label. Hence adding
|
||||
any additional save instructions of that type will require specifying a
|
||||
custom label for those instructions.
|
||||
|
||||
Simulator Derived Data Save Instruction Classes
|
||||
-----------------------------------------------
|
||||
|
||||
|
@ -137,6 +138,13 @@ QuantumCircuit Methods
|
|||
The save instructions can also be added to circuits by using the
|
||||
following ``QuantumCircuit`` methods which are patched when importing Aer.
|
||||
|
||||
.. note ::
|
||||
Each save method has a default label for accessing from the
|
||||
circuit result data, however duplicate labels in results will result
|
||||
in an exception being raised. If you use more than 1 instance of a
|
||||
specific save instruction you must set a custom label for the
|
||||
additional instructions.
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
---
|
||||
prelude: |
|
||||
The 0.9 release includes new backend options for parallel exeuction
|
||||
of large numbers of circuits on a HPC cluster using a Dask distributed,
|
||||
along with other general performance improvements and bug fixes.
|
||||
features:
|
||||
- |
|
||||
Add qiskit library :class:`~qiskit.circuit.library.SXdgGate`
|
||||
and :class:`~qiskit.circuit.library.CUGate` to the supported basis gates for
|
||||
the Aer simulator backends. Note that the :class:`~qiskit.circuit.library.CUGate`
|
||||
gate is only natively
|
||||
supported for the ``statevector`` and ``unitary`` methods. For other simulation
|
||||
methods it must be transpiled to the supported basis gates for that method.
|
||||
- |
|
||||
Adds support for N-qubit Pauli gate (
|
||||
:class:`qiskit.circuit.library.generalized_gates.PauliGate`) to all
|
||||
simulation methods of the
|
||||
:class:`~qiskit.providers.aer.AerSimulator` and
|
||||
:class:`~qiskit.providers.aer.QasmSimulator`.
|
||||
deprecations:
|
||||
- |
|
||||
Passing an assembled qobj directly to the
|
||||
:meth:`~qiskit.providers.aer.AerSimulator.run` method of the Aer simulator
|
||||
backends has been deprecated in favor of passing transpiled circuits
|
||||
directly as ``backend.run(circuits, **run_options)``.
|
||||
- |
|
||||
All snapshot instructions in :mod:`qiskit.providers.aer.extensions` have
|
||||
been deprecated. For replacement use the save instructions from the
|
||||
:mod:`qiskit.providers.aer.library` module.
|
||||
- |
|
||||
Adding non-local quantum errors to a
|
||||
:class:`~qiskit.providers.aer.noise.NoiseModel` has been deprecated due to
|
||||
inconsistencies in how this noise is applied to the optimized circuit.
|
||||
Non-local noise should be manually added to a scheduled circuit in Qiskit
|
||||
using a custom transpiler pass before being run on the simulator.
|
||||
- |
|
||||
Use of the ``method`` option of the
|
||||
:class:`~qiskit.providers.aer.StatevectorSimulator`, and
|
||||
:class:`~qiskit.providers.aer.UnitarySimulator` to run a GPU simulation
|
||||
has been deprecated. To run a GPU simulation on a compatible system
|
||||
use the option ``device='GPU'`` instead.
|
||||
upgrade:
|
||||
- |
|
||||
The default basis for the :class:`~qiskit.providers.aer.noise.NoiseModel`
|
||||
class has been changed from ``["id", "u3", "cx"]`` to
|
||||
``["id", "rz", "sx", "cx"]`` due to the deprecation of the ``u3`` circuit
|
||||
method in qiskit-terra and change of qiskit-ibmq-provider backend basis
|
||||
gates. To use the old basis gates you can initialize a noise model with
|
||||
custom basis gates as ``NoiseModel(basis_gates=["id", "u3", "cx"])``.
|
||||
- |
|
||||
Removed the ``backend_options`` kwarg from the ``run`` methnod of Aer backends
|
||||
that was deprecated in qiskit-aer 0.7. All run options must now be passed as
|
||||
separate kwargs.
|
||||
- |
|
||||
Removed passing ``system_model`` as a positional arg for the ``run`` method of the
|
||||
:class:`~qiskit.providers.aer.PulseSimulator`.
|
||||
fixes:
|
||||
- |
|
||||
Fixes bug where the if the required memory is smaller than the system memory the
|
||||
multi-chunk simulation method was enabled and simulation was still started.
|
||||
This case will now throw an insufficient memory exception.
|
||||
- |
|
||||
Fixes issue where setting the ``shots`` option for a backend with
|
||||
``set_options(shots=k)`` was always running the default number of shots (1024)
|
||||
rather than the specified value.
|
||||
- |
|
||||
Fixes a bug in how the :class:`~qiskit.providers.aer.AerSimulator` handled the
|
||||
option value for ``max_parallel_experiments=1``. Previously this was treated
|
||||
the same as ``max_parallel_experiments=0``.
|
||||
- |
|
||||
Fixes bug in the ``extended_stabilizer`` simulation method where it
|
||||
incorrectly treated qelay gate and multi-qubit Pauli instructions as
|
||||
unsupported.
|
||||
- |
|
||||
Fixes typo in the :class:`~qiskit.providers.aer.AerSimulator` and
|
||||
:class:`~qiskit.providers.aer.QasmSimulator` options for the
|
||||
``extended_stabilizer_norm_estimation_repetitions`` option.
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Adds the ability to set a custom executor and configure job splitting for
|
||||
executing multiple circuits in parallel on a HPC clustor. A custom
|
||||
executor can be set using the ``executor`` option, and job splitting is
|
||||
configured by using the ``max_job_size`` option.
|
||||
|
||||
For example configuring a backend and executing using
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
backend = AerSimulator(max_job_size=1, executor=custom_executor)
|
||||
job = backend.run(circuits)
|
||||
|
||||
will split the exection into multiple jobs each containing a single
|
||||
circuit. If job splitting is enabled the ``run`` method will return a
|
||||
:class:`~qiskit.providers.aer.jobs.AerJobSet` object containing all the
|
||||
individual :class:`~qiskit.providers.aer.jobs.AerJob` classes. After all
|
||||
individual jobs finish running the job results are automatically combined
|
||||
into a single Result object that is returned by ``job.result()``.
|
||||
|
||||
Supported executors include those in the Python ``concurrent.futures``
|
||||
`module <https://docs.python.org/3/library/concurrent.futures.html>`__
|
||||
(eg. ``ThreadPoolExecutor``, ``ProcessPoolExecutor``), and
|
||||
`Dask <http://dask.org>`__ distributed Client executors if the optional
|
||||
dask library is installed. Using a Dask executor allows configuring parallel
|
||||
execution of multiple circuits on HPC clusters. See the
|
||||
Dask executor :ref:`API Documentation <dask>` for additional details
|
||||
on using Dask executors for HPC simulation.
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Adds ability to record logging data for the ``matrix_product_state``
|
||||
simulation method to the experiment result metadata by setting the
|
||||
backend option ``mps_log_data=True``. The saved data includes the
|
||||
bond dimensions and the discarded value (the sum of the squares of
|
||||
the Schmidt coeffients that were discarded by approximation) after
|
||||
every relevant circuit instruction.
|
||||
fixes:
|
||||
- |
|
||||
Fixes bug with applying the ``unitary`` gate in using the ``matrix_product_state``
|
||||
simulation method which did not correctly support permutations in the ordering of
|
||||
the qubits on which the gate is applied.
|
||||
- |
|
||||
Fixes an issue where gate fusion could still be enabled for the
|
||||
``matrix_product_state`` simulation method even though it is not supported.
|
||||
Now fusion is always disabled for this method.
|
||||
- |
|
||||
Fixed bug in the ``matrix_product_state`` simulation method in computing the
|
||||
normalization following truncation of the Schmidt coefficients after
|
||||
performing the SVD.
|
||||
other:
|
||||
- |
|
||||
Improves the performance of the measurement sampling algorithm for the
|
||||
``matrix_product_state`` simulation method.
|
||||
The new default behaviour is to always sample using the
|
||||
improved ``mps_apply_measure`` method. The ``mps_probabilities`` sampling
|
||||
method be still used by setting the custom option value
|
||||
``mps_sample_measure_algorithm="mps_probabilities"``.
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
|
||||
fixes:
|
||||
- |
|
||||
``unitary`` gate in MPS did not support permutations in the ordering of the
|
||||
qubits on which the gate is applied. Added support for permutations.
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
fixes:
|
||||
- |
|
||||
When required memory is smaller than the system memory, multi-chunk was enabled
|
||||
and simulation was started though memory is short. This fix corrects this behavior
|
||||
to throw an exception.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
deprecations:
|
||||
- |
|
||||
Adding non-local quantum errors to a
|
||||
:class:`~qiskit.providers.aer.noise.NoiseModel` has been deprecated due to
|
||||
inconsistencies in how this noise is applied to the optimized circuit.
|
||||
Non-local noise should be manually added to a scheduled circuit in Qiskit
|
||||
using a custom transpiler pass before being run on the simulator.
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
deprecations:
|
||||
- |
|
||||
Passing an assembled qobj directly to the
|
||||
:meth:`~qiskit.providers.aer.AerSimulator.run` method of the Aer simulator
|
||||
backends has been deprecated in favor of passing transpiled circuits
|
||||
directly as `backend.run(circuits, **run_options)`.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
deprecations:
|
||||
- |
|
||||
All snapshot instructions in :mod:`qiskit.providers.aer.extensions` have
|
||||
been deprecated. For replacement use the save instructions from the
|
||||
:mod:`qiskit.providers.aer.library` module.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
|
||||
fixes:
|
||||
- |
|
||||
Disabled fusion when using the MPS simulation method, even when fusion is
|
||||
enabled in the config. Fusion does not run correctly on MPS so should
|
||||
always be disabled. See issue #1253 for an example.
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
---
|
||||
fixes:
|
||||
- |
|
||||
Fixes bug in the "extended_stabilizer" simulation method where it
|
||||
incorrectly treated delay gate and multi-qubit Pauli instructions as
|
||||
unsupported.
|
||||
- |
|
||||
Fixes typo in the `AerSimulator` and ``QasmSimulator`` options for the
|
||||
``extended_stabilizer_norm_estimation_repetitions`` option.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
fixes:
|
||||
- |
|
||||
Fixes a bug in how the ``AerSimulator`` handled the option value
|
||||
``max_parallel_experiments=1`` which was being previously being treated
|
||||
the same as ``max_parallel_experiments=0``.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
fixes:
|
||||
- |
|
||||
Fixes issue where setting the ``shots`` option for a backend with
|
||||
``set_options(shots=k)`` was always running the default number of shots
|
||||
rather than the specified value.
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
|
||||
fixes:
|
||||
- |
|
||||
Fixed bug in computing the normalization following truncation of the
|
||||
Schmidt coefficients following SVD.
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
other:
|
||||
- |
|
||||
Performance improvement in algorithm for measure in MPS: when all qubits are
|
||||
measured, no need to propagate the effect of measuring a single qubit to
|
||||
all the other qubits; it is sufficient to propagate to the nearest
|
||||
neighbors, because these neighbors will be measured next.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
other:
|
||||
- |
|
||||
Performance improvement in algorithm for apply_measure in MPS: this
|
||||
generalizes the improvement done for all qubits to any subset of the qubits.
|
||||
Also removed the heuristic for choosing the algorithm for sample_measure.
|
||||
The default is now `mps_apply_measure` and the user can specify
|
||||
'mps_probabilities` if she prefers that algorithm.
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
If the environment variable `MPS_OUTPUT_DATA` is set to 1, then MPS
|
||||
log data is printed to the metadata. This includes, after every relevant
|
||||
instruction, the bond dimensions and the discarded value i.e.,
|
||||
the sum of the squares of the Schmidt coeffients
|
||||
that were discarded by approximation.
|
||||
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
---
|
||||
upgrade:
|
||||
- |
|
||||
The default basis for the :class:`~qiskit.providers.aer.noise.NoiseModel`
|
||||
class has been changed from ``["id", "u3", "cx"]`` to
|
||||
``["id", "rz", "sx", "cx"]`` due to the deprecation of the ``u3`` circuit
|
||||
method in qiskit-terra and change of qiskit-ibmq-provider backend basis
|
||||
gates. To use the old basis gates you can initialize a noise model with
|
||||
custom basis gates as ``NoiseModel(basis_gates=["id", "u3", "cx"])``.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Adds support for N-qubit Pauli gate (
|
||||
:class:`qiskit.circuit.library.generalized_gates.PauliGate`) to all
|
||||
simulation methods of the
|
||||
:class:`~qiskit.providers.aer.AerSimulator` and
|
||||
:class:`~qiskit.providers.aer.QasmSimulator`.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
upgrade:
|
||||
- |
|
||||
The deprecated ``backend_options`` kwarg of the ``run`` method of Aer
|
||||
backends has been removed. All run options must now be passed as
|
||||
separate kwargs.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
deprecations:
|
||||
- |
|
||||
Use of the ``method`` option of the
|
||||
:class:`~qiskit.providers.aer.StatevectorSimulator`, and
|
||||
:class:`~qiskit.providers.aer.UnitarySimulator` to run a GPU simulation
|
||||
has been deprecated. To run a GPU simulation on a compatible system
|
||||
use the option ``device='GPU'`` instead.
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Add qiskit library SXdgGate and CUGate to the supported basis gates for
|
||||
the Aer simulator backends. Note that the CUGate gate is only natively
|
||||
supported for the statevector and unitary methods. For other simulation
|
||||
methods it must be transpiled to the supported basis gates for that method.
|
Loading…
Reference in New Issue