Critical.
Authoritative.
Strategic.
Subscribe to CIO Magazine »

Patterns for Parallel Software Design

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.

Table of Contents

Chapter 1: Software Patterns.

1.1 The Concept of Software Pattern.

1.2 Pattern Templates: Describing Software Patterns.

1.3 Pattern Mining: Discovering Patterns.

1.4 Pattern Languages and Systems: Organising Patterns.

1.5 Software Pattern Categories.

1.6 Patterns as Concepts and Generators: Leveraging Patterns.

1.7 Pattern Literature.

1.8 Summary.

Chapter 2: An Introduction to Parallel Programming.

2.1 Parallel Programming.

2.2 Directions in Parallel Programming.

2.3 Factors that influence the Performance of a Parallel Program.

2.4 Models for Parallel Programming.

2.5 Performance Measures in Parallel Programming.

2.6 Advantages and Disadvantages of Parallel Programming.

2.7 Summary.

Chapter 3: Parallel Software Architecture.

3.1 Introduction.

3.2 A Definition for Software Architecture.

3.3 Parallel Software Design and Software Architecture.

3.4 Summary.

Chapter 4: Parallel Software Design.

4.1 Introduction.

4.2 Software Design.

4.3 Parallel Software Design.

4.4 Design Problems in Parallel Programming.

4.5 The Concept of Coordination.

4.6 Summary.

Chapter 5: Two Role Examples.

5.1 The Two-dimensional Heat Equation Program.

5.2 An Adaptive 3D Grid-based Eulerian (Gasdynamic) Code.

5.3 Summary.

Chapter 6: Architectural Patterns for Parallel Programming.

6.1 Architectural Patterns.

6.2 Architectural Patterns for Parallel Programming.

6.3 The Parallel Pipes and Filters pattern.

6.4 The Parallel Layers pattern.

6.5 The Communicating Sequential Elements pattern.

6.6 The Manager-Workers pattern.

6.7 The Shared Resource pattern.

6.8 Selection of Architectural Patterns.

6.9 Summary.

Chapter 7: Design Patterns for Communication Components.

7.1 Design Patterns.

7.2 Design Patterns for Communication Components of Parallel Programs.

7.3 The Shared Variable Pipe pattern.

7.4 The Multiple Local Call.

7.5 The Message Passing Pipe pattern.

7.6 The Multiple Remote Call pattern.

7.8 The Message Passing Channel pattern.

7.9 The Local Rendezvous pattern.

7.10 The Remote Rendezvous pattern.

7.11 Selection of Design Patterns.

7.12 Summary 288.

Chapter 8: Some Idioms for Synchronisation Mechanisms.

8.1 Idioms.

8.2 Some Idioms for Synchronisation Mechanisms.

8.3 The Semaphore Idiom.

8.4 The Critical Region Idiom.

8.5 The Monitor Idiom.

8.6 The Message Passing Idiom.

8.7 The Remote Procedure Call Idiom.

8.8 Selection of Some Idioms for Synchronisation Mechanisms.

8.9 Summary.

Chapter 9: Directions on Software Patterns for Parallel Programming.

9.1 Introduction - The Situation in Software Design.

9.2 Design Experience and Techniques? Software Patterns for Parallel Software Design.

9.3 A Tangible Description for Parallel Software Systems.

9.4 The Need for Measurements in Parallel Software Design.

9.5 A Final Remark.

Notations.

Glossary.

References.

Index.

rhs_login_lockGet exclusive access to Invitation only events CIO, reports & analysis.
Recent comments

Computerworld
ARN
CFO World
CMO