====== A Pattern Language for Parallel Programming ver2.0 ====== Read me first! => **{{patterns:opl_pattern_language-feb-13.pdf|Our Pattern Language}}** **(__[[patterns:PatternLanguageComments|notes]]__)** ([[patterns:glossary|Glossary]])([[patterns:blogs|Blogs]]) ([[patterns:PatternTemplate|Pattern Template]]) ([[patterns:PatternAbstract|Pattern Abstract]]) ([[patterns:PatternWorkshop|Pattern Workshop]]) ([[Patterns:PatternsInEducation|Pattern in Education]]) ^ ^^^^^^^ ^ | **__Applications__** ||||^ ^ ^ ^^^^^^^ ^ | **__Structural Patterns__** |^ | **__Computational Patterns__** |^ ^ ^ | [[patterns:Agent and Repository]] | [[patterns:Pipe-and-filter]] ^ | [[patterns:Backtrack Branch and Bound]] **([[patterns:Backtrack Branch and Bound comments|notes]])** | [[patterns:Monte Carlo|Monte Carlo Methods]]**([[patterns:Monte Carlo comments|notes]])** ^ ^ ^ | [[patterns:Arbitrary Static Task Graph]] | [[patterns:Process Control]] ^ | [[patterns:Circuits]]([[CircuitComputationPattern_comments|notes]]) | [[patterns:N-Body methods|N-Body Methods]] ^ ^ ^ | [[patterns:Iterative_refinement]] | ^ | {{patterns:dense.pdf|Dense Linear Algebra}}**([[patterns:Dense Linear Algebra comments|notes]])** | [[patterns:Sparse Linear Algebra]] ^ ^ ^ | {{patterns:event-based-driven--pat-ver2-3.pdf|Event-based, implicit invocation}} | ^ | {{patterns:dynamic-programming-print.pdf|Dynamic Programming}} {{patterns:dynamic-programming.doc|doc}}**([[patterns:DynamicProgrammingComments|notes]])** | [[patterns:Spectral Methods]] ^ ^ ^ | {{patterns:layeredpattern.txt|Layered systems}} | ^ | {{patterns:FiniteStateMachine.pdf}} | {{patterns:structuredgrid-2.pdf|Structured Grids}} **([[patterns:Structured Grids comments|notes]])** ^ ^ ^ | {{patterns:map-reduce-pattern.doc|Map reduce}} | ^ | [[patterns:Graph Algorithms]] | {{patterns:unstructuredgridv1.pdf|Unstructured Grids}} ^ ^ ^ | {{patterns:model-view-controller.pdf|Model-view controller}} | ^ | {{patterns:graphicalmodels.pdf|Graphical Models}} | ^ ^ ^ ^^^^^^^ ^ | **__Parallel Algorithm Strategy Patterns__** ||||^ ^ ^ | [[patterns:Task Parallelism]] **([[patterns:TaskParallelism comments|notes]])** | {{patterns:discrete event-pat-ver1.pdf|Discrete Event}} || [[patterns:Geometric Decomposition]]**([[patterns:GeometricDecomposition comments|notes]])** | [[patterns:Non-work-efficient Parallelism]] ^ ^ ^ | [[patterns:Recursive splitting]]**([[patterns:Recursive splitting comments|notes]])** | {{patterns:pipeline-v1.pdf|Pipeline}} {{patterns:pipeline-v1.doc|doc}}**([[patterns:Pipeline comments|notes]])** || [[patterns:Data Parallelism]] | [[patterns:Speculation]] ^ ^ ^ ^^^^^^^ ^ | **__Implementation Strategy Patterns__** ||||^ ^ ^ | [[patterns:SPMD]] | [[patterns:MasterWorker]] ^ | {{patterns:sharedqueue.pdf}} | [[patterns:Distributed Array]] ^ ^ ^ | [[patterns:Strict-data-par]] | [[patterns:LoopParallelism]] ^ | [[patterns:Shared Hash Table]] | [[patterns:shared data]] ^ ^ ^ | [[patterns:ForkJoin]] | [[patterns:BSP]] ^ | | [[patterns:memory parallelism]]**([[patterns:memoryParallelism Comments|notes]])** ^ ^ ^ | [[patterns:Actors]] | {{patterns:taskqueue.pdf|Task Queue}} ^ | | ^ ^ ^ | {{patterns:graph_partitioning.pdf|Graph Partitioning}}**([[patterns:GraphPartitioncomments|notes]])** | ^ | | ^ ^ ^ | (Program Structure) |^ | (Data Structure) |^ ^ ^ ^^^^^^^ ^ | **__Concurrent Execution Patterns__** ||||^ ^ ^ | [[patterns:MIMD]] | [[patterns:Thread Pool]] ^ | [[patterns:Message Passing]] | [[patterns:P2P Sync]] ^ ^ ^ | [[patterns:Task Graph]] | [[patterns:Speculation_execution_pattern|Speculation]] ^ | [[patterns:Collective Communication]] | [[patterns:Collective Synchronization]] ^ ^ ^ | [[patterns:SIMD]] | [[patterns:Data Flow]] ^ | [[patterns:Mutual Exclusion]] | [[patterns:Transactional Memory]] ^ ^ ^ | [[patterns:DigitalCircuits]] **([[patterns:DigitalCircuits comments|notes]])** | ^ | | ^ ^ ^ | (Advancing Program Counters) |^ | (Coordination) |^ ^ ^ ^^^^^^^ ([[patterns:Pattern1_0|Pattern v1.0]]) ([[patterns:Patterns|Pattern v2.0]]) Contents on this page is licensed under [[http://creativecommons.org/licenses/by/3.0/|Creative Commons Attribution 3.0 Unported License]]