At the beginning of 2005 Herb Sutter had an article stating that the developer’s free lunch is over. We had an assumption that more transistors in the CPU imply better application execution speed - the CPU executes the code in a sequential manner hence the performance of the CPU-bound code is directly related to CPU frequency. This used to be our “Free Lunch”: an old program runs faster on a new CPU. The only problem is that using this assumption with modern low power consumption multi-core CPUs is wrong, and we might even find that an old program runs slower on a newer CPU! Since performance is no longer tied to CPU frequency we need to leverage parallelism – our new free lunch.
In this 3-day course we will see the abstractions, libraries and tools that Microsoft provides for .NET developers. We will start with understanding the concepts involved in parallel programming such as threads and locks. We will then see how these concepts are applied in the .NET Framework and continue on to advanced abstractions and techniques that the framework provides. These abstractions include the Task Parallel Library (TPL), Parallel LINQ, Concurrent Collections and more.
Understand the concepts of parallel programming
Gain hands-on experience in parallel programming with .NET
Use .NET's synchronization constructs, TPL, PLINQ and concurrent collections
Module 1: Introduction to Parallel Programming
Module 2: Basic .NET Threading and Synchronization
Module 3: Concurrent Collections
Module 4: TPL Basics
Module 5: Parallel Control Structures
Module 6: Parallel LINQ
Module 7: Advanced TPL
Module 8: TPL Data Flow Networks
Module 9: Diagnostics & Profiling