Parallel Programming Concepts (.NET related)
Parallel execution - It's all about loaded computations.
Common Types of Parallelism
Data
amount of data processed by one operation in parallel.
Patterns
Parallel Loops
Implementations
Parallel.Foreach
Parallel.For
amount of data processed by one operation in parallel.
Patterns
Parallel Loops
Implementations
Parallel.Foreach
Parallel.For
Task
Some data or amount of data processed by many operations.
Patterns
Parallel tasks
Implementations
Parallel.Invoke
Some data or amount of data processed by many operations.
Patterns
Parallel tasks
Implementations
Parallel.Invoke
Dataflow
Operations processed in some flow or order.
Patterns
Features
Pipeline
Operations processed in some flow or order.
Patterns
Features
Pipeline
Embarrassingly parallel
computations entirely independent of one another. No dataflow in between the options.
computations entirely independent of one another. No dataflow in between the options.
Patterns
Parallel Loops
Parallel.For / Parallel.Foreach
Parallel Tasks
Parallel.Invoke
Parallel Aggregation
Map-Reduce
Producer-Consumer
By Parallel Loops with TLS (Task Local Storage) parameter
or by Wait All One By One
Futures
Dynamic Task Parallelism
Pipelines
+ Concurrent Data Structures.
Dataflow
(many to one + one to many, ContinueWhenAll)
+Concurrent Data Structures.
Speculative Execution
Wait All One By One
Facade Task (Threads saving by APM)
Parallel.For / Parallel.Foreach
Parallel Tasks
Parallel.Invoke
Parallel Aggregation
Map-Reduce
Producer-Consumer
By Parallel Loops with TLS (Task Local Storage) parameter
or by Wait All One By One
Futures
Dynamic Task Parallelism
Pipelines
+ Concurrent Data Structures.
Dataflow
(many to one + one to many, ContinueWhenAll)
+Concurrent Data Structures.
Speculative Execution
Wait All One By One
Facade Task (Threads saving by APM)
The TPL's main pattern-approach
Fork-join
Fork-join
Custom Partitioning Strategies
range (static)
stride (static)
chunk (dynamic)
hash (dynamic)
range (static)
stride (static)
chunk (dynamic)
hash (dynamic)
Comments
Post a Comment