
Authoritative.
Strategic.

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.
Patterns for Parallel Software Design will give you the skills you need to develop parallel software.
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.
Because cloud is still a new and evolving business model, it can be argued that the decision to select a cloud service provider should be approached with even greater diligence ...
The nature of work has changed fundamentally and forever and it continues to evolve rapidly. Geographic distance and ...