-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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 arguments for RZXCalibrationBuilder and EchoRZXWeylDecomposition #7331
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
mtreinish
requested review from
DanPuzzuoli,
eggerdj,
lcapelluto,
nkanazawa1989,
taalexander and
a team
as code owners
December 1, 2021 13:33
jakelishman
reviewed
Dec 1, 2021
The RZXCalibrationBuilder and EchoRZXWeylDecomposition transpiler passes were previously taking BaseBackend instances as arguments. Besides that being a deprecated class which will be removed soon, it also is incorrect because backend objects are not guaranteed to be pickleable so when a pass manager runs in parallel processes this will cause an error. This was never caught because these passes aren't part of any default pass managers and their tests don't include running them as part of transpile(). To fix this passes typically take the properties of a backend they require. This is being reworked for BackendV2 in Qiskit#5885 so a target object can be used to encapsulate the model of a backend so we have a single data structure to pass around, but until that is the minimum backend version we need to also support taking the individual components for BackendV1 and BaseBackend. This commit changes the pass constructors to take only use the parameters from the backend object used in the pass internals and stop requiring a backend object be used to construct an instance of either pass.
jakelishman
reviewed
Dec 1, 2021
Pull Request Test Coverage Report for Build 1526256998
💛 - Coveralls |
mtreinish
added
Changelog: Deprecation
Include in "Deprecated" section of changelog
and removed
Changelog: None
Do not include in changelog
labels
Dec 1, 2021
levbishop
approved these changes
Dec 1, 2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
jakelishman
approved these changes
Dec 1, 2021
2 tasks
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.
Summary
The RZXCalibrationBuilder and EchoRZXWeylDecomposition transpiler passes
were previously taking BaseBackend instances as arguments. Besides that
being a deprecated class which will be removed soon, it also is
incorrect because backend objects are not guaranteed to be pickleable so
when a pass manager runs in parallel processes this will cause an error.
This was never caught because these passes aren't part of any default
pass managers and their tests don't include running them as part of
transpile().
To fix this passes typically take the properties of a backend they
require. This is being reworked for BackendV2 in #5885 so a target
object can be used to encapsulate the model of a backend so we have a
single data structure to pass around, but until that is the minimum
backend version we need to also support taking the individual components
for BackendV1 and BaseBackend.
This commit changes the pass constructors to take only use the parameters
from the backend object used in the pass internals and stop requiring a
backend object be used to construct an instance of either pass.
Details and comments