Patterns for Parallel Software Design
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.
About the Author.
Chapter 1 Software Patterns.
The Concept of a Software Pattern.
Pattern Description, Organization and Categorization.
Chapter 2 A Brief Introduction to 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.
Communicating Sequential Elements.
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.
Chapter 5 Some Idioms for Synchronization Mechanisms.
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.
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.
Index of Patterns.