8000 Initial Partitioning: Perform n-level RB-based partitioning multiple times · Issue #38 · kahypar/kahypar · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Initial Partitioning: Perform n-level RB-based partitioning multiple times #38

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
SebastianSchlag opened this issue Jun 6, 2019 · 2 comments
Assignees

Comments

@SebastianSchlag
Copy link
Member

Currently, our RB-based initial partitioner is only called once, and only calls the actual flat initial 2-way partitioning algorithms multiple times (i.e., in its own initial partitioning phase). However, we might be able to improve initial k-way partitions by calling the entire RB-based initial partitioner multiple times.

@RoccoLoter
Copy link
RoccoLoter commented Mar 29, 2025

Hi @SebastianSchlag ,
Does the current k-way hypergraph partitioning support user-defined initial partitioning? I am using KaHyPar through the Python API, with the configuration file: "km1_kKaHyPar_sea20.ini".

@SebastianSchlag
Copy link
Member Author

Hi @RoccoLoter, could you elaborate what you mean by user-defined initial partitioning? Would you be interested in plugging in your own initial partitioning algorithm?

The framework itself provides a variety of config options for the initial partitioning phase:

i-mode=recursive
i-technique=multi
# initial partitioning -> coarsening
i-c-type=ml_style
i-c-s=1
i-c-t=150
# initial partitioning -> coarsening -> rating
i-c-rating-score=heavy_edge
i-c-rating-use-communities=true
i-c-rating-heavy_node_penalty=no_penalty
i-c-rating-acceptance-criterion=best_prefer_unmatched
i-c-fixed-vertex-acceptance-criterion=fixed_vertex_allowed
# initial partitioning -> initial partitioning
i-algo=pool
i-runs=20
# initial partitioning -> bin packing
i-bp-algorithm=worst_fit
i-bp-heuristic-prepacking=false
i-bp-early-restart=true
i-bp-late-restart=true
# initial partitioning -> local search
i-r-type=twoway_fm
i-r-runs=-1
i-r-fm-stop=simple
i-r-fm-stop-i=50
# main -> local search

For kKaHyPar, the initial partitioning algorithm is itself an n-level recursive bipartitioning algorithm with configurable coarsening, initial partitioning, and refinement algorithm configuration.

It is possible to plug user-defined algorithms into any of these stages. I just requires a bit of framework glue code. If you are interested in doing this, I would be happy do provide guidance.

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

No branches or pull requests

3 participants
0