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

LAMM Fixes #10

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

LAMM Fixes #10

wants to merge 2 commits into from

Conversation

kaposnick
Copy link

Hi. Thanks a lot for your contribution to open-sourcing the black-box of minor embedding algorithms!

I tried to fix part of the codebase, which prevented me from executing the layour_aware_minor_embedding example. There were some missing variables and methods from specific classes, probably were broken at an earlier version of the repository.

I also, introduced some strong typing to make it clear when we refer to tile variable as a Tuple[int,...] or class Tile.

@joseppinilla
Copy link
Owner

Hi!
Thanks a lot for the contributions! I'm currently in the process of cleaning up some of the code
in this repo to collect some data. Unfortunately, I haven't maintained a lot of the methods and
resources (as you can tell), so a lot of the code errors out at some point.

Let me know if there's something specific you're hoping to replicate, and I can try and get it into
shape, including the PR you made.

@kaposnick
Copy link
Author

kaposnick commented Feb 21, 2024

I am mostly into having a working codebase for producing minor embeddings using LAMM, focusing on Pegasus architecture (but also on Chimera).

As far as Pegasus architecture is concerned, the neighborship (having tiles as bins) should also be redefined. A node in Pegasus is characterized by its nice coordinates (t,i,j,u,k) where t dimension defines a different Chimera layer and each tile is characterized by the tuple (t,i,j). Unlike Chimera architecture, where a tile is neighboring across the i,j dimensions, a Pegasus tile should also neighbor in the t dimension. Do you have any thoughts on this?

@joseppinilla
Copy link
Owner

Right. I was thinking about it in two ways.

  1. Simply combine the 3 chimera-type structures of Pegasus into one tile.
    See Figure 23 here: https://docs.dwavesys.com/docs/latest/c_gs_4.html
    Pro: Very easy
    Con: More qubits per tile, so not as much granularity in the placement.

  2. Create a 2D projection of the (t,i,j) coordinates, for example:

for i in rows:
   for t in layer:
      for j in columns:
            tile[ i*3+t, j]

Pros: Also easy
Con: Some neighbouring tiles would not have connecting edges between them

However, other solutions could use more complex 2D projections.

I should mention that D-Wave has a working version of LAMM here:
https://github.com/dwavesystems/minorminer/tree/main/minorminer/layout

@kaposnick
Copy link
Author

Correct if I am mistaken, but this is a variant of LAMM, in the sense that it, indeed, is Layout-Aware but they do not perform the diffusion step of your paper.
Is it closer to the SPMM, since it performs an initial mapping (based on closest distance in the layouts) and feeds it in the MinorMiner?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants