-
Notifications
You must be signed in to change notification settings - Fork 370
Commit
Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
.. _dask: | ||
|
||
Running with Threadpool and DASK | ||
================================ | ||
|
||
|
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. |
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. |
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.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.