Open
Description
Certain setups, like laser solid density interactions, require very high numbers of particles and have very strongly localized density distributions.
It would be good have an option to load-balance the particles already before or during creation to avoid out-of-memory errors during initialization.
From meeting logs:
- Perhaps precompute where particles need to be initialized?
- With profiles / parsers, we currently do:
- For a given GPU, go through cells, count how many particles go in each cell.
- Then init in cells.
- Challenge: we do the domain decomposition before we init the particles, so for very localized, dense-plasma targets we quickly run out of memory during init and have to use way more GPUs than we need for later sim.
- Workflow to solve would be:
- Store as before the number of particles that will go in each cell.
- Build a cost function from that.
- Redistribute blocks.
- Init particles.