Top Banner
Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group http:// blogs.microsoft.co.il/
16

Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Parallel Programming in Visual Studio 2010Sasha Goldshtein

Senior Consultant, Sela Grouphttp://blogs.microsoft.co.il/blogs/sasha

Page 2: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Agenda

• Overview and Roadmap• Architecture, Design Patterns• Explicit and Implicit Parallelism• Synchronization Mechanisms• Coordination Data Structures• Debugging and Profiling• Other Technologies

Page 3: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

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

Page 4: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Architecture

• Pipeline• Partitioning• Grid

Page 5: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Explicit Parallelism

• Task.Factory.StartNew• Parent-child relationships• Continuations• Futures• Exception handling• Cancellation

Page 6: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Implicit Parallelism

• Parallel.For, Parallel.ForEach• Parallel.Invoke• Custom partitioner

Page 7: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Very Implicit Parallelism

• Parallel LINQ• Ordered vs. Unordered• foreach vs. ForAll• Cancellation

Page 8: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Synchronization Mechanisms

• Barrier• CountdownEvent• ManualResetEventSlim• SemaphoreSlim• SpinLock• SpinWait• Lazy initialization

Page 9: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Coordination Data Structures

• Lock-free data structures• Concurrent queue• Concurrent stack, dictionary• Concurrent bag (work-stealing)• ThreadLocal<T>

Page 10: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

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

Page 11: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Debugging in Visual Studio 2010

• Parallel Stacks• Parallel Tasks

Page 12: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Profiling in Visual Studio 2010

• Core utilization• Thread blocking, Thread migration

Page 13: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Incubation and Other Technologies

• STM.NET• Axum (ex. Maestro)• CHESS• Windows 7 256-core support• Windows 7 User-Mode Scheduler

Page 14: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Summary

• The next generation parallel technologies and tools are here

• Download Visual Studio 2010 Beta 1

Page 15: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

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/

Page 16: Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group .

Thank You!

Sasha GoldshteinSenior Consultant, Sela Group

http://blogs.microsoft.co.il/blogs/sasha