A Pattern Language for Parallel Programming ver1.0

Productivity Layer

Applications
Choose your high level architecture
Guided Decomposition
Choose your high level structure Task Decomposition Data Decomposition Identify Key Computation Patterns
Guided Expansion Group Tasks Order Groups Data Sharing Data Access Patterns Guided Instantiation
Pipe-and-filter Map reduce Graph Algorithms Graphical models
Agent and Repository Layered systems Dynamic Programming doc Finite state machines
Arbitrary Static Task Graph Process Control Dense Linear Algebra Backtrack Branch and Bound
Model-view controller Bulk_Synchronous Sparse Linear Algebra N-Body methods
Event-based, implicit invocation Unstructured Grids Circuits
Structured Grids Spectral Methods
Refine the structure - what concurrent approach do I use?
Guided Re-organization
Geometric Decomposition Data Parallelism Event Based Task Parallelism Digital Circuits
Divide and Conquer Pipeline Discrete Event Graph algorithms

Efficiency Layer

Utilize Supporting Structures – how do I implement my concurrency?
Guided Mapping
Fork/Join Distributed Array Shared Queue Shared Hash Table Master/Worker
CSP Shared Data Loop Parallelism Graph algorithms
Implementation methods – what are the building blocks of parallel programming?
Guided Implementation
Thread Creation/destruction Message passing Speculation Barriers Semaphores
Process Creation/destruction Collective communication Transactional memory Mutex
 
patterns/pattern1_0.txt · Last modified: 2009/02/23 23:52 by jike
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki