 Lynne Hill General Manager Parallel Computing Platform Visual Studio.

Slides:



Advertisements
Similar presentations
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Taylor Brown Test Lead Microsoft Corporation ES09.
Parallel Performance Tools in Visual Studio 2010.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
 Dustin Campbell VB IDE Program Manager Microsoft Corporation.
 Niklas Gustafsson Software Architect Microsoft Corporation TL22.
 Thomas Ball Principal Researcher Microsoft Corporation  Sebastian Burckhardt Researcher Microsoft Corporation  Madan Musuvathi Researcher Microsoft.
Feature: Purchase Requisitions - Requester © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
 Jesse Kaplan Program Manager Microsoft Corporation TL34.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
 Phil Haack Senior Program Manager Microsoft Corporation PC21.
Daniel Moth  Parallel Computing Platform Microsoft Corporation TL26.
 Nishant Gupta Program Manager Live Services Microsoft Corporation BB51.
Co- location Mass Market Managed Hosting ISV Hosting.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
 Pablo Castro Software Architect Microsoft Corporation TL08.
Microsoft Application Virtualization (App-V)
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
 Rico Mariani Architect Microsoft Corporation.
 Frank Savage Architect Microsoft Corporation.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
 Ram Cherala Principal Program Manager Microsoft Corporation TL37.
 Chaitanya Sareen Senior Program Manager Microsoft Corporation PC24.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Connect with life Connect with life
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
 Paul Vick Principal Architect Microsoft Corporation  Lucian Wischik Software Engineer Microsoft Corporation.
SQL Server SQL Azure Visual Studio“Quadrant” SQL Server Modeling Services Entity Framework ADO.NET“M”/EDM Data Services …
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

customer.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Parallel Pattern Library Resource Manager Task Scheduler Task Parallel Library Task Parallel Library Parallel LINQ Managed Native Key: Threads Operating.
demo Demo.
 John Cunningham Development Manager Microsoft Corporation TL59.
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
The CLR CoreCLRCoreCLR © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
 Boris Jabes Program Manager Lead Microsoft Corporation TL13.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

MIX 09 4/17/2018 4:41 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Lighting Up Windows Server 2008 R2 Using the ConcRT on UMS
Возможности Excel 2010, о которых следует знать
Title of Presentation 11/22/2018 3:34 PM
"Oslo”: Customizing and Extending the Visual Design Experience
Title of Presentation 12/2/2018 3:48 PM
Building Modern Windows Applications with Visual C
F# for Parallel and Asynchronous Programming
1/3/2019 1:21 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
PENSACOLA ENERGY WORK PLAN OCTOBER 10, 2016
5/1/2019 3:29 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Title of Presentation 5/12/ :53 PM
Шитманов Дархан Қаражанұлы Тарих пәнінің
Title of Presentation 5/24/2019 1:26 PM
5/24/2019 6:44 PM 1/8/18 Bell #10 In a world governed by the gods, is there any room for human will? Do human choices make a difference? EXPLAIN © 2007.
日本初公開!? Vista の新機能を実演 とっちゃん わんくま同盟 7/23/2019 9:09 AM
Title of Presentation 7/24/2019 8:53 PM
What’s New in Visual Studio 2012 for Web Developers
Advanced app and driver debugging
Presentation transcript:

 Lynne Hill General Manager Parallel Computing Platform Visual Studio

Improved Productivity Immersive Experience Breakthrough Innovation

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

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 :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 :00PM – 1:30PM

David Callahan Distinguished Engineer Parallel Computing Platform Team, Visual Studio

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

Broad Adoption Complex Systems Diverse Targets

Enable Experts Increase Safety & Automation Reduce Concepts

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?

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

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

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 :30AM– 11:45AM E S C

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

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

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

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

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

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

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”

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

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?

Some Efficiency Factors E S C

E S C

E S C

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

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

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

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

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?

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

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

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

Enable Experts Increase Safety & Automation Reduce Concepts

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

Please fill out your evaluation for this session at: This session will be available as a recording at:

© 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.