-
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
Remove faulty qubits and gates sections from transpile() #9900
Conversation
This commit removes the "faulty qubits" support from the transpile(). Previously the transpile() function would attempt to filter out any faulty qubits or gates reported in a BackendV1's BackendProperties object and remap the qubits based on that. However, this code was never actually functioning as the first BackendV1 based backend to attempt to set these flags is causing an internal panic in rustworkx trying to created the remapped coupling map. This code path was mildly controversial at the time of introduction (and was already reverted once in the past) and since it provably isn't valid anymore (and I wasn't clear it ever functioned as expected) as the only backend to leverage the feature crashes transpile() this commit just opts to remove it as a potential breaking change.
Thank you for opening a new pull request. Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient. While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone. One or more of the the following people are requested to review this:
|
Pull Request Test Coverage Report for Build 4618915359
💛 - Coveralls |
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.
There's also a couple of minor references to faultiness in comments in DenseLayout
and VF2's build_average_error_map
that we might want to squash. For completeness for others: there's also test files test/python/providers/{faulty_backends.py,test_faulty_backend.py}
, but those are testing the BackendV1
model not transpile
so this PR needn't remove them.
Officially this PR isn't entirely within our deprecation policy because we haven't issued any warning before removing this implicit behaviour from the transpiler, but we judged the impact to be minimal as we're not aware of any current backends using this feature at all and in practice the handling doesn't actually work, so we don't think anybody can be using it. Offline, @1ucian0 (one of the original authors of the feature) also signed off on this removal.
edit: ha, I posted this comment then saw that Luciano had assigned himself to do a review as well.
releasenotes/notes/remove-faulty-qubits-support-00850f69185c365e.yaml
Outdated
Show resolved
Hide resolved
releasenotes/notes/remove-faulty-qubits-support-00850f69185c365e.yaml
Outdated
Show resolved
Hide resolved
confirming. Let's remove it. |
do we want to keep the references in the following files?
|
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.
Besides #9900 (comment) (that can be in a follow up, if necessary), LGTM
The second two references need to stay: |
I went ahead and enqueued this for merging because of those remaining references only 1 arguably needs to be updated, but it's just a code comment |
* Remove faulty qubits and gates sections from transpile() This commit removes the "faulty qubits" support from the transpile(). Previously the transpile() function would attempt to filter out any faulty qubits or gates reported in a BackendV1's BackendProperties object and remap the qubits based on that. However, this code was never actually functioning as the first BackendV1 based backend to attempt to set these flags is causing an internal panic in rustworkx trying to created the remapped coupling map. This code path was mildly controversial at the time of introduction (and was already reverted once in the past) and since it provably isn't valid anymore (and I wasn't clear it ever functioned as expected) as the only backend to leverage the feature crashes transpile() this commit just opts to remove it as a potential breaking change. * Fix release note typos
* Remove faulty qubits and gates sections from transpile() This commit removes the "faulty qubits" support from the transpile(). Previously the transpile() function would attempt to filter out any faulty qubits or gates reported in a BackendV1's BackendProperties object and remap the qubits based on that. However, this code was never actually functioning as the first BackendV1 based backend to attempt to set these flags is causing an internal panic in rustworkx trying to created the remapped coupling map. This code path was mildly controversial at the time of introduction (and was already reverted once in the past) and since it provably isn't valid anymore (and I wasn't clear it ever functioned as expected) as the only backend to leverage the feature crashes transpile() this commit just opts to remove it as a potential breaking change. * Fix release note typos
Summary
This commit removes the "faulty qubits" support from the transpile(). Previously the transpile() function would attempt to filter out any faulty qubits or gates reported in a BackendV1's BackendProperties object and remap the qubits based on that. However, this code was never actually functioning as the first BackendV1 based backend to attempt to set these flags is causing an internal panic in rustworkx trying to created the remapped coupling map. This code path was mildly controversial at the time of introduction (and was already reverted once in the past) and since it provably isn't valid anymore (and I wasn't clear it ever functioned as expected) as the only backend to leverage the feature crashes transpile() this commit just opts to remove it as a potential breaking change.
Details and comments