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

Use custom coalescing heuristic and introduce a number of new configuration options for memory pools #1183

Merged
merged 9 commits into from
Oct 25, 2024

Conversation

msimberg
Copy link
Collaborator

@msimberg msimberg commented Sep 6, 2024

This is intended to replace #1143 as a more permanent solution.

This introduces:

  • configuration options for controlling the "next" allocation size (i.e. all blocks after the first one) and alignment size of pools
  • a custom coalescing heuristic that works around Pathological reallocation in memory pools LLNL/Umpire#906
  • configuration options that go along with the custom heuristic

I'm 100% sure I haven't chosen the best names for the new options, but I'd like to discuss them with you first before making any further changes. Additionally, I'm 100% aware that the coalescing options add complexity. My intention with them is primarily to have as debugging options, not necessarily something most users would change. The default behaviour is very "vanilla", but in case we see situations where too much memory is used or similar we can use these options to try to tune how umpire frees/coalesces blocks in the pool.

As a semi-related change I've also namespaced the Umpire pools with a DLAF_ prefix since we used quite generic names. I suppose we'd notice if the names clash, but I'd rather be on the safe side and avoid clashes (e.g. if the non-thread safe pool is accessed without synchronization I expect bad things to happen).

@msimberg msimberg self-assigned this Sep 6, 2024
@msimberg
Copy link
Collaborator Author

msimberg commented Sep 6, 2024

cscs-ci run

1 similar comment
@msimberg
Copy link
Collaborator Author

msimberg commented Sep 6, 2024

cscs-ci run

@msimberg msimberg requested review from RMeli, rasolca, albestro, biddisco and aurianer and removed request for RMeli and rasolca September 9, 2024 13:08
@msimberg
Copy link
Collaborator Author

msimberg commented Sep 9, 2024

src/init.cpp Outdated Show resolved Hide resolved
include/dlaf/init.h Outdated Show resolved Hide resolved
@msimberg msimberg force-pushed the umpire-pool-heuristics-alignment branch from dd78a8f to b099056 Compare September 17, 2024 07:56
@msimberg
Copy link
Collaborator Author

cscs-ci run

@msimberg msimberg marked this pull request as ready for review September 23, 2024 12:36
@msimberg
Copy link
Collaborator Author

cscs-ci run

@msimberg
Copy link
Collaborator Author

msimberg commented Oct 3, 2024

cscs-ci run

@rasolca rasolca merged commit cbe09d3 into eth-cscs:master Oct 25, 2024
5 checks passed
github-actions bot pushed a commit that referenced this pull request Oct 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants