Skip to content

LAMM Fixes#10

Open
kaposnick wants to merge 2 commits into
joseppinilla:mainfrom
kaposnick:FIX_EXAMPLES
Open

LAMM Fixes#10
kaposnick wants to merge 2 commits into
joseppinilla:mainfrom
kaposnick:FIX_EXAMPLES

Conversation

@kaposnick

Copy link
Copy Markdown

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
Copy Markdown
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

kaposnick commented Feb 21, 2024

Copy link
Copy Markdown
Author

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
Copy Markdown
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
Copy Markdown
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