9.5. 9.5 Final Remarks

This book is the result of fourteen years of studying parallel programming, and from the point of view of the software designer, ten years of researching software patterns for parallel programming. Following the advice and guidance of many people within the pattern community whenever possible, I tried to solve real problems, using real hardware with real software.

This book represents an initial research effort to explore the use of software patterns in parallel programming, particularly those that express coordination, communication and synchronization between parallel software components. My research has focused mainly on the coordination of parallel programs. The descriptions of several architectural patterns that accomplish specific kinds of coordination have been studied [OR98], such as Communicating Sequential Elements [Ort00] [Section 3.3], Shared Resource [Ort03] [Section 3.5], Manager–Workers [Ort04] [Section 3.4], Parallel Pipes and Filters [Ort05] [Section 3.1] and Parallel Layers [Ort07a] [Section 3.2]. Along with these, a great deal of the research has been on using and programming them using available hardware and software technologies. For each software pattern, a general program was written that defined the coordination structure of the architectural pattern. Many of these structures required the design and implementation of communication substructures [Ort07a] [Chapter 4] which make use of synchronization mechanisms within their implementation ...

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

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.