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

Implement KaHyPar optimizer #35

Merged
merged 15 commits into from
Oct 30, 2023
Merged

Conversation

jofrevalles
Copy link
Member

This PR addresses issue #7 by implementing the Hypergraph partitioning optimizer, inspired by the work in cotengra and its paper.

@jofrevalles jofrevalles marked this pull request as draft October 11, 2023 06:34
@codecov
Copy link

codecov bot commented Oct 11, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (20b36e8) 77.41% compared to head (3ed894e) 78.70%.
Report is 16 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #35      +/-   ##
==========================================
+ Coverage   77.41%   78.70%   +1.28%     
==========================================
  Files          10       11       +1     
  Lines         217      277      +60     
==========================================
+ Hits          168      218      +50     
- Misses         49       59      +10     
Files Coverage Δ
src/EinExprs.jl 100.00% <ø> (ø)
src/Optimizers/KaHyPar.jl 100.00% <100.00%> (ø)
src/Optimizers/Optimizers.jl 50.00% <ø> (ø)

... and 2 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

src/Optimizers/Hyper.jl Outdated Show resolved Hide resolved
src/Optimizers/Hyper.jl Outdated Show resolved Hide resolved
src/Optimizers/Hyper.jl Outdated Show resolved Hide resolved
src/Optimizers/Hyper.jl Outdated Show resolved Hide resolved
src/Optimizers/Hyper.jl Outdated Show resolved Hide resolved
src/Optimizers/Hyper.jl Outdated Show resolved Hide resolved
src/Optimizers/Hyper.jl Outdated Show resolved Hide resolved
src/Optimizers/Hyper.jl Outdated Show resolved Hide resolved
Co-authored-by: Sergio Sánchez Ramírez <[email protected]>
src/Optimizers/Hyper.jl Outdated Show resolved Hide resolved
@mofeing
Copy link
Member

mofeing commented Oct 26, 2023

Implementation finished!

To do

  • Write tests
  • Optimize incidence matrix construction by using subviews instead of recreating sub incidence matrices
  • Check KaHyPar configuration path
  • Check what node_weights,edge_weights should be

@mofeing
Copy link
Member

mofeing commented Oct 27, 2023

Runtime logs by the KaHyPar library can only be disabled via the quiet option in the configuration files. kahypar/KaHyPar.jl#18

@mofeing mofeing changed the title Implement Hypergraph partitioning optimizer Implement KaHyPar optimizer Oct 27, 2023
@mofeing mofeing marked this pull request as ready for review October 30, 2023 16:10
@mofeing mofeing merged commit d81db6f into master Oct 30, 2023
2 of 3 checks passed
@mofeing mofeing deleted the feature/hypergraph-partitioning branch October 30, 2023 16:11
@mofeing
Copy link
Member

mofeing commented Oct 30, 2023

@jofrevalles I'm merging because this branch is based on an old commit and some bugs are resurfacing when I try to use it. It's already usable but we need to understand some things before doing a release. Specifically managing KaHyPar profiles and checking that edge_weigths and node_weights are correctly defined.

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