1 |
Partition
-
Divide problem into tasks
-
In HPF, look for array update operators
-
Elemental computations, linear algebra
|
2 |
Communicate
-
Determine amount and pattern of communication
-
In HPF, consider which elements are combined
-
Topological neighbors, data reductions
|
3 |
Agglomerate
-
Combine tasks
-
In HPF, choose the data mapping
-
BLOCK for index locality, CYCLIC for load balance
|
4 |
Map
-
Assign agglomerated tasks to physical processors
-
In HPF, trust the compiler
|