Since 0.12, Qiskit-Aer notices deprecation warnings to use of PulseSimulato. Because 0.13 will be released after +3 months since 0.12 was released, Qiskit-Aer will stop supports of pulse simulation.
* first pass at removing pulse simulator
* autoformat with black
* remove ref to aer pulse in docs
* fix lint issues
* remove pulse rst
* remove pulse tests
* add release note
* remove open pulse from CMakeLists.txt
* remove pulse tests
* remove remaining pulse codes
---------
Co-authored-by: AngeloDanducci <angelo.danducci.ii@ibm.com>
Since 0.13.0, Aer does not support Python 3.7.
This commit removes github actions for CI.
* Removing python 3.7 from test workflow
* Removing python 3.7 from build workflow
* Removing python 3.7 from deploy workflow
* Removing python 3.7 from tox
* revert
* Remove python 3.7 from pyproject.toml
* Remove python 3.7 from pyproject.toml - tool
---------
Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
* New GPU binaries with cuQuantum support
* format setup.py
* remove testpipy settings
* Update setup.py to use numpy with version lower than 1.25
* changed package names, qiskit-aer-gpu for CUDA12, and qiskit-aer-gpu-cu11 for 11
* format setup.py
* Update README.md
Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
* Update releasenotes/notes/renew_gpu_binaries-2cf3eba0853b8407.yaml
Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
* update release note
---------
Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
* Support save_statevector for QuantumCircuit from QASM3 string
* add qiskit_qasm3_import to requirements-dev.txt
* simplify default_qubits()
* fix lint error
* skip qasm3 circuit test in 3.7
Previously `QuantumCircuit.initialize` was not correctly preocessed
if initial state is specified with single `int` value. This commit
fixes this issue by decomposing initialize instructions.
`Estimator` in Aer did not use parameter bindings appropriately. Backend is called multiple times
to simulate a circuit with multiple parameter-sets. This commit is to call backend once for multiple
parameter-sets for a circuit.
* WIP
* refactor
* lint
* add reno
* Stop using circuit metadata to internaly manage simulation results
This fixes `AerSimulator` to use circuit metadata to maintain mapping
from input and output of an executor call. This fixes an issue
https://github.com/Qiskit/qiskit-aer/issues/1723.
* add index of AER::Circuit and ExperimentResult
* add a link to an input circuit in each experiment result
This commit adds checks of arguments (A number of qubits, clbits,
and parameters) for each gate to prevent from unexpected memory access
when a user defines wrong custom gate with a number of a standard gate.
* validate parameters of each gate in a circuit
* fix lint error
* fix lint error
* use transpile and run instead of execute in docstring
* use backend.run instead of execute in README
* use fake_provider for noise_model example
* Revert edits on README.md
* Update examples in docstring for qiskit_aer.noise
* Fix depolarizing noise model example
* Remove incorrect markup in noise/__init__.py
---------
Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
* Support parameterized global phase
Though `ParameterExpression` can be set to `QuantumCircuit.global_phase`,
Aer does not bind parameter values to it in simulation phase. This commit fixes
this problem by resolving values of `global_phase` with specified `parameter_binds`
in `AerSimulator.run`.
* define AER::CONFIG::GLOBAL_PHASE_POS and its pybind
* fix lint issues
---------
Co-authored-by: Jun Doi <doichan@jp.ibm.com>
Fixes `NoiseModel.from_backend` not to fail when calling it with a V2 backend having
faulty qubits such that T1 and T2 are `None` in the `target.qubit_properties`.
* fix handling of None in noise model construction from BackendV2
* add reno
* simplify a bit
* update docs
* Add implicit cast of argument types
Since 0.12.0, AerConfig is used to configure simulation, which
is directly bound to a AER::Config object through pybind.
This change requires application to specify strictly correct types
of configuration options. This commit allows implicit casting
to arguments if application specifies them with wrong types.
This commit resolves https://github.com/Qiskit/qiskit-aer/issues/1754.
* does not warning in cast of numpy classes if they are compatible with expected type
* fix lint issue
* simplify class checking
* Add support of `SwitchCaseOp`
Qiskit-Terra added a new instruction of control-flow `SwitchCaseOp`.
This commit enables Aer to simulate `SwitchCaseOp` by converting
its conditions and bodies with `AerMark` and `AerJump`.
* add switch_case temporarily until qiskit-terra 0.24.0 is released.
* simplify switch compilation
* use SwitchCaseOp of terra
* fix lint errors
Sphinx 6 no longer activates jQuery by default but `qiskit_sphinx_theme` still uses it.
This commits enables jQuery by adding the theme to extensions in conf.py.
---------
Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
Since qiskit-terra 0.24, `Sampler` does not have `close()` but Aer's `Sampler` still have the method. This commit takes the method as well as upgrade of Python versions in tutorial tests from 3.7 to 3.8.
* rm close
* assert DeprecationWarning
* update dependency
* pin the version of scikit-build to 0.17.2
* Pin scikit-build version by 0.17.2
Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
* remove REQUIRED to find PythonLibs in FindPybind11
---------
Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
This commit reduces redundant copy in `AER::Transpile::CircuitOptimization`.
Since 0.12.0, configuration is `AER::Config` instead of `json_t`. This new class
has many fields and then its copy overheads become high. Reduction of
redundant copy improves performance especially for low-qubit simulation.
* Fix wrong set of parameters in circuits with barriers
`AerCircuit` is created from a circuit by iterating its instrucitons
while skpping barrier. This leads inconsistency with positions of
parameter bindings. This commit adds barrier instruction to the class
and keeps positions of parameter bindings.
* fix lint error in test
* remove unused variable in test
* Defer gathering backends until they are needed
* Disable the not-an-iterable warning
Pylint infers _get_backends to always return None, even if we add type
annotations. Suppress the warning.
* Add @staticmethod to AerProvider._get_backends
---------
Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
* Ensure QuantumCircuit.metadata is always a dict
This is for compatibility with https://github.com/Qiskit/qiskit-terra/pull/9849
* fix order
* fix typo :(
* revert object->object() change
* make backportable
omp_set_nested was deprecated since OpenMP 3.0 and this commit
replaces it with omp_set_max_active_levels.
* use omp_set_max_active_levels instead of omp_set_nested
* use omp_set_nested in WIN
* Update releasenotes/notes/use_omp_set_max_active_levels-7e6c1d301c4434a6.yaml
* use _OPENMP to select omp_set_max_active_levels or omp_set_nested
---------
Co-authored-by: Jake Lishman <jake@binhbar.com>