-
Notifications
You must be signed in to change notification settings - Fork 61
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
Improve partition_load_balance
#2206
Improve partition_load_balance
#2206
Conversation
- Remove redundant MPI call for global gid list - Make GJ table local - Extract connection table builing.
- add group parameters struct to bundle info - coral temporary structures into their own scopes to avoid RSS growth.
Also, add weird test to see that we can _almost_ construct the partition.
ctx->distributed = std::make_shared<distributed_context>(dummy_context{rank, nranks}); | ||
for (const auto& R: {gj_symmetric(nranks, true), gj_symmetric(nranks, false)}) { | ||
// NOTE: This is a bit silly, but allows us to test _most_ of | ||
// the invariants without proper MPI support. If we could get `gather_gids` to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just curious: can you think of a way to make gather_gids
work?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really without major surgery. We could split this function into three, tentatively:
- register groups, called in parallel and shoving the data into the decomposition
- gather_gids, collective call
- actually construct the decomposition
but that'll require putting the data threaded between those calls into the decomposition
since they must be independent and pass around some state.
@boeschf the failure seems to be a timeout on CSCS CI/CD?! |
@boeschf any news here? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry it took so long! looks good!
Spin-off from #2005. Make the primary load balancing cleaner and faster and more maintainable.
Thus:
super_cells
vsregular_cells
Partially inspired by external feedback