gandalfcode / gandalf

GANDALF (Graphical Astrophysics code for N-body Dynamics And Lagrangian Fluids)
GNU General Public License v2.0
44 stars 12 forks source link

MPI load balancing #24

Open dhubber opened 10 years ago

dhubber commented 10 years ago

Need to re-write subroutines to walk the domain trees and compute the new load balanced domains

dhubber commented 8 years ago

Load balancing works in principle, but still some bug remains (in CodeTiming perhaps?) so deactivated for now

giovanni-rosotti commented 8 years ago

No the code timing one is a separate bug...

giovanni-rosotti commented 8 years ago

See #45

giovanni-rosotti commented 8 years ago

Load balancing is now implemented. I'll leave the issue open though to remember ourselves that we should time how long it takes. If we find it's an important fraction, we might want to switch to something that converges faster than bisection

dhubber commented 7 years ago

I guess we should re-evaluate the load balancing on the MPI before going back to the paper. Maybe there are other MPI communication latency issues, but if the work is evenly spread then hopefully there is no need to make changes to how the domains are re-computed.

giovanni-rosotti commented 7 years ago

As we found out in the paper, the load balancing is actually the limit to the scaling. This needs a careful assesment.

rbooth200 commented 7 years ago

The 'best' solution is likely problem dependent too, for example azimuthal domain decomposition might work well for discs. So I agree that this needs a thorough exploration...

giovanni-rosotti commented 7 years ago

I agree. But I think some very important would be to force the load balancing to happen only on relatively high timesteps (not necessarily resync, but anyway when a large fraction of particles are active). Of course this depends on whether the CPU time is dominated by the lowest or the highest levels...

rbooth200 commented 7 years ago

I agree. It might also be worth separating load-balancing from particle transfer too.