liveBook · Manning

Foster’s design methodology

As explained in Grokking Concurrency

Foster’s design methodology is a four-step approach to designing parallel algorithms through partitioning, communication, agglomeration, and mapping.

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

How Grokking Concurrency covers it

How deep it goes
Explains four stages with a road-trip analogy and begins applying them to matrix multiplication.
Examples
Uses road-trip planning and matrix multiplication, including a nested-loop sequential implementation as a comparison point.
What you can do after
Apply a four-stage checklist to identify parallel work and shape its communication, grouping, and execution assignment.
How it connects
Connects concurrency with data decomposition, task decomposition, communication, matrix multiplication, and sequential algorithms.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Grokking Concurrency. The section links point to the parts of the book it draws on.