-
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 provider-specific fake backends,FakeProvider
class and related tools in 1.0
#11376
Conversation
FakeProvider
class and related tools in 1.0
One or more of the the following people are requested to review this:
|
The IBM-specific fake backends in Qiskit are being removed in Qiskit 1.0 in Qiskit/qiskit#11376. The same fake backends have been moved to qiskit-ibm-runtime in Qiskit/qiskit-ibm-runtime#1140 and follow up PRs. Here the `qiskit` imports are replaced with `qiskit-ibm-runtime` imports in order to provide a smooth transition between Qiskit 0.45 and Qiskit 1.0. In the future, it may be preferable to use generic fake backends maintained in the repo and not depend on `qiskit-ibm-runtime` for them.
The IBM-specific fake backends in Qiskit are being removed in Qiskit 1.0 in Qiskit/qiskit#11376. The same fake backends have been moved to qiskit-ibm-runtime in Qiskit/qiskit-ibm-runtime#1140 and follow up PRs. Here the `qiskit` imports are replaced with `qiskit-ibm-runtime` imports in order to provide a smooth transition between Qiskit 0.45 and Qiskit 1.0. In the future, it may be preferable to use generic fake backends maintained in the repo and not depend on `qiskit-ibm-runtime` for them. Additionally, this commit reorders the requirements-dev.txt file so it is easier to read and adds qiskit-ibm-runtime as a development dependency.
The IBM-specific fake backends in Qiskit are being removed in Qiskit 1.0 in Qiskit/qiskit#11376. The same fake backends have been moved to qiskit-ibm-runtime in Qiskit/qiskit-ibm-runtime#1140 and follow up PRs. Here the `qiskit` imports are replaced with `qiskit-ibm-runtime` imports in order to provide a smooth transition between Qiskit 0.45 and Qiskit 1.0. In the future, it may be preferable to use generic fake backends maintained in the repo and not depend on `qiskit-ibm-runtime` for them. Additionally, this commit reorders the requirements-dev.txt file so it is easier to read and adds qiskit-ibm-runtime as a development dependency.
The IBM-specific fake backends in Qiskit are being removed in Qiskit 1.0 in Qiskit/qiskit#11376. The same fake backends have been moved to qiskit-ibm-runtime in Qiskit/qiskit-ibm-runtime#1140 and follow up PRs. Here the `qiskit` imports are replaced with `qiskit-ibm-runtime` imports in order to provide a smooth transition between Qiskit 0.45 and Qiskit 1.0. In the future, it may be preferable to use generic fake backends maintained in the repo and not depend on `qiskit-ibm-runtime` for them. Additionally, this commit reorders the requirements-dev.txt file so it is easier to read and adds qiskit-ibm-runtime as a development dependency.
The IBM-specific fake backends in Qiskit are being removed in Qiskit 1.0 in Qiskit/qiskit#11376. The same fake backends have been moved to qiskit-ibm-runtime in Qiskit/qiskit-ibm-runtime#1140 and follow up PRs. Here the `qiskit` imports are replaced with `qiskit-ibm-runtime` imports in order to provide a smooth transition between Qiskit 0.45 and Qiskit 1.0. In the future, it may be preferable to use generic fake backends maintained in the repo and not depend on `qiskit-ibm-runtime` for them. Additionally, this commit reorders the requirements-dev.txt file so it is easier to read and adds qiskit-ibm-runtime as a development dependency.
The IBM-specific fake backends in Qiskit are being removed in Qiskit 1.0 in Qiskit/qiskit#11376. The same fake backends have been moved to qiskit-ibm-runtime in Qiskit/qiskit-ibm-runtime#1140 and follow up PRs. Here the `qiskit` imports are replaced with `qiskit-ibm-runtime` imports in order to provide a smooth transition between Qiskit 0.45 and Qiskit 1.0. In the future, it may be preferable to use generic fake backends maintained in the repo and not depend on `qiskit-ibm-runtime` for them. Additionally, this commit reorders the requirements-dev.txt file so it is easier to read and adds qiskit-ibm-runtime as a development dependency.
The IBM-specific fake backends in Qiskit are being removed in Qiskit 1.0 in Qiskit/qiskit#11376. The same fake backends have been moved to qiskit-ibm-runtime in Qiskit/qiskit-ibm-runtime#1140 and follow up PRs. Here the `qiskit` imports are replaced with `qiskit-ibm-runtime` imports in order to provide a smooth transition between Qiskit 0.45 and Qiskit 1.0. In the future, it may be preferable to use generic fake backends maintained in the repo and not depend on `qiskit-ibm-runtime` for them. Additionally, this commit reorders the requirements-dev.txt file so it is easier to read and adds qiskit-ibm-runtime as a development dependency.
78cb3f3
to
b6d5aa6
Compare
All the blocking PRs have been merged 🎉 . And the conflicts have been fixed, so removing the |
b6d5aa6
to
511e90c
Compare
Pull Request Test Coverage Report for Build 7749096260
💛 - 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.
Looks good to me! 😁
The underlying cause of the windows failures were actually much larger performance issues in aer's `NoiseModel.from_backend()` constructor method when run with a BackendV2 instance. This is causing the `NoiseModel` construction for `GenericBackendV2` to take a great deal of time and use up all the memory we have available in the windows VMs in CI. To avoid this issue in the short term until a fix can be added to aer this commit just limits the size of the backend v2 examples we run to prevent resources problems in CI.
The aer noise model construction was an artifact of using all to all connectivity in the test. Using a more sparse connectivity alleviates the performance issues. This commit switches to use a ring graph and restores the larger qubit count backends.
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.
Ok, this is the one.
For posterity: we saw Azure went out of memory twice on Windows with Python 3.8 during attempts to merge this, which made us suspicious, but we thought it might just be Windows nonsense, so were going to skip it on Windows and sort it out later. The we found the We found that it was spending all the time in Aer building the noise model, which at first we thought was just inefficiencies in Aer (we used to build the noise model in house in the old fake backends) and were going to limit the tests to only 5q and 7q devices to sort it out on Aer. Then we realised that it's spending all the time in the noise model because the The test in question was |
#1369) The IBM-specific fake backends in Qiskit are being removed in Qiskit 1.0 in Qiskit/qiskit#11376. The same fake backends have been moved to qiskit-ibm-runtime in Qiskit/qiskit-ibm-runtime#1140 and follow up PRs. Here the `qiskit` imports are replaced with `qiskit-ibm-runtime` imports in order to provide a smooth transition between Qiskit 0.45 and Qiskit 1.0. In the future, it may be preferable to use generic fake backends maintained in the repo and not depend on `qiskit-ibm-runtime` for them. Additionally, this commit reorders the requirements-dev.txt file so it is easier to read and adds qiskit-ibm-runtime as a development dependency. It also temporarily pins qiskit to 0.45 while other deprecations are addressed.
#1369) The IBM-specific fake backends in Qiskit are being removed in Qiskit 1.0 in Qiskit/qiskit#11376. The same fake backends have been moved to qiskit-ibm-runtime in Qiskit/qiskit-ibm-runtime#1140 and follow up PRs. Here the `qiskit` imports are replaced with `qiskit-ibm-runtime` imports in order to provide a smooth transition between Qiskit 0.45 and Qiskit 1.0. In the future, it may be preferable to use generic fake backends maintained in the repo and not depend on `qiskit-ibm-runtime` for them. Additionally, this commit reorders the requirements-dev.txt file so it is easier to read and adds qiskit-ibm-runtime as a development dependency. It also temporarily pins qiskit to 0.45 while other deprecations are addressed.
This change adjusts for several remaining changes in Qiskit 1.0: * qiskit.providers.basicaer was removed in Qiskit 1.0 (see Qiskit/qiskit#11422). Here its use is replaced with qiskit-aer. * `qiskit.providers.fake_provider.FakeJob` was removed in Qiskit 1.0 (see Qiskit/qiskit#11376). Here the `FakeJob` already in `qiskit_experiments.test` is used instead. This update was missed in f22bb7b which switched the other `fake_provider` usage. * Replace `qiskit.provider.FakeProvider` with a custom subclass of `ProviderV1`. `FakeProvider` was moved out of Qiskit 1.0 to qiskit-ibm-runtime. * `calibration/test_rabi.py` was modified to make the data for a test of bad data worse as the test started fitting the data as good with the original parameters and qiskit-aer in place of basicaer. * In the readout mitigation manual, a use of `plot_histogram` was exchanged for one of `plot_distribution`. * Guard `FakeBackendV2` import that was removed in Qiskit 1.0. Try to import `FakeBackendV2` from qiskit-ibm-runtime as well. Also, this change unpins qiskit which had to be pinned in f22bb7b until these fixes could be merged since 0.46.0 was released with deprecation warnings for some of the usage changed here.
Summary
(2/2) --> This is the last PR of the second step of the
FakeBackends
refactoring epic, it removes the snapshot-dependent fake backends as well as the fake provider. The corresponding deprecation PR will follow on the 0.46 branch -> #11381.Details and comments
On hold until:
FakeGeneric
#10918are merged.