Print this page Share

Patterns for Parallel Software Design

ISBN: 978-0-470-69734-4
438 pages
March 2010
Patterns for Parallel Software Design (0470697342) cover image
Essential reading to understand patterns for parallel programming

Software patterns have revolutionized the way we think about how software is designed, built, and documented, and the design of parallel software requires you to consider other particular design aspects and special skills. From clusters to supercomputers, success heavily depends on the design skills of software developers.

Patterns for Parallel Software Design presents a pattern-oriented software architecture approach to parallel software design. This approach is not a design method in the classic sense, but a new way of managing and exploiting existing design knowledge for designing parallel programs. Moreover, such approaches enhance not only build-time properties of parallel systems, but also, and particularly, their run-time properties.

  • Features known solutions in concurrent and distributed programming, applied to the development of parallel programs
  • Provides architectural patterns that describe how to divide an algorithm and/or data to find a suitable partition and link it with a programming structure that allows for such a division
  • Presents an architectural point of view and explains the development of parallel software

Patterns for Parallel Software Design will give you the skills you need to develop parallel software.

See More


About the Author.


Contributor Biography.

Chapter 1 Software Patterns.

The Concept of a Software Pattern.

Pattern Description, Organization and Categorization.


Chapter 2 A Brief Introduction to Parallel Programming.

Parallel Programming.

Factors that Influence the Performance of a Parallel Program.

Advantages and Disadvantages of Parallel Programming.


Chapter 3 Architectural Patterns for Parallel Programming.

Parallel Pipes and Filters.

Parallel Layers.

Communicating Sequential Elements.


Shared Resource.


Chapter 4 Design Patterns for Communication Components.

Shared Variable Pipe.

Multiple Local Call.

Message Passing Pipe.

Multiple Remote Call.

Shared Variable Channel.

Message Passing Channel.

Local Rendezvous.

Remote Rendezvous.


Chapter 5 Some Idioms for Synchronization Mechanisms.


Critical Region.


Message Passing.

Remote Procedure Call.


Chapter 6 Two Case Studies.

Blood Vessel Segmentation.

Adaptive 3D Grid-Based Eulerian (Gasdynamic) Program.


Chapter 7 Parallel Software Design.

A General Parallel Software Design Process.

A Pattern-Based Parallel Software Design Method.

Problem Analysis.

Coordination Design – Architectural Patterns.

Communication Design – Design Patterns.

Detailed Design – Idioms.

Implementation and Evaluation.


Chapter 8 Parallel Software Architecture.

A Definition of Parallel Software Architecture.

Parallel Software Design.


Chapter 9 Directions in Patterns for Parallel Programming.

The Situation in Software Design.

Design Experience and Techniques.

A Tangible Description for Parallel Software Systems.

The Need for Measurement in Parallel Software Design.

Final Remarks.




Index of Patterns.


See More
Back to Top