MyPage is a personalized page based on your interests.The page is customized to help you to find content that matters you the most.

I'm not curious

Async and Parallel Programming: Application Design

Course Summary

Discusses the design of asynchronous and parallel applications using the new Task-based model available in .NET 4 and Silverlight 5.

  • +

    Course Syllabus

    Understanding the Dangers of Concurrency
    - 1h 23m

    —Introductions and Agenda 1m 52s
    —The pitfalls of concurrency 1m 50s
    —Correctness guarantees: safety, liveness 0m 44s
    —Terminology: race conditions, critical sections 0m 54s
    —Race conditions involving shared resources 3m 36s
    —Demo 1: parallelizing a Logfile Search app 1m 14s
    —Demo 1: source code layout 4m 26s
    —Demo 1: from sequential to parallel 11m 41s
    —Demo 1: summary of why it's broken 0m 18s
    —Solving race conditions --- an overview 1m 0s
    —Solution 1: locking 3m 57s
    —Demo 2: solution using locking 3m 56s
    —Solution 2: interlocking 1m 14s
    —Demo 3: solution using interlocking 7m 53s
    —Solution 3: lock-free 2m 14s
    —Demo 4: lock-free solution 13m 35s
    —The danger of shared objects 1m 55s
    —Thread-safety and solutions to shared objects 2m 54s
    —Demo 5: using thread-safe objects 4m 14s
    —Synchronization primitives 1m 7s
    —The concurrent data structures: thread-safe collections 0m 22s
    —Performance lessons... 2m 21s
    —Demo 6: improving performance 8m 31s
    —Summary and References 1m 23s
    Execution Model and Types of Parallelism
    - 1h 4m

    —Introductions and Agenda 1m 59s
    —Tasks: developer's role vs. .NEt's role 0m 24s
    —Execution model: high-level view 1m 29s
    —Task granularity: just how lightweight? 0m 58s
    —Execution model: tasks vs. threads vs. cores 2m 33s
    —Custom task scheduling 0m 53s
    —Additional observations regarding task scheduler 1m 35s
    —Work-stealing in detail 1m 52s
    —Two important assumptions: short-lived, random order 0m 50s
    —Fairness option to execute tasks in order 1m 22s
    —LongRunning option for tasks > 1-2 seconds 0m 45s
    —Demo 1: executing 100 long-running tasks 0m 30s
    —Demo 1: solution attempt with default behavior 4m 26s
    —Demo 1: solution attempt with long-running option 2m 8s
    —Solution for 100 long-running tasks 1m 47s
    —Demo 2: proper solution in action 4m 32s
    —Parallel.For = more concise solution 0m 44s
    —Types of Parallelism 0m 36s
    —Data parallelism 0m 52s
    —Task parallelism 0m 37s
    —Dataflow parallelism 2m 24s
    —Embarrassingly parallel 0m 57s
    —TPL support for parallelism types 0m 25s
    —Parallel.For, .Foreach, .Invoke 2m 44s
    —Structured (fork-join) parallelism 1m 7s
    —Demo 3: Mandelbrot app overview 1m 11s
    —Demo 3: sequential version 1m 57s
    —Demo 3: Parallel.For version 6m 38s
    —Data partitioning 2m 15s
    —Custom data partitioning 2m 28s
    —Exception handling with Parallel class 0m 41s
    —Breaking out of a Parallel loop 1m 26s
    —Cancelling a Parallel loop 1m 40s
    —Demo 4: Mandelbrot app with cancellation 5m 50s
    —Summary and References 1m 44s
    Designs and Patterns for Parallel Programming
    - 1h 17m

Course Fee:
USD 29

Course Type:


Course Status:



1 - 4 hours / week

Attended this course?

Back to Top

Awards & Accolades for MyTechLogy
Winner of
Top 100 Asia
Finalist at SiTF Awards 2014 under the category Best Social & Community Product
Finalist at HR Vendor of the Year 2015 Awards under the category Best Learning Management System
Finalist at HR Vendor of the Year 2015 Awards under the category Best Talent Management Software
Hidden Image Url