We need a common scheduling code:

Given (from, to, length, private) array, re-arrange to have minimum cost
(for example, min contention).  To do this (an NP-complete problem ?),
we need to know the connectivity of the processors and the way that messages
are routed (store-and-forward or circuit switched or ?).  

Possible heuristics:
Label the edges out of a node Ei.  Send messages in the order 0 <= i <= n-1
This gives a no-contention solution for the "mesh" case.

Send longest first, then use order of edges.

