Partition
-
Divide problem into tasks to expose potential parallelism
|
Communicate
-
Determine amount and pattern of data to share between tasks
|
Agglomerate
-
Combine tasks to increase granularity and reduce communication
|
Map
-
Assign agglomerated tasks to physical processors
|