Foster's Design Methodology
Partition
- Divide the problem into tasks
- Intention is to identify and expose opportunities for parallel execution
Communication
- Sharing data between computations
- Determine amount and pattern of communication
Aglomeration
- Combine or group tasks to improve performance
Mapping
- Assign agglomerated tasks to threads/physical processors.