View
217
Download
2
Tags:
Embed Size (px)
Citation preview
Parallel Programming in Visual Studio 2010Sasha Goldshtein
Senior Consultant, Sela Grouphttp://blogs.microsoft.co.il/blogs/sasha
Agenda
• Overview and Roadmap• Architecture, Design Patterns• Explicit and Implicit Parallelism• Synchronization Mechanisms• Coordination Data Structures• Debugging and Profiling• Other Technologies
Overview and Roadmap
• Shipping in .NET 4.0– Task Parallel Library– Parallel LINQ– Task Scheduler
• Shipping in Visual Studio 2010– Debugging and profiling enhancements– Don’t forget the native tools (ConcRT)
• Disclaimer: This is Beta software
Visual Studio 2010 &Visual Studio 2010 & Framework 4.0Framework 4.0
Explicit Parallelism
• Task.Factory.StartNew• Parent-child relationships• Continuations• Futures• Exception handling• Cancellation
Synchronization Mechanisms
• Barrier• CountdownEvent• ManualResetEventSlim• SemaphoreSlim• SpinLock• SpinWait• Lazy initialization
Coordination Data Structures
• Lock-free data structures• Concurrent queue• Concurrent stack, dictionary• Concurrent bag (work-stealing)• ThreadLocal<T>
Concurrency Design Patterns
• Worker patterns– Producer-consumer (BlockingCollection<T>)– Completion port / thread pool (Task)– Automatic pipelining / partitioning– APM coordination (Task.Factory.FromAsync)
• Smart collections patterns– Safe/unsafe, read/write– Cyclic buffer
Incubation and Other Technologies
• STM.NET• Axum (ex. Maestro)• CHESS• Windows 7 256-core support• Windows 7 User-Mode Scheduler
Summary
• The next generation parallel technologies and tools are here
• Download Visual Studio 2010 Beta 1
Additional Resources
• msdn.com/concurrency• code.msdn.microsoft.com/ParExtSamples• msdn.microsoft.com/en-us/library/
dd460693(VS.100).aspx• channel9.msdn.com/tags/Parallel+Extensions/