Presentation is loading. Please wait.

Presentation is loading. Please wait.

 Lynne Hill General Manager Parallel Computing Platform Visual Studio.

Similar presentations


Presentation on theme: " Lynne Hill General Manager Parallel Computing Platform Visual Studio."— Presentation transcript:

1  Lynne Hill General Manager Parallel Computing Platform Visual Studio

2

3 Improved Productivity Immersive Experience Breakthrough Innovation

4 CodeOptimize Validate Design Actionable performance guidance Across multiple programming models with data and task parallelism Applications for Parallelism Correctness

5 Addressing the Hard Problems of Concurrency Speakers: Lynne Hill, David Callahan Date/Time: Thursday, Oct. 30 8:30AM – 10:00AM Parallel Computing Application Architectures and Opportunities Speakers: John Feo, Jerry Bautista (Intel) Date/Time: Thursday, Oct. 30 10:15AM – 11:45AM Future of Parallel Computing (Panel) Speakers: Dave Detlefs, Niklas Gustafsson, Sean Nordberg, James Reinders (Intel) Moderator: Selena Wilson Date/Time: Thursday, Oct. 30 12:00PM – 1:30PM

6 David Callahan Distinguished Engineer Parallel Computing Platform Team, Visual Studio

7

8 We need your passionate feedback – make our next steps the right ones

9

10 Broad Adoption Complex Systems Diverse Targets

11 Enable Experts Increase Safety & Automation Reduce Concepts

12 Efficient Execution System Services Constructing Parallel Applications How do we: cheaply build parallel applications that can be efficiently executed and share system resources? How do we: cheaply build parallel applications that can be efficiently executed and share system resources?

13 Efficient Execution System Services Constructing Parallel Applications How do we: cheaply build parallel applications that can be efficiently executed and share system resources? How do we: cheaply build parallel applications that can be efficiently executed and share system resources? Chart not to scale

14 E S C Integrate/Tool/Encapsulate/Raise Implicit Explicit, but safe Explicit, unsafe

15 Integrate/Tool/Encapsulate/Raise Parallel Programming for C++ Developers … Rick Molloy, Oct. 27 3:30PM – 4:45 PM Parallel Programming for Managed Developers … Daniel Moth, Oct. 29 10:30AM– 11:45AM E S C

16 Emphasize recursive decomposition Preserves function interfaces “fork-join” Structured control constructs Parallel loops, co-begin Emphasize recursive decomposition Preserves function interfaces “fork-join” Structured control constructs Parallel loops, co-begin Each iteration is a task E S C All tasks finish before function returns

17 Every Iteration is a “task” Every Iteration is a “task” New C++ Lambda Syntax

18 Design and modeling tools to enable developers to start with zero parallelism debt Design Debug across multiple programming models, with data and task-focused visualizations Debug Actionable performance guidance for understanding and optimizing parallel applications Optimize Tools for developers and testers to validate correctness and cope with inherent non-deterministic execution Validate Integrate/Tool/Encapsulate/Raise

19 New Tools In Visual Studio 2010 Integrate/Tool/Encapsulate/Raise E S C Examples in Talks by Moth and Molly mentioned earlier Microsoft Visual Studio: Bringing out the Best in Multicore Systems Hazim Shafi Oct. 27 1:45 PM – 3:00 PM MSR: Concurrency Analysis Platform and Tools for Finding Concurrency Bugs Madan Musuvathi and Tom Ball Oct 29 at 10:30 MSR: Concurrency Analysis Platform and Tools for Finding Concurrency Bugs Madan Musuvathi and Tom Ball Oct 29 at 10:30

20 Best not to know Parallelism inside of libraries without interface change Ok to be warned… Frameworks with callbacks – must document/specify/enforce restriction At least get to reuse New patterns for data structure traversal E S C Integrate/Tool/Encapsulate/Raise

21 In domain specific ways, work without explicit sequencing Integrate/Tool/Encapsulate/Raise

22 SequentialCoarse if(!m.visited) { m.visited = true; recurse(m); } lock(graph) var v = m.visited; if(!v) m.visited = true; unlock(graph); if(!v) recurse(m) FineLock-free lock(m) var v = m.visited; if(!v) m.visited = true; unlock(m); if(!v) recurse(m) var v = compare_and_swap( &m.visited. false, true); if(!v) recurse(m) Integrate/Tool/Encapsulate/Raise E S C Arbitrate parallel traversal of a graph: “first to visit” Arbitrate parallel traversal of a graph: “first to visit”

23 Specify intent: 1.Run isolated from the effects of other tasks 2.Do nothing if there is an error Specify intent: 1.Run isolated from the effects of other tasks 2.Do nothing if there is an error Looks “coarse”, runs “fine”, composes cleanly Integrate/Tool/Encapsulate/Raise E S C

24 Efficient Execution System Services Constructing Parallel Applications How do we: cheaply build parallel applications that can be efficiently executed and share system resources? How do we: cheaply build parallel applications that can be efficiently executed and share system resources?

25 Some Efficiency Factors E S C

26 E S C

27 E S C

28 E S C Assuming 4 worker threads Publish opportunities to be stolen by idle workers

29 Parallel Pattern Library Resource Manager Task Scheduler Task Parallel Library Task Parallel Library PLINQ Managed Library Native Library Key: Threads Operating System Concurrency Runtime Programming Models Agents Library Agents Library ThreadPool Task Scheduler Resource Manager Data Structures Tools Parallel Debugger Toolwindows Parallel Debugger Toolwindows Profiler Concurrency Analysis Profiler Concurrency Analysis Exposed APIs for Partners

30 E S C Common Resource Management General Purpose Scheduler General Purpose (Background) Real Time Schedule Domain Specific Scheduler Domain Specific Abstractions General Purpose Abstractions: Messages + Tasks + Isolation Legacy Threads + Locks Domain Specific Frameworkss General Purpose Frameworks Rich, Connected, Scalable Applications

31 E S C Common Resource Management General Purpose Scheduler Online Query Optimizers Standard “SQL” Query Operators LINQ.NET Bindings Rich, Connected, Scalable Applications

32 Efficient Execution System Services Constructing Parallel Applications How do we: cheaply build parallel applications that can be efficiently executed and share system resources? How do we: cheaply build parallel applications that can be efficiently executed and share system resources?

33 Process Kernel Extended Threads Extended Threads Cooperative Physical Resource Management Common Resource Management General Purpose Scheduler General Purpose (Background) Real Time Schedule Domain Specific Scheduler Domain Specific Abstractions General Purpose Abstractions: Messages + Tasks + Isolation General Purpose Abstractions: Messages + Tasks + Isolation Legacy Threads + Locks Domain Specific Frameworkss General Purpose Frameworks Rich, Connected, Scalable Applications E S C

34 E S C IO N N N N N N N N N N N N D D D D D D D D SP C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D Primary Processor Primary Processor Primary Processor On a single chip: two processors kinds, cache, network, and memory and I/O controllers

35 Constructing Parallel Applications Efficient Execution System Services Applications Libraries Languages, Compilers and Tools Concurrency Runtime Kernel/Hypervisor Hardware

36 Enable Experts Increase Safety & Automation Reduce Concepts

37 MSDN.com/concurrency And download Parallel Extensions to the.NET Framework!

38 Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com

39

40 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

41


Download ppt " Lynne Hill General Manager Parallel Computing Platform Visual Studio."

Similar presentations


Ads by Google