Jump to content
M2G

Async and Parallel Programming: Application Design

Recommended Posts

Posted (edited)

Authored by: Dr. Joe Hummel

Duration: 3h 44m

Level: Intermediate

Released: 5/29/2012

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

Contents:

Understanding the Dangers of Concurrency 01:22:56

  1. Introductions and Agenda

  2. The pitfalls of concurrency

  3. Correctness guarantees: safety, liveness

  4. Terminology: race conditions, critical sections

  5. Race conditions involving shared resources

  6. Demo 1: parallelizing a Logfile Search app

  7. Demo 1: source code layout

  8. Demo 1: from sequential to parallel

  9. Demo 1: summary of why it's broken

  10. Solving race conditions --- an overview

  11. Solution 1: locking

  12. Demo 2: solution using locking

  13. Solution 2: interlocking

  14. Demo 3: solution using interlocking

  15. Solution 3: lock-free

  16. Demo 4: lock-free solution

  17. The danger of shared objects

  18. Thread-safety and solutions to shared objects

  19. Demo 5: using thread-safe objects

  20. Synchronization primitives

  21. The concurrent data structures: thread-safe collections

  22. Performance lessons...

  23. Demo 6: improving performance

  24. Summary and References

Execution Model and Types of Parallelism 01:04:06

  1. Introductions and Agenda

  2. Tasks: developer's role vs. .NEt's role

  3. Execution model: high-level view

  4. Task granularity: just how lightweight?

  5. Execution model: tasks vs. threads vs. cores

  6. Custom task scheduling

  7. Additional observations regarding task scheduler

  8. Work-stealing in detail

  9. Two important assumptions: short-lived, random order

  10. Fairness option to execute tasks in order

  11. LongRunning option for tasks > 1-2 seconds

  12. Demo 1: executing 100 long-running tasks

  13. Demo 1: solution attempt with default behavior

  14. Demo 1: solution attempt with long-running option

  15. Solution for 100 long-running tasks

  16. Demo 2: proper solution in action

  17. Parallel.For = more concise solution

  18. Types of Parallelism

  19. Data parallelism

  20. Task parallelism

  21. Dataflow parallelism

  22. Embarrassingly parallel

  23. TPL support for parallelism types

  24. Parallel.For, .Foreach, .Invoke

  25. Structured (fork-join) parallelism

  26. Demo 3: Mandelbrot app overview

  27. Demo 3: sequential version

  28. Demo 3: Parallel.For version

  29. Data partitioning

  30. Custom data partitioning

  31. Exception handling with Parallel class

  32. Breaking out of a Parallel loop

  33. Cancelling a Parallel loop

  34. Demo 4: Mandelbrot app with cancellation

  35. Summary and References

Designs and Patterns for Parallel Programming 01:17:20

  1. Introductions and Agenda

  2. Design Problem 1: 100+ CPU-intensive operations

  3. Design Problem 2: download 20+ web pages

  4. Design Problem 3: application logging task

  5. Parallel Patterns --- master list

  6. Pipeline pattern

  7. Dataflow pattern

  8. Increasing parallelism in pipeline and dataflow

  9. Concurrent Data Structures --- master list

  10. ConcurrentQueue T

  11. Demo 1: overview of Netflix data mining app

  12. Demo 1: overview of parallel solution (v1)

  13. Demo 1: implementation with ConcurrentDictionary T

  14. Demo 1: results

  15. Producer-Consumer pattern

  16. Implementation of Producer-Consumer with BlockingCollection T

  17. Demo 2: Netflix solution using Producer-Consumer (v2)

  18. Demo 2: results

  19. MapReduce pattern

  20. Implementing MapReduce

  21. Demo 3: Netflix using MapReduce

  22. Demo 3: results

  23. Parallel LINQ (PLINQ)

  24. Demo 4: Netflix with PLINQ

  25. Speculative Execution pattern

  26. APM: Asynchronous Programming Model pattern

  27. APM example of async file I/O

  28. Demo 5: Stock History with Speculative Execution and APM

  29. Parallel I/O design challenge

  30. Summary and References

Download: http://ge.tt/6LO6rTI/v/0

(Asteptati pana il termin de urcat, probleme cu site-ul de filesharing)

Cele de aici: Async and Parallel Programming: Application Design - Online Training Course for .NET Developers

Edited by M2G

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...