+* Change simulator to use discrete tasks.
+ Each task must then be iterated a minimum of times.
+ At least two strategies to balance the tasks:
+ (i) send the tasks that have the most count of iterations;
+ (ii) send the tasks that have the least count of iterations.
+
* Support heterogeneous platforms?
Not sure yet.
Should be doable if each process also sends its speed to its neighbors.