About the Book :
This book presents a pattern-oriented software architecture approach to parallel software design, this is, designing parallel software based on existing design knowledge (from well-known classic design knowledge to new and promising designs). A pattern-oriented approach to Parallel Software Design is not a design method in the classic sense, but a new way of managing and exploiting existing design knowledge for designing parallel programs. Using this approach leads to parallel software systems that can be considered better designed: they are modular, adaptable, understandable, evolvable, and so on. Moreover, such approaches to parallel software design aims to enhance not only build-time properties of parallel systems, but also and particularly, their run-time properties.
About the Author :
Jorge Luis Ortega-Arjona is a lecturer at Departamento de Matemcas, Facultad de Ciencias, UNAM.
Interesting Facts :
Patterns for Parallel Software Design will complement the software patterns presented in the other POSA volumes and books in the Wiley Series in Software Design Patterns.Unlike other books covering patterns for parallel programming, this title is written from an architectural point of view and explains the development of parallel software.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 hence, link it with a programming structure that allows for such a division.Highlights some idioms that describe synchronisation mechanisms in commonly used languages for parallel programming.
Foreword.Preface.About the Author.Acknowledgements.Contributor Biography.Chapter 1 Software Patterns.The Concept of a Software Pattern.Pattern Description, Organization and Categorization.Summary.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.Summary.Chapter 3 Architectural Patterns for Parallel Programming.Parallel Pipes and Filters.Parallel Layers.Communicating Sequential Elements.Manager--Workers.Shared Resource.Summary.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.Summary.Chapter 5 Some Idioms for Synchronization Mechanisms.Semaphore.Critical Region.Monitor.Message Passing.Remote Procedure Call.Summary.Chapter 6 Two Case Studies.Blood Vessel Segmentation.Adaptive 3D Grid-Based Eulerian (Gasdynamic) Program.Summary.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.Summary.Chapter 8 Parallel Software Architecture.A Definition of Parallel Software Architecture.Parallel Software Design.Summary.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.Glossary.Notations.References.Index of Patterns.Index.