Patterns for Parallel Software DesignISBN: 978-0-470-69734-4
Hardcover
438 pages
March 2010
This title is out-of-print and not currently available for purchase from this site.
|
Foreword xiii
Preface xvii
About the Author xx
Acknowledgements xx
Contributor Biography xxii
Chapter 1 Software Patterns 1
The Concept of a Software Pattern 2
Pattern Description, Organization and Categorization 8
Summary 10
Chapter 2 A Brief Introduction to Parallel Programming 11
Parallel Programming 12
Factors that Influence the Performance of a Parallel Program 12
Advantages and Disadvantages of Parallel Programming 23
Summary 25
Chapter 3 Architectural Patterns for Parallel Programming 27
Parallel Pipes and Filters 28
Parallel Layers 41
Communicating Sequential Elements 54
Manager–Workers 67
Shared Resource 79
Summary 93
Chapter 4 Design Patterns for Communication Components 95
Shared Variable Pipe 96
Multiple Local Call 103
Message Passing Pipe 114
Multiple Remote Call 124
Shared Variable Channel 136
Message Passing Channel 145
Local Rendezvous 156
Remote Rendezvous 165
Summary 173
Chapter 5 Some Idioms for Synchronization Mechanisms 175
Semaphore 177
Critical Region 185
Monitor 192
Message Passing 199
Remote Procedure Call 208
Summary 217
Chapter 6 Two Case Studies 219
Blood Vessel Segmentation 220
Adaptive 3D Grid-Based Eulerian (Gasdynamic) Program 249
Summary 297
Chapter 7 Parallel Software Design 299
A General Parallel Software Design Process 300
A Pattern-Based Parallel Software Design Method 302
Problem Analysis 305
Coordination Design – Architectural Patterns 315
Communication Design – Design Patterns 327
Detailed Design – Idioms 340
Implementation and Evaluation 349
Summary 357
Chapter 8 Parallel Software Architecture 359
A Definition of Parallel Software Architecture 359
Parallel Software Design 361
Summary 366
Chapter 9 Directions in Patterns for Parallel Programming 367
The Situation in Software Design 368
Design Experience and Techniques 369
A Tangible Description for Parallel Software Systems 371
The Need for Measurement in Parallel Software Design 372
Final Remarks 374
Glossary 377
Notations 393
References 397
Index of Patterns 409
Index 411