Wiley.com
Print this page Share

Patterns for Parallel Software Design

ISBN: 978-0-470-69734-4
Hardcover
438 pages
March 2010
Patterns for Parallel Software Design (0470697342) cover image
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

Back to Top