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

warpx.roundrobin_sfc: A runtime parameter to control distribution mapping #4909

Merged
merged 8 commits into from
Aug 28, 2024

Conversation

WeiqunZhang
Copy link
Member

The default is false. If it's true, AMReX's RRSFC strategy will be used to override the default SFC strategy used by amrex::AmrCore. The motivation for this is that this might mitigate the load imbalance issue during initialization by avoiding putting neighboring boxes on the same process.

@WeiqunZhang WeiqunZhang requested a review from RemiLehe May 3, 2024 00:27
@WeiqunZhang WeiqunZhang force-pushed the make_distromap branch 2 times, most recently from 99d9517 to 6f15ec5 Compare May 3, 2024 00:31
…ping

The default is false. If it's true, AMReX's RRSFS strategy will be used to
override the default SFC strategy used by amrex::AmrCore. The motivation for
this is that this might mitigate the load imbalance issue during
initialization by avoiding putting neighboring boxes on the same process.
@ax3l ax3l requested review from ax3l and n01r May 3, 2024 22:27
@ax3l ax3l added the component: load balancing Load balancing strategies, optimization etc. label May 3, 2024
Source/WarpX.cpp Outdated Show resolved Hide resolved
Source/WarpX.cpp Outdated Show resolved Hide resolved
@ax3l ax3l requested a review from dpgrote May 3, 2024 22:32
@ax3l ax3l added the component: initialization Changes related to the initialization of the simulation label May 3, 2024
@dpgrote
Copy link
Member

dpgrote commented May 4, 2024

Looks good. Would his affect the runtime, slowing the MPI communication since neighboring boxes will be far away from each other?

@ax3l ax3l self-assigned this May 8, 2024
@ax3l
Copy link
Member

ax3l commented Aug 12, 2024

@WeiqunZhang sorry for the delay, can you please rebase?

Source/WarpX.cpp Show resolved Hide resolved
Source/WarpX.cpp Outdated Show resolved Hide resolved
Source/WarpX.H Outdated Show resolved Hide resolved
@n01r
Copy link
Member

n01r commented Aug 13, 2024

Thank you, @WeiqunZhang!
I will test/use this down the line. :)

@ax3l
Copy link
Member

ax3l commented Aug 28, 2024

Thank you so much!

After checking back with our collaborators, we currently do not have a reproducer at hand, but I'll include it in the coming release so we can try it when we should find one again.

@n01r might have one we can try this on, too.

Copy link
Member

@ax3l ax3l left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @WeiqunZhang! ✨

@ax3l ax3l merged commit b4a5ba2 into ECP-WarpX:development Aug 28, 2024
47 checks passed
@ax3l
Copy link
Member

ax3l commented Aug 28, 2024

@dpgrote

Looks good. Would his affect the runtime, slowing the MPI communication since neighboring boxes will be far away from each other?

The idea is to overcome out-of-memory in the init routines (e.g., for LPI sims with a lot of particles in close-by ranks) and then apply load balancing based on a user-defined cost (and distribution) model, as usual.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: initialization Changes related to the initialization of the simulation component: load balancing Load balancing strategies, optimization etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants