Task and Data Parallelism: Real-World Examples
Many developers have seen the Task Parallel Library APIs for concurrent applications, but have only played around with toy examples. In this session we'll see how to extract concurrency and parallelism from seemingly impossible situations, how to gain scalability from lock-free code, and how to analyze real-world parallel applications with profilers to see the precise benefits gained from parallelization.
.NET developers will learn in this talk how to improve application performance in real-world scenarios and algorithms by using the Task Parallel Library that shipped with .NET 4.0 and was considerably improved since. The session will cover numerous cases where parallelism appears to be impossible but can be extracted by following clear rules and using the right APIs. We'll also discuss performance measurement tools that can identify scalability bottlenecks and point towards actual performance wins gained from parallelization. Primary topics:
• Introduction to the Task Parallel Library APIs---parallel loops, tasks, PLINQ
• Extracting concurrency---case studies
• Concurrency patterns: aggregation, dependency management, lock-free code
• Measuring concurrent application performance with the Visual Studio Concurrency Visualizer and resource contention profiling
Prerequisites: .NET development experience