Planning a road trip becomes easier when a large goal is split into manageable jobs. Foster’s methodology applies the same idea to concurrent systems: find independent work, organize communication, group suitable tasks, and map the resulting work onto execution resources. section 13.2
Work through the design in four stages:
- Partitioning identifies portions of work that can run concurrently, using data or task decomposition while initially ignoring the target processor count. section 13.2
- Communication determines what data tasks need, how execution is coordinated, and which communication structures or algorithms provide it. section 13.2
- Agglomeration groups related tasks into larger responsibility areas, balancing performance requirements against implementation cost. section 13.2
- Mapping assigns the designed work to the available execution resources. section 13.2
Matrix multiplication
Matrix multiplication provides a concrete target. A sequential implementation uses nested loops to combine rows of A with columns of B and fill matrix C. Foster’s steps turn this baseline into a design problem for concurrent calculation. section 13.3
Foster’s methodology
Use the methodology diagram as a visual checklist while moving from independent work to an executable concurrent design. section 13.2
