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

Fidelity-aware heuristic and search graph visualization #383

Closed
wants to merge 21 commits into from

Conversation

EliasLF
Copy link
Collaborator

@EliasLF EliasLF commented Oct 19, 2023

Description

Includes a new fidelity-aware heuristic (+some changes to the current heuristic mapping system making it compatible with the new approach) and a Python visualization module for visualizing search graphs after mapping.

Known issues:

  • The fidelity-aware heuristic mapping is not yet compatible with dynamic initial layouting, lookahead or qubit teleportation.
  • Some circuits take extremely long during the mapping process due to the high non-convexity of the cost function in the fidelity-aware case. A few techniques for premature search termination (trading guaranteed local optimality for acceptable mapping times in all cases) are planned for another PR in the near future.

Because of those issues, there is 1 test case, that I have only added as a comment for now (since, though running successfully, it takes up to an hour depending on the hardware it is run on) and I did not yet add an example for fidelity-aware mapping in Mapping.ipynb in the documentation. (I think advertising this feature outside the API reference only makes sense once it is more fleshed out)

Checklist:

  • The pull request only contains commits that are related to it.
  • I have added appropriate tests and documentation.
  • I have made sure that all CI jobs on GitHub pass.
  • The pull request introduces no new warnings and follows the project's style guidelines.

@EliasLF
Copy link
Collaborator Author

EliasLF commented Oct 19, 2023

It seems all actions fail because git is unable to find some submodules. I do not have enough insight into how the GitHub Actions are set up on this repo. Are those errors due to the setup or am I at fault here?

Copy link
Member

@burgholzer burgholzer Oct 19, 2023

Choose a reason for hiding this comment

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

Here's one change that should most likely not be part of the PR.
The qfr project is superseded by the mqt-core library since a couple months (although this was just a rename of the repository).
The PR in it's current state is adding that qfr submodule back.
That's the most likely reason for all of the CI failing.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Oh that's right, I should have caught that on the file diff list. Thank you!
Although, it seems the root problem was a corrupted git repo/branch on my end. I think the cleanest solution is to just create a new branch and submit another PR for that branch containing my implementation. Since we introduce PRs with squash commits into the main branch, there won't be any difference anyways.

I'm closing this PR now and opening an equivalent one shortly.

PS: After resetting my local setup I got QMAP to compile on Windows directly for the first time. So it seems the new mqt_core implementation really is more stable. That's great!

Copy link
Member

Choose a reason for hiding this comment

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

Oh that's right, I should have caught that on the file diff list. Thank you!

Although, it seems the root problem was a corrupted git repo/branch on my end. I think the cleanest solution is to just create a new branch and submit another PR for that branch containing my implementation. Since we introduce PRs with squash commits into the main branch, there won't be any difference anyways.

I'm closing this PR now and opening an equivalent one shortly.

Sounds good!

PS: After resetting my local setup I got QMAP to compile on Windows directly for the first time. So it seems the new mqt_core implementation really is more stable. That's great!

Nice. Glad to hear that!

@burgholzer burgholzer added feature New feature or request python Anything related to Python code c++ Anything related to C++ code labels Oct 19, 2023
@EliasLF EliasLF closed this Oct 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Anything related to C++ code feature New feature or request python Anything related to Python code
Projects
Status: Done
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants