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
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.
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.
Chapter 3: Parallel Software Architecture.
3.2 A Definition for Software Architecture.
3.3 Parallel Software Design and Software Architecture.
Chapter 4: Parallel Software Design.
4.2 Software Design.
4.3 Parallel Software Design.
4.4 Design Problems in Parallel Programming.
4.5 The Concept of Coordination.
Chapter 5: Two Role Examples.
5.1 The Two-dimensional Heat Equation Program.
5.2 An Adaptive 3D Grid-based Eulerian (Gasdynamic) Code.
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.
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.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.
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.
Sign up now »
- FT.NET - Sitecore Developer - Melbourne - PermNSW
- FTJob Title: Mac Systems/ Enterprise Systems EngineerNZ
- FTLead Software EngineerSA
- FTOS Web Applications DeveloperNSW
- FTQuality ManagerSA
- FTR&D EngineerSA
- FTFlash / ActionScript Developer - ContractNSW
- FTSenior Python DeveloperNSW
- FTTechnical Business AnalystNSW
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 ...
"Suggesting that people's "purpose is to get information to flow through the ..."
Why change management doesn’t work
"Darn those pesky laws that get in the way of commercial exploitation ..."
Larry Page wants to see your medical records
"Instead of partitioning the device between corporate and personal data, another approach ..."
Dual-Persona Smartphones Not a BYOD Panacea
"Well that's a nice back-handed compliment isn't it? So now, finally, my ..."
After two-year hiatus, EFF accepts bitcoin donations again
"Actually, both Mobile App developers and CIOs should be blamed for it. ..."
CIOs struggle to deliver timely mobile business apps: survey
- CITRIX SYNERGY ’13: Look beyond Cloud infrastructure, says Liang
- CITRIX SYNERGY ’13: Christiancen highlights the need for collaboration
- CITRIX SYNERGY ’13: Devices will change how people work, says Duursma
- IN PICTURES: Citrix Solutions expo (49 photos)
- IN PICTURES: Citrix parties one more night with Maroon 5 ( +57 photos)
- Analytics and personalisation drive leading marketer behaviour: Report
- Innovation and big data take centre stage during CMO panel
- Twitter targets second screen interaction with Amplify advertising partnerships
- Facebook talks hyper-targeting, analytics and cross-platform at AANA event
- Tapping into social experience: Tourism Australia