Initial partition with memory weighted edges
Introduces a new initial partition technique and makes it the default.
The new technique edgememory
is like the previous memory
one except
we also add some weight to the graph edges so that the cuts between ranks
are guided away from splitting dense regions unnecessarily. Tests show
this is slightly better than the previous technique in getting a good balance
(order of few percent).
This request also includes the clipping of gravity particle weights to avoid problems with dense cells being more efficiently processed than less dense ones, so these are given overweight (we assume memory use per cell correlates with the work, that is not true).
We also have a tweak to how we work out when the sum of weights is
greater than the highest value of type idx_t
(very important when
idx_t
is a 32bit int), seems we need a little more overhead to
avoid overflow some where in the depths of METIS (1000 -> 10000).
Finally the dumpCells
debugging function is extended to include a sum of the
task times associated with the cell.
See #640 (closed) for some motivation.