Skip to content

Commit

Permalink
Prepare 0.9 release (#1344)
Browse files Browse the repository at this point in the history
Co-authored-by: Matthew Treinish <[email protected]>
  • Loading branch information
chriseclectic and mtreinish authored Sep 16, 2021
1 parent b3e375a commit daae9cf
Show file tree
Hide file tree
Showing 34 changed files with 154 additions and 140 deletions.
2 changes: 2 additions & 0 deletions docs/apidocs/parallel.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _dask:

Running with Threadpool and DASK
================================

Expand Down
22 changes: 15 additions & 7 deletions qiskit/providers/aer/library/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,6 @@
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
----------------------------------------
Expand Down Expand Up @@ -95,6 +88,14 @@
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
-----------------------------------------------
Expand Down Expand Up @@ -137,6 +138,13 @@
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/
Expand Down
77 changes: 77 additions & 0 deletions releasenotes/notes/0.9/0.9-release-0ecba93a5191e7ec.yaml
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions releasenotes/notes/0.9/custom-executor-3d0048b4dd4fa722.yaml
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions releasenotes/notes/0.9/mps-e81837c4acd0e0f0.yaml
Original file line number Diff line number Diff line change
@@ -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"``.

This file was deleted.

This file was deleted.

This file was deleted.

7 changes: 0 additions & 7 deletions releasenotes/notes/deprecate-run-qobj-1a88c5bf0d1c0323.yaml

This file was deleted.

6 changes: 0 additions & 6 deletions releasenotes/notes/deprecate-snapshots-673fe6655bdc95a5.yaml

This file was deleted.

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions releasenotes/notes/fix-parallel-exp-bug-d5a76b6e9ac03632.yaml

This file was deleted.

6 changes: 0 additions & 6 deletions releasenotes/notes/fix-shots-option-245f6b05ffeb6d78.yaml

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

10 changes: 0 additions & 10 deletions releasenotes/notes/mps_print_bond_dimension-6dc6f6cf0365c2ae.yaml

This file was deleted.

9 changes: 0 additions & 9 deletions releasenotes/notes/noise_default_basis-3feced47c0a2eff7.yaml

This file was deleted.

8 changes: 0 additions & 8 deletions releasenotes/notes/pauli_gate-de858933657d7d21.yaml

This file was deleted.

6 changes: 0 additions & 6 deletions releasenotes/notes/remove-dep-b5a3b0e3f09eb90e.yaml

This file was deleted.

8 changes: 0 additions & 8 deletions releasenotes/notes/statevec-gpu-2bed39c68e757f3b.yaml

This file was deleted.

7 changes: 0 additions & 7 deletions releasenotes/notes/sxdg-cu-2acabbb46cadda7d.yaml

This file was deleted.

0 comments on commit daae9cf

Please sign in to comment.