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

Feature request: Unbalanced partitioning, allowing non-power of 2 splits #297

Open
wmodes opened this issue Aug 15, 2019 · 2 comments
Open
Assignees

Comments

@wmodes
Copy link

wmodes commented Aug 15, 2019

Currently using the Kernighan-Lin Grouping Method, only power of 2 group splits are supported. This is impractical for some course sizes if the goal is to create groups of a certain size. For instance, in a course size of 50, 8 groups results in very large groups of 6 members, but 16 groups results in small groups of 3.

I don't know the algorithm very well, but some hasty research revealed similar algorithms that can do unbalanced partitioning, such as shemetis (from this article)

shmetis can handle non-power of 2 partitions, by performing unbalanced bisections. That is, for a 3-way partition it computes a 2-way partition such that the first part has 2/3 of the total number of vertices, and the other part has 1/3. It then it bisects the first part into two equal-size parts,
each containing 1/3 of the original number of vertices.

@wmodes
Copy link
Author

wmodes commented Feb 14, 2021

Checking in. I see the issue is assigned, but not responded.

Alternately, dummy group can be created that balance out Kernighan-Lin's partitioning method and then discarded when output is created. That is, if you have 50 members, and want groups of about 4, 4 dummy groups can be created to make 16 groups and the 4 dummy groups with no members can be discarded.

@Michionlion
Copy link
Collaborator

Unfortunately, this repository does not have a current maintainer -- I think the parties involved (@gkapfham, @huangs1, @barrezuetai, and others) would be willing to answer questions about implementations, but probably don't have the bandwidth to make any changes at this time.

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

8 participants