(Click on a chapter for more details)
Introduction | |
Parallel Programming | |
Design Patterns and Pattern Languages | |
A Pattern Language for Parallel Programming |
Concurrency in Parallel Programs Versus Operating Systems | |||||||
Parallel Architectures: A Brief Introduction
| |||||||
Parallel Programming Environments | |||||||
The Jargon of Parallel Computing | |||||||
A Quantitative Look at Parallel Computation | |||||||
Communication | |||||||
Summary |
About the Design Space | |
Overview | |
Using the Decomposition Patterns | |
Background for Examples | |
The Task Decomposition Pattern | |
The Data Decomposition Pattern | |
The Group Tasks Pattern | |
The Order Tasks Pattern | |
The Data Sharing Pattern | |
The Design Evaluation Pattern |
Introduction | |||||||||
Choosing an Algorithm Structure Pattern
| |||||||||
Example
| |||||||||
The Task Parallelism Pattern | |||||||||
The Divide and Conquer Pattern | |||||||||
The Geometric Decomposition Pattern | |||||||||
The Recursive Data Pattern | |||||||||
The Pipeline Pattern | |||||||||
The Event-Based Coordination Pattern |
Introduction
| |||||||||||
Forces | |||||||||||
Choosing the Patterns | |||||||||||
The SPMD Pattern | |||||||||||
The Master/Worker Pattern | |||||||||||
The Loop Parallelism Pattern | |||||||||||
The Fork/Join Pattern | |||||||||||
The Shared Data Pattern | |||||||||||
The Shared Queue Pattern | |||||||||||
The Distributed Array Pattern | |||||||||||
Other Supporting Structures
|
Overview | |||||||||||
UE Management
| |||||||||||
Synchronization
| |||||||||||
Communication
|
Core Concepts | |
Structured Blocks and Directive Formats | |
Worksharing | |
Data Environment Clauses | |
The OpenMP Runtime Library | |
Synchronization | |
The Schedule Clause | |
The Rest of the Language |
Concepts | |
Getting Started | |
Basic Point-to-Point Message Passing | |
Collective Operations | |
Advanced Point-to-Point Message Passing | |
MPI and Fortran | |
Conclusion |
Creating Threads
| |||||
Atomicity, Memory Synchronization, and the volatile Keyword | |||||
Synchronized Blocks | |||||
Wait and Notify | |||||
Locks | |||||
Other Synchronization Mechanisms and Shared Data Structures | |||||
Interrupts |