-
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
Inconsistencies between FakeBackend{,V2} and IBMBackend #9553
Comments
To add a little bit more on point 2 of the plan: if end users want "mock" versions of IBM devices that use simulators behind the scenes, but otherwise are identical in interface to the "real" devices, then those are going to need to live in Another user story we've heard is that they like that the fake backends are accessible even for devices that they don't have access do - not everyone can run stuff on Kolkata, for example, but people like testing all the pipelines and then simulating it. |
If getting the fake backends to match the actual device requires moving them to the IBM provider, then I am all for that. The current inconsistencies, e.g. no
This is absolutely something that is important. |
I migrated the fake backends last year so I think can help here. The plan laid out by @kdk is very reasonable. So the first step is to introduce generic backends to replace IBM-specific backends for terra testing. Should I add these testing backends to |
That sounds good to me. |
I think whatever fake backends Terra has should still live in |
Superseded by: #10954 |
What should we add?
The
FakeBackend
s defined inqiskit.provider.fake_provider
differ in how closely they mirror theBackend
s returned by theqiskit-ibm{,q}-provider
depending on if they are instances ofBackendV1
orBackendV2
. For example,From discussion at the last terra meeting, this was an intentional change as
processor_type
and related fields were part of the Qiskit'sBackendV1
definition but are not included as part ofBackendV2
(theqiskit_ibm_provider
adds them back as custom fields). This however causes issues for users who use the fake backends as stand-ins for IBM backends for running noisy simulations, testing compilation, etc. and assume that the fake backends represent static replicas of their IBM provider counterparts.From the discussion, there arose two use cases for the fake backends:
FakeSherbrooke
to exercise compilation to ECR gates)These differ mainly in that the first use case doesn't want to couple strongly to provider-specific behavior like the use of custom properties (to avoid mixing vendor- or provider-specific behavior with base terra testing and implementations) while the second explicitly does want a strong coupling between fake and real backends (to avoid having to write special case handling for the fake backends, or complicate using them to test and validate code before sending to real devices).
The proposed solution involves the following steps:
Tasks
Opening this issue to consolidate discussion on the above, and track the progress of implementation.
The text was updated successfully, but these errors were encountered: