Skip to content
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 handling of simulator backends in BackendV2Converter #9630

Merged
merged 2 commits into from
Feb 22, 2023

Conversation

mtreinish
Copy link
Member

Summary

This commit fixes some issues in the BackendV2Converter class around its usage wrapping BackendV1 based simulators (such as Qiskit Aer with the current release as of this commit 0.11.x). The BackendV2 converter was incorrectly handling some edge cases in Target creation with simulators that have ideal gates. The first issue was that the handling of ideal gates without any properties was incorrect and could not handle gates that took > 1 qubit. This has been corrected so the converter will work as expect. The second issue is the online_date field in the BackendConfiguration is optional and may not exist, especially on simulators which that field never really applies for. With these fixes the BackendV2Converter can be used to wrap BackendV1 simulators.

Details and comments

Fixes #9562

This commit fixes some issues in the BackendV2Converter class around its
usage wrapping BackendV1 based simulators (such as Qiskit Aer with the
current release as of this commit 0.11.x). The BackendV2 converter was
incorrectly handling some edge cases in Target creation with simulators
that have ideal gates. The first issue was that the handling of ideal
gates without any properties was incorrect and could not handle gates
that took > 1 qubit. This has been corrected so the converter will work
as expect. The second issue is the `online_date` field in the
`BackendConfiguration` is optional and may not exist, especially on
simulators which that field never really applies for. With these fixes
the BackendV2Converter can be used to wrap BackendV1 simulators.

Fixes Qiskit#9562
@mtreinish mtreinish added stable backport potential The bug might be minimal and/or import enough to be port to stable Changelog: Bugfix Include in the "Fixed" section of the changelog mod: fake_provider Related to the fake_provider module and fake backends labels Feb 21, 2023
@mtreinish mtreinish added this to the 0.23.2 milestone Feb 21, 2023
@mtreinish mtreinish requested review from a team and jyu00 as code owners February 21, 2023 19:01
@qiskit-bot
Copy link
Collaborator

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:

  • @Qiskit/terra-core

@coveralls
Copy link

coveralls commented Feb 21, 2023

Pull Request Test Coverage Report for Build 4239674842

  • 1 of 1 (100.0%) changed or added relevant line in 1 file are covered.
  • 3 unchanged lines in 1 file lost coverage.
  • Overall coverage increased (+0.008%) to 85.296%

Files with Coverage Reduction New Missed Lines %
qiskit/pulse/library/waveform.py 3 91.67%
Totals Coverage Status
Change from base Build 4236066306: 0.008%
Covered Lines: 67325
Relevant Lines: 78931

💛 - Coveralls

Copy link
Contributor

@itoko itoko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks @mtreinish

@mergify mergify bot merged commit 789707c into Qiskit:main Feb 22, 2023
mergify bot pushed a commit that referenced this pull request Feb 22, 2023
This commit fixes some issues in the BackendV2Converter class around its
usage wrapping BackendV1 based simulators (such as Qiskit Aer with the
current release as of this commit 0.11.x). The BackendV2 converter was
incorrectly handling some edge cases in Target creation with simulators
that have ideal gates. The first issue was that the handling of ideal
gates without any properties was incorrect and could not handle gates
that took > 1 qubit. This has been corrected so the converter will work
as expect. The second issue is the `online_date` field in the
`BackendConfiguration` is optional and may not exist, especially on
simulators which that field never really applies for. With these fixes
the BackendV2Converter can be used to wrap BackendV1 simulators.

Fixes #9562

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 789707c)
mergify bot added a commit that referenced this pull request Feb 22, 2023
This commit fixes some issues in the BackendV2Converter class around its
usage wrapping BackendV1 based simulators (such as Qiskit Aer with the
current release as of this commit 0.11.x). The BackendV2 converter was
incorrectly handling some edge cases in Target creation with simulators
that have ideal gates. The first issue was that the handling of ideal
gates without any properties was incorrect and could not handle gates
that took > 1 qubit. This has been corrected so the converter will work
as expect. The second issue is the `online_date` field in the
`BackendConfiguration` is optional and may not exist, especially on
simulators which that field never really applies for. With these fixes
the BackendV2Converter can be used to wrap BackendV1 simulators.

Fixes #9562

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 789707c)

Co-authored-by: Matthew Treinish <[email protected]>
jakelishman added a commit to jakelishman/qiskit-terra that referenced this pull request Feb 22, 2023
789707c (Qiskitgh-9630) added a test for wrapping Aer in a converted
`BackendV2` subject to providing an extended name mapping for all the
custom instructions that Aer supports, which Terra does not generally
define.  However, the supported lists were based off a slightly older
version of Aer (approximately release version 0.11), and fail on the
current `main` version (due to soon become version 0.12) because of
`break_loop` and `continue_loop` support being added.
mergify bot added a commit that referenced this pull request Feb 22, 2023
789707c (gh-9630) added a test for wrapping Aer in a converted
`BackendV2` subject to providing an extended name mapping for all the
custom instructions that Aer supports, which Terra does not generally
define.  However, the supported lists were based off a slightly older
version of Aer (approximately release version 0.11), and fail on the
current `main` version (due to soon become version 0.12) because of
`break_loop` and `continue_loop` support being added.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
mergify bot pushed a commit that referenced this pull request Feb 22, 2023
789707c (gh-9630) added a test for wrapping Aer in a converted
`BackendV2` subject to providing an extended name mapping for all the
custom instructions that Aer supports, which Terra does not generally
define.  However, the supported lists were based off a slightly older
version of Aer (approximately release version 0.11), and fail on the
current `main` version (due to soon become version 0.12) because of
`break_loop` and `continue_loop` support being added.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 72a7eac)
mergify bot added a commit that referenced this pull request Feb 22, 2023
789707c (gh-9630) added a test for wrapping Aer in a converted
`BackendV2` subject to providing an extended name mapping for all the
custom instructions that Aer supports, which Terra does not generally
define.  However, the supported lists were based off a slightly older
version of Aer (approximately release version 0.11), and fail on the
current `main` version (due to soon become version 0.12) because of
`break_loop` and `continue_loop` support being added.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 72a7eac)

Co-authored-by: Jake Lishman <[email protected]>
Eric-Arellano pushed a commit to Eric-Arellano/qiskit-terra that referenced this pull request Feb 23, 2023
This commit fixes some issues in the BackendV2Converter class around its
usage wrapping BackendV1 based simulators (such as Qiskit Aer with the
current release as of this commit 0.11.x). The BackendV2 converter was
incorrectly handling some edge cases in Target creation with simulators
that have ideal gates. The first issue was that the handling of ideal
gates without any properties was incorrect and could not handle gates
that took > 1 qubit. This has been corrected so the converter will work
as expect. The second issue is the `online_date` field in the
`BackendConfiguration` is optional and may not exist, especially on
simulators which that field never really applies for. With these fixes
the BackendV2Converter can be used to wrap BackendV1 simulators.

Fixes Qiskit#9562

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Eric-Arellano pushed a commit to Eric-Arellano/qiskit-terra that referenced this pull request Feb 23, 2023
789707c (Qiskitgh-9630) added a test for wrapping Aer in a converted
`BackendV2` subject to providing an extended name mapping for all the
custom instructions that Aer supports, which Terra does not generally
define.  However, the supported lists were based off a slightly older
version of Aer (approximately release version 0.11), and fail on the
current `main` version (due to soon become version 0.12) because of
`break_loop` and `continue_loop` support being added.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
ElePT pushed a commit to ElePT/qiskit-ibm-provider that referenced this pull request Oct 9, 2023
…it#9630)

This commit fixes some issues in the BackendV2Converter class around its
usage wrapping BackendV1 based simulators (such as Qiskit Aer with the
current release as of this commit 0.11.x). The BackendV2 converter was
incorrectly handling some edge cases in Target creation with simulators
that have ideal gates. The first issue was that the handling of ideal
gates without any properties was incorrect and could not handle gates
that took > 1 qubit. This has been corrected so the converter will work
as expect. The second issue is the `online_date` field in the
`BackendConfiguration` is optional and may not exist, especially on
simulators which that field never really applies for. With these fixes
the BackendV2Converter can be used to wrap BackendV1 simulators.

Fixes Qiskit/qiskit#9562

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: Bugfix Include in the "Fixed" section of the changelog mod: fake_provider Related to the fake_provider module and fake backends stable backport potential The bug might be minimal and/or import enough to be port to stable
Projects
None yet
Development

Successfully merging this pull request may close these issues.

BackendV2Converter fails to wrap Aer simulator
4 participants