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

[BBPBGLIB-1102] Add load balance based on dry run estimate #111

Merged
merged 15 commits into from
Feb 13, 2024

Conversation

st4rl3ss
Copy link
Contributor

@st4rl3ss st4rl3ss commented Jan 12, 2024

Context

This MR includes new mechanisms to generate a detailed load balancing using the memory estimates generated by the dry run. It distributes all the gids of the circuit to a number of ranks specified using the --num-target-ranks CLI flag taking care of distributing so that the allocation of each rank is balanced. The system is based on a greedy algorithm, assigning cells in blocks of 10 to the emptiest rank available at that moment.

It also includes automatic pickling and gzipping of the allocation dictionary to allocation.pkl.gz file. Loading of the generated load balance will be integrated in a future MR.

Scope

The MR briefly expands the capabilities of the dry run workflow with automatic load balancing and save to pickle file for future use. All the structure involved stay the same and no significant change is made to workflow.

Testing

Most of the new functionalities should be automatically tested using the test_dry_run_workflow integration tests. In any case a specific test that loads the pickled allocation.bin file and checks against expected values was integrated.

Review

  • PR description is complete
  • Coding style (imports, function length, New functions, classes or files) are good
  • Unit/Scientific test added
  • Updated Readme, in-code, developer documentation

@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

@st4rl3ss st4rl3ss marked this pull request as ready for review February 1, 2024 15:03
neurodamus/commands.py Outdated Show resolved Hide resolved
neurodamus/utils/memory.py Outdated Show resolved Hide resolved
neurodamus/utils/memory.py Show resolved Hide resolved
neurodamus/utils/memory.py Outdated Show resolved Hide resolved
neurodamus/utils/memory.py Outdated Show resolved Hide resolved
neurodamus/utils/memory.py Outdated Show resolved Hide resolved
@bbpbuildbot

This comment has been minimized.

neurodamus/utils/memory.py Outdated Show resolved Hide resolved
@st4rl3ss st4rl3ss changed the title Add load balance based on dry run estimate [BBPBGLIB-1102] Add load balance based on dry run estimate Feb 6, 2024
neurodamus/utils/memory.py Outdated Show resolved Hide resolved
@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

neurodamus/utils/memory.py Outdated Show resolved Hide resolved
neurodamus/utils/memory.py Outdated Show resolved Hide resolved
@bbpbuildbot

This comment has been minimized.

neurodamus/utils/memory.py Outdated Show resolved Hide resolved
neurodamus/utils/memory.py Outdated Show resolved Hide resolved
@st4rl3ss st4rl3ss self-assigned this Feb 8, 2024
neurodamus/utils/memory.py Outdated Show resolved Hide resolved
neurodamus/utils/memory.py Show resolved Hide resolved
@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

@bbpbuildbot

This comment has been minimized.

neurodamus/node.py Show resolved Hide resolved
neurodamus/utils/memory.py Outdated Show resolved Hide resolved
ferdonline
ferdonline previously approved these changes Feb 13, 2024
@bbpbuildbot
Copy link

@st4rl3ss st4rl3ss merged commit 130b2e9 into main Feb 13, 2024
3 checks passed
@st4rl3ss st4rl3ss deleted the bellotta/dryrun_load_balance branch February 13, 2024 16:59
WeinaJi pushed a commit that referenced this pull request Oct 14, 2024
…ate (#111)

## Context
This MR includes new mechanisms to generate a detailed load balancing
using the memory estimates generated by the dry run. It distributes all
the gids of the circuit to a number of ranks specified using the
`--num-target-ranks` CLI flag taking care of distributing so that the
allocation of each rank is balanced. The system is based on a greedy
algorithm, assigning cells in blocks of 10 to the emptiest rank
available at that moment.

It also includes automatic pickling and gzipping of the allocation
dictionary to `allocation.pkl.gz` file. Loading of the generated load
balance will be integrated in a future MR.

## Scope
The MR briefly expands the capabilities of the dry run workflow with
automatic load balancing and save to pickle file for future use. All the
structure involved stay the same and no significant change is made to
workflow.

## Testing
Most of the new functionalities should be automatically tested using the
`test_dry_run_workflow` integration tests. In any case a specific test
that loads the pickled `allocation.pkl.gz` file and checks against expected
values was integrated.

## Review
* [x] PR description is complete
* [x] Coding style (imports, function length, New functions, classes or
files) are good
* [x] Unit/Scientific test added
* [x] Updated Readme, in-code, developer documentation
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.

4 participants