Re-think repartitioning
The current repartitioning doesn't really work well, and does not work at all for multistepping. Here are some ideas of what we should be doing differently:
- Don't use actual task
tic
/toc
times, but use a simple model to estimate cost. - Devise some scheme to reliably track load imbalance and only repartition when it is needed.
- Find some way to repartition in multistep mode, e.g. by scaling the task weights with the task frequency, or using multi-constraing partitioning.
- Try different partitioning schemes, e.g. how weights are allocated, what criteria METIS minimizes.
- Try different partitioning algorithms, e.g. @d74ksy's work on this, or different libraries.
I've opened this issue to first discuss what we want to try, and then later track the results of whatever it is we decide to try.