-
Notifications
You must be signed in to change notification settings - Fork 361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix extended stabilizer thread safety in apply_ops_parallel #1993
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…es when ops are applied in parallel
eliotheinrich
changed the title
Thread safety
Fix extended stabilizer thread safety in apply_ops_parallel
Nov 8, 2023
eliotheinrich
force-pushed
the
thread_safety
branch
from
November 9, 2023 16:18
6795aa2
to
d3063be
Compare
doichanj
approved these changes
Nov 24, 2023
doichanj
added
stable-backport-potential
The issue or PR might be minimal and/or import enough to backport to stable
Changelog: Bugfix
Include in the Fixed section of the changelog
automerge
This PR will automatically merge once its CI has passed
labels
Nov 24, 2023
Merged
doichanj
added a commit
that referenced
this pull request
Nov 24, 2023
* add skip Python 3.12 for GPU build (#1965) * Fix basis gates of Aer backends (#1976) * move reset and switch_case ops to custom istr * Fix reset in AerStatevector * add test case * format * fix installing built Aer in some test cases * Applying global phase multiplication to initialize operation (#1980) * Applying global phase to initialize operation * fix format * remove recursive, add omp * Release 0.13.1 * Revert too many deprecations in Estimator (#1990) * Revert too much deprecation * fix typo * fix tests * Change priority of method selection of noise simulation (#1989) * Avoid selecting stabilizer method when noise model contains rotational gates * remove checking noise opsets, change priority selecting density_matrix * format * modify test cases use auto method result may change by this PR * modify one more test case * Remove use of opflow in Estimator (#1996) * Update misspelling apply_gate method doc (#1998) Co-authored-by: Jun Doi <doichan@jp.ibm.com> * Add optimization_level=0 to transpiler for compiling dynamic circuits (#2000) ``id`` gate was removed by transpiler called from aer_compiler without optimization_level for dynamic circuits. This commits adds ``optimization_level=0`` to avoid removing id gates * fix ry gate for stabilizer (#2001) Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com> * Directly use psutil to get total system memory (#2002) Currently Aer is using Qiskit's local_hardware_info() function which to determine the total amount of system memory which is used to compute the largest statevector the system can build. However, this function wasn't really intended to be used outside of Qiskit and also Qiskit is looking to remove the memory reporting (see: Qiskit/qiskit#11254). This commit just pivots to using psutil directly which is what qiskit is doing internally. * test build fix (#2004) * Reverse ordering to read out error in sampling measure (#2003) * reverse ordering of read out error in sampling measure * fix batch check --------- Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com> * Fix extended stabilizer thread safety in apply_ops_parallel (#1993) * Extended stabilizer simulator no longer shares RngEngine amongst states when ops are applied in parallel * Added release note * Fixed ugly cast --------- Co-authored-by: Jun Doi <doichan@jp.ibm.com> * add note (#1992) Co-authored-by: Jun Doi <doichan@jp.ibm.com> * Fix AerBackend issues caused by upgrading BackendV2 (#1995) * add description if no description is provided, build coupling map if it is provided * move import line * fix target for simulator backend * format * remove unused import * use translation plugin to rebuild gate sets for simulator * rename plugin * rebuild of gate sets is eanbled only for opt level 0 and 1 * fix custom pass manager * fix pass_manager function * added ccx in NAME_MAPPING * added missed gates in NAME_MAPPING * added release note * add check if opnodes is None * add check config * decrease return * check opt level * fix searching ops in control flow blocks * Update qiskit_aer/backends/plugin/aer_backend_plugin.py Co-authored-by: Matthew Treinish <mtreinish@kortar.org> * Update qiskit_aer/backends/plugin/aer_backend_plugin.py Co-authored-by: Matthew Treinish <mtreinish@kortar.org> * refer review comments * remove unused import --------- Co-authored-by: Matthew Treinish <mtreinish@kortar.org> * add prelude --------- Co-authored-by: Ikko Hamamura <ikkoham@users.noreply.github.com> Co-authored-by: Elena Peña Tapia <57907331+ElePT@users.noreply.github.com> Co-authored-by: jon <70080228+notcruz@users.noreply.github.com> Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com> Co-authored-by: Matthew Treinish <mtreinish@kortar.org> Co-authored-by: eliotheinrich <38039898+eliotheinrich@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
automerge
This PR will automatically merge once its CI has passed
Changelog: Bugfix
Include in the Fixed section of the changelog
stable-backport-potential
The issue or PR might be minimal and/or import enough to backport to stable
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes issue #1932. Extended stabilizer simulator was sharing a random number engine between states in
apply_ops_parallel
, leading to thread safety issues.Details and comments
Now, a new random number engine is provided for each state in parallel, so results should be consistent with the same initial random seed.