Ian Foster Design Methodology Steps
Finding Concurrency
Algorithm & Supporting Structures
Implementation Mechanism
Decomposition
Data decomposition
* The same activity performed over many threads on different data
Task Decomposition
* Different activities assigned to different threads
Dependencies
Loop parallelism: types
* Forall
one or several assignments to array elements
each assignment is treated as a separate array assignment
SPMD
Fork-Join Parallelism
Master/Worker and Server/Client
Task Pool
Producer/Consumer