Chapter 3. Architectural Patterns for Parallel Programming

'How does one invent program structure? I do it by drawing pictures of it from different viewpoints over and over again until a simple and convincing pattern emerges. Perhaps, there are more systematic ways of inventing structure – I don't know. But I do recognize a good program when I find one'.

Per Brinch-Hansen, The Architecture of Concurrent Programs (1977), p. 192.

This chapter introduces the concept of architectural for parallel programming, as the basic organizational structures commonly used in parallel programming to compose parallel software systems. Selection of architectural patterns for parallel programming is based on the partitioning proposed for algorithms and/or data. The architectural patterns for parallel programming describe the coordination of an overall parallel software system. The patterns presented here that are commonly used in parallel programming are Parallel Pipes and Filters, Parallel Layers, Communicating Sequential Elements, Manager–Workers and Shared Resource.

Get Patterns for Parallel Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.