Open dhubber opened 10 years ago
Load balancing works in principle, but still some bug remains (in CodeTiming perhaps?) so deactivated for now
No the code timing one is a separate bug...
See #45
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
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.
As we found out in the paper, the load balancing is actually the limit to the scaling. This needs a careful assesment.
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...
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...
I agree. It might also be worth separating load-balancing from particle transfer too.
Need to re-write subroutines to walk the domain trees and compute the new load balanced domains