Foreword | p. xiii |
Preface | p. xvii |
About the Author | p. xx |
Acknowledgements | p. xx |
Contributor Biography | p. xxii |
Software Patterns | p. 1 |
The Concept of a Software Pattern | p. 2 |
Pattern Description, Organization and Categorization | p. 8 |
Summary | p. 10 |
A Brief Introduction to Parallel Programming | p. 11 |
Parallel Programming | p. 12 |
Factors that Influence the Performance of a Parallel Program | p. 12 |
Advantages and Disadvantages of Parallel Programming | p. 23 |
Summary | p. 25 |
Architectural Patterns for Parallel Programming | p. 27 |
Parallel Pipes and Filters | p. 28 |
Parallel Layers | p. 41 |
Communicating Sequential Elements | p. 54 |
Manager-Workers | p. 67 |
Shared Resource | p. 79 |
Summary | p. 93 |
Design Patterns for Communication Components | p. 95 |
Shared Variable Pipe | p. 96 |
Multiple Local Call | p. 103 |
Message Passing Pipe | p. 114 |
Multiple Remote Call | p. 124 |
Shared Variable Channel | p. 136 |
Message Passing Channel | p. 145 |
Local Rendezvous | p. 156 |
Remote Rendezvous | p. 165 |
Summary | p. 173 |
Some Idioms for Synchronization Mechanisms | p. 175 |
Semaphore | p. 177 |
Critical Region | p. 185 |
Monitor | p. 192 |
Message Passing | p. 199 |
Remote Procedure Call | p. 208 |
Summary | p. 217 |
Two Case Studies | p. 219 |
Blood Vessel Segmentation | p. 220 |
Adaptive 3D Grid-Based Eulerian (Gasdynamic) Program | p. 249 |
Summary | p. 297 |
Parallel Software Design | p. 299 |
A General Parallel Software Design Process | p. 300 |
A Pattern-Based Parallel Software Design Method | p. 302 |
Problem Analysis | p. 305 |
Coordination Design - Architectural Patterns | p. 315 |
Communication Design - Design Patterns | p. 327 |
Detailed Design - Idioms | p. 340 |
Implementation and Evaluation | p. 349 |
Summary | p. 357 |
Parallel Software Architecture | p. 359 |
A Definition of Parallel Software Architecture | p. 359 |
Parallel Software Design | p. 361 |
Summary | p. 366 |
Directions in Patterns for Parallel Programming | p. 367 |
The Situation in Software Design | p. 368 |
Design Experience and Techniques | p. 369 |
A Tangible Description for Parallel Software Systems | p. 371 |
The Need for Measurement in Parallel Software Design | p. 372 |
Final Remarks | p. 374 |
Glossary | p. 377 |
Notations | p. 393 |
References | p. 397 |
Index of Patterns | p. 409 |
Index | p. 411 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.