Initial Thread-Safe Implementation#455
Open
ahayashi wants to merge 3 commits intoeclipse-xacc:masterfrom
Open
Conversation
Contributor
|
@ahayashi do you need to add a CMake option so that we can turn this XACC_MUTEX preprocessor flag on and off? I'd prefer to see -DXACC_MULTI_THREADED=TRUE |
Author
|
@amccaskey yes, I agree and will do! |
Add thread-safety to XACC/QCOR (Experimental). We introduce `_XACC_MUTEX` macro in `xacc.hpp` to turn on/off the feature (default is OFF). When the macro is ON, only a single thread can execute the following routines by using either `std::mutex` or `std::recursive_mutex`:
- User-facing API routines
- `xacc::qalloc()`
- Backend modules
- `QppAccelerator`
- `execute()` (the existing shot-level parallel execution still works)
- `apply()`
- `NLOptimizer`
- `optimize()`
Also, regardless of the macro, the `NLOptimizer` class is now `xacc::Cloneable`.
Signed-off-by: Akihiro Hayashi <ahayashi@gatech.edu>
Signed-off-by: Akihiro Hayashi <ahayashi@gatech.edu>
Signed-off-by: Akihiro Hayashi <ahayashi@gatech.edu>
2e77ec2 to
d51b6dc
Compare
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Add thread-safety to XACC/QCOR (Experimental). We introduce
_XACC_MUTEXmacro inxacc.hppto turn on/off the feature (default is OFF). When the macro is ON, only a single thread can execute the following routines by using eitherstd::mutexorstd::recursive_mutex:User-facing API routines
xacc::qalloc()Backend modules
QppAcceleratorexecute()(the existing shot-level parallel execution still works)apply()NLOptimizeroptimize()Also, regardless of the macro, the
NLOptimizerclass is nowxacc::Cloneable.Signed-off-by: Akihiro Hayashi ahayashi@gatech.edu