10000 The framework's manual · Issue #153 · kahypar/kahypar · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

The framework's manual #153

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

Open
936187425 opened this issue Apr 18, 2023 · 3 comments
Open

The framework's manual #153

936187425 opened this issue Apr 18, 2023 · 3 comments

Comments

@936187425
Copy link

Is there a manual for this framework that introduces each interface?

And in the python interface,

hyperedge_indices = [0,2,6,9,12]
hyperedges = [0,2,0,1,3,4,3,4,6,2,5,6] 

how to understand the hyperedge_indices?

@N-Maas
Copy link
Collaborator
N-Maas commented Apr 19, 2023

Hi @936187425,

Is there a manual for this framework that introduces each interface?

there is no manual currently. Unfortunately, we don't really have the manpower to create a comprehensive manual in the near future.

You can find the basic information and some additional documentation in the README (including a summary of each of the interfaces). Further, the help message of the CLI application provides a short description of each of the available parameters.

hyperedge_indices = [0,2,6,9,12]
hyperedges = [0,2,0,1,3,4,3,4,6,2,5,6] 

how to understand the hyperedge_indices?

So, each hyperedge consists of multiple pins (a pin is the index of a hypernode). The hyperedges array contains the pins of all of the hyperedges, starting with the pins of the first hyperedge, then the pins of the second hyperedge and so on.

However, we need to know which pins belongs to which hyperedge. For this, the hyperedge_indices array contains the index of the first pin of each hyperedge. We can visualize a smaller example as follows:

[0,  2,  6]
 |   |_  |________
 |     |          |
 V     V          V
[0, 2, 0, 1, 3, 4]

In this example, we have 2 hyperedges with the first hyperedge (hyperedge 0) containing the pins {0, 2} and the second hyperedge containing the pins {0, 1, 3, 4}. Note that the last entry of hyperedge_indices is a sentry which does not correspond to a hyperedge. Instead, the last entry must always be equal to the length of hyperedges (thereby marking the end of the last hyperedge).

Hope this helps!

@SebastianSchlag
Copy link
Member

Thanks @N-Maas for the detailed explanation.

Just as an additional pointer: These two arrays essentially correspond to the eptr and eind arrays mentioned in the hmetis manual on page 13 and figure 6.

You can find the basic information and some additional documentation in the README (including a summary of each of the interfaces). Further, the help message of the CLI application provides a short description of each of the available parameters.

To show this help message, you can run KaHyPar --help.

@936187425
Copy link
Author

thank you!

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

No branches or pull requests

3 participants
0