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

Use rustworkx 0.15.0 features in DAGCircuit.remove_op_node #12756

Merged
merged 1 commit into from
Jul 11, 2024

Conversation

mtreinish
Copy link
Member

Summary

This commit updates the minimum rustworkx version to 0.15.0 to pull in the new PyDiGraph.remove_node_retain_edges_by_id() method introduced in that release. This new function is used for the DAGCircuit.remove_op_node() method instead of the
PyDiGraph.remove_node_retain_edges() function. This new method has much better scaling characteristics and should improve the performance characteristics of removing very wide operations from a DAGCircuit.

Fixes #11677
Part of #12156

Details and comments

This commit updates the minimum rustworkx version to 0.15.0 to pull in
the new PyDiGraph.remove_node_retain_edges_by_id() method introduced
in that release. This new function is used for the
DAGCircuit.remove_op_node() method instead of the
PyDiGraph.remove_node_retain_edges() function. This new method has much
better scaling characteristics and should improve the performance
characteristics of removing very wide operations from a DAGCircuit.

Fixes Qiskit#11677
Part of Qiskit#12156
@mtreinish mtreinish added performance Changelog: API Change Include in the "Changed" section of the changelog mod: transpiler Issues and PRs related to Transpiler labels Jul 11, 2024
@mtreinish mtreinish added this to the 1.2.0 milestone Jul 11, 2024
@mtreinish mtreinish requested a review from a team as a code owner July 11, 2024 10:35
@qiskit-bot
Copy link
Collaborator

One or more of the following people are relevant to this code:

  • @Qiskit/terra-core

@coveralls
Copy link

Pull Request Test Coverage Report for Build 9889916677

Details

  • 1 of 1 (100.0%) changed or added relevant line in 1 file are covered.
  • 24 unchanged lines in 2 files lost coverage.
  • Overall coverage decreased (-0.03%) to 89.868%

Files with Coverage Reduction New Missed Lines %
crates/qasm2/src/lex.rs 6 92.11%
crates/qasm2/src/parse.rs 18 96.69%
Totals Coverage Status
Change from base Build 9876062430: -0.03%
Covered Lines: 65727
Relevant Lines: 73137

💛 - Coveralls

@jakelishman jakelishman enabled auto-merge July 11, 2024 11:19
@jakelishman jakelishman added this pull request to the merge queue Jul 11, 2024
Merged via the queue into Qiskit:main with commit 99ae318 Jul 11, 2024
15 checks passed
@mtreinish mtreinish deleted the remove_op_node_scaling branch July 11, 2024 14:48
Procatv pushed a commit to Procatv/qiskit-terra-catherines that referenced this pull request Aug 1, 2024
)

This commit updates the minimum rustworkx version to 0.15.0 to pull in
the new PyDiGraph.remove_node_retain_edges_by_id() method introduced
in that release. This new function is used for the
DAGCircuit.remove_op_node() method instead of the
PyDiGraph.remove_node_retain_edges() function. This new method has much
better scaling characteristics and should improve the performance
characteristics of removing very wide operations from a DAGCircuit.

Fixes Qiskit#11677
Part of Qiskit#12156
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: API Change Include in the "Changed" section of the changelog mod: transpiler Issues and PRs related to Transpiler performance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix overhead of DAGCircuit.remove_op_node
4 participants