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 performance issue in parsing bit indices in QPY (backport #11944) #11945

Merged
merged 1 commit into from Mar 4, 2024

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Mar 4, 2024

This is an automatic backport of pull request #11944 done by Mergify.


Mergify commands and options

More conditions and actions can be found in the documentation.

You can also trigger Mergify actions by commenting on this pull request:

  • @Mergifyio refresh will re-evaluate the rules
  • @Mergifyio rebase will rebase this PR on its base branch
  • @Mergifyio update will merge the base branch into this PR
  • @Mergifyio backport <destination> will backport this PR on <destination> branch

Additionally, on Mergify dashboard you can:

  • look at your merge queues
  • generate the Mergify configuration with the config editor.

Finally, you can contact us on https://mergify.com

* Fix performance issue in parsing bit indices in QPY

This commit fixes a performance issue in the deserialization of QPY
payloads. Previously when parsing every instruction the deserialization
would build up a dictionary of indices to bits so that when we load the
bit index in the qargs and cargs for each instruction. This mean the
worst case scaling of this section was O(n * m) for n instructions and
m bits, which for very large circuits could end up dominating the time
spent in deserialization. However, this was unecessary work because it
is rebuilding a mapping from index to bit as a dictionary, but that
mapping already existed in the bit lists the circuit is carrying around.
This commit fixes the performance issue by removing the dictionary
generation and just using the bit lists directly.

* Add release note

* Simplify logic

(cherry picked from commit f4b50fb)
@mergify mergify bot requested a review from a team as a code owner March 4, 2024 17:57
@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
  • @mtreinish
  • @nkanazawa1989

@github-actions github-actions bot added performance Changelog: Bugfix Include in the "Fixed" section of the changelog labels Mar 4, 2024
@github-actions github-actions bot added this to the 1.0.2 milestone Mar 4, 2024
@github-actions github-actions bot added the mod: qpy Related to QPY serialization label Mar 4, 2024
@coveralls
Copy link

Pull Request Test Coverage Report for Build 8144797151

Details

  • 2 of 2 (100.0%) changed or added relevant lines in 1 file are covered.
  • 31 unchanged lines in 2 files lost coverage.
  • Overall coverage decreased (-0.05%) to 89.244%

Files with Coverage Reduction New Missed Lines %
crates/qasm2/src/lex.rs 7 90.68%
crates/qasm2/src/parse.rs 24 95.77%
Totals Coverage Status
Change from base Build 8116577921: -0.05%
Covered Lines: 58878
Relevant Lines: 65974

💛 - Coveralls

@jakelishman jakelishman added this pull request to the merge queue Mar 4, 2024
Merged via the queue into stable/1.0 with commit 16a7a15 Mar 4, 2024
14 checks passed
@mergify mergify bot deleted the mergify/bp/stable/1.0/pr-11944 branch March 4, 2024 19:46
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: qpy Related to QPY serialization performance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants