MOTIVATION CONCURRENCY DEVELOPMENT CYCLE PARALLELISM SUPPORT IN VISUAL STUDIO 2010 Programming models Parallel Pattern Library Data structures Parallel Debugger Concurrency runtimes Concurrency Visualizer Agents Library Data structures Tools Task Scheduler Resource manager Resource Manager Operating system Threads Key: Managed library Native library Tools PARALLEL PROFILING execution blocking execution preemption execution I/O CUSTOM MARKERS FOR APPLICATION PHASES #include "Scenario.h" int _tmain(int argc, _TCHAR* argv[]) { ... myScenario = new Scenario(0, L"Scenario Marker Example", (LONG) 0); myScenario->Begin(0, TEXT(“PHASE1")); // Do actual work for phase 1 here myScenario->End(0, TEXT(“PHASE1")); ... } http://code.msdn.microsoft.com/Scenario PARALLEL DEBUGGING PARALLEL DEBUGGER OVERVIEW Goal: Help navigate pending and active tasks in the debugger for TPL and PPL applications Zoom control Bird’s eye view http://msdn.microsoft.com/en-us/concurrency/default.aspx http://blogs.msdn.com/b/visualizeparallel/ http://blogs.msdn.com/b/hshafi/ http://msdn.microsoft.com/en-us/magazine/ee336027.aspx http://code.msdn.microsoft.com/Scenario http://www.microsoft.com/visualstudio/en-us/ http://blogs.msdn.com/b/somasegar/ http://msdn.com/data http://blogs.msdn.com/adonet http://blogs.msdn.com/astoriateam http://blogs.msdn.com/efdesign www.microsoft.com/teched www.microsoft.com/learning http://microsoft.com/technet http://microsoft.com/msdn Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31st http://northamerica.msteched.com/registration You can also register at the North America 2011 kiosk located at registration Join us in Atlanta next year Number of cores CPU Utilization of other processes CPU Utilization of the target process Idle time Zoom control and time axis Ruler tool for custom time measurements One lane per thread Thread activity (color coded execution states) Usage Hints Activity Legend Call Stacks available for each “sample” Who unblocked this thread? Execution on each core One lane per logical core Cross-core migration statistics One color per thread