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

Circuit Partition #227

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Circuit Partition #227

wants to merge 3 commits into from

Conversation

jkim971201
Copy link

Hi, I'm a graduate student from POSTECH, Korea.

I implemented a graph partitioning method for faster HSF simulation.
This is based on my ASP-DAC 2023 paper, "Graph Partitioning Approach for Fast Quantum Circuit Simulation."
(https://doi.org/10.1145/3566097.3567928)

  1. Sicne there are many changes from the publication version, not all the features in the paper are implemented.
  2. Most of the source codes are in the "CircuitPartitioner.cpp" and "CircuitPartitioner.h"
  3. You can turn on the graph partitining mode by giving "--splitting_method graph_partitioning" to ddsim_simple binary.
  4. I used a spectral partitioning algorithm which requires "Eigen" C++ library.
    (https://ieeexplore.ieee.org/document/159993)
  5. Unfortunately, this is only limited to Google supremacy circuits...
  6. Experimental results are below.
    https://docs.google.com/spreadsheets/d/1xG5sxuu01XgWhC-nbrjbg0QJdhRKAeq3-gL3XrBf6pA/edit#gid=0
  7. I verified the results are correct by printing the amplitude vectors and comparing them with ddsim_vector binary.
    (but not all the cases)

I hope this is interesting to you.
Thank you.

@burgholzer
Copy link
Member

Hey 👋🏼
Many thanks for opening this PR! I am pretty busy at the moment, so it might take me some time to get to it.
Two things up front:

  • would it be possible to avoid the Eigen dependency somehow? It's a pretty heavy dependency and we would like to avoid adding it if we can. Could you maybe extract the respective method from there (assuming it's only a single method being used)?
  • could you please also add tests (on the C++, but also the Python side) that make sure these functions work as intended.

Ideally, the CI checks on GitHub should be all green.

@burgholzer burgholzer added the enhancement Anything related to improvements of the existing library label Apr 23, 2023
@jkim971201
Copy link
Author

I got it.
I have some other project deadline, so I think I can make CI checks all green after that.

Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Anything related to improvements of the existing library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants