visual studio 2010 beta 2

23
Visual Studio 2010 Beta 2

Upload: marnin

Post on 24-Feb-2016

40 views

Category:

Documents


0 download

DESCRIPTION

Visual Studio 2010 Beta 2. About Me. Microsoft MVP Intel Blogger TechEd Israel, TechEd Europe Expert C++ Book http://AsyncOp.com http://Asaf.Shelly.co.il. Task Parallel Library - TPL. .Net Framework 3.5 See TechEd 2008 VS2010 with .Net 4.0 Language Extensions Lambda Expressions - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Visual Studio 2010 Beta 2

Visual Studio 2010 Beta 2

Page 2: Visual Studio 2010 Beta 2

About Me

• Microsoft MVP• Intel Blogger• TechEd Israel, TechEd Europe• Expert C++ Book

• http://AsyncOp.com• http://Asaf.Shelly.co.il

Page 3: Visual Studio 2010 Beta 2

Task Parallel Library - TPL

• .Net Framework 3.5• See TechEd 2008• VS2010 with .Net 4.0• Language Extensions• Lambda Expressions• C#, VB, F#, C++

Page 4: Visual Studio 2010 Beta 2

From for to Parallel.For

for (int i=0; i<100; i++){ int x = i + i;}

Parallel.For(0, 100, i =>{ int x = i + i;});

Page 5: Visual Studio 2010 Beta 2

C++ parallel_for

parallel_for(0, 100, [&] i{ int x = i + i;});

Page 6: Visual Studio 2010 Beta 2

Visual Studio 2010

• Multi-Core Programming• Tasks• Agents• Parallel Loops• Parallel Algorithms• Parallel Replacement for STL• Seamless Task Usage

Page 7: Visual Studio 2010 Beta 2

Task Oriented Design

Modify

Write

Open

Modify

Scan ScanScanScan ScanScan

Page 8: Visual Studio 2010 Beta 2

PLINQ – Parallel LINQ

Page 9: Visual Studio 2010 Beta 2

VS2010 DemoC# Parallel.For

Page 10: Visual Studio 2010 Beta 2

Keep an eye for…

• Shared are Globals• Parallel Loops are not loops• Define data as Loop internal• Race Conditions are still here• Locks!!• I/O – Disk, Network, etc.

Page 11: Visual Studio 2010 Beta 2

VS2010 DemoC++ Parallel_For

Page 12: Visual Studio 2010 Beta 2

VS2010 DemoUnderstanding Lambda and parallel_for

Page 13: Visual Studio 2010 Beta 2

Visual Studio Parallel Debugger

• Parallel Task List• Parallel Task Stack• Built-in Profiler

Page 14: Visual Studio 2010 Beta 2

Parallel Pattern Library

Resource Manager

Task Scheduler

Task Parallel Library

PLINQ

Managed Library Native LibraryKey:

ThreadsOperating System

Concurrency Runtime

Programming Models

AgentsLibrary

ThreadPool

Task Scheduler

Resource Manager

Data Structures

Data

Str

uctu

res

Integrated Tooling

Tools

ParallelDebugger

Toolwindows

Profiler Concurrency

Analysis

Programming Models

Concurrency Runtime

Page 15: Visual Studio 2010 Beta 2

Advanced Parallel In VS2010

• Agents – Resource Owners• Task Groups• Task Cancellation• Task Cleanup (CancelIo)

Page 16: Visual Studio 2010 Beta 2

VS2010 DemoNew F# Application

Page 17: Visual Studio 2010 Beta 2

Hints for the future

• http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx

• AXUM – Language for parallel computing• STM.Net - Software Transactional Memory for

concurrent memory separation• Spec Explorer – Graphical analysis of software

behavior• … and more

Page 18: Visual Studio 2010 Beta 2

A bit nostalgia

• TechEd 2008 Israel

Page 19: Visual Studio 2010 Beta 2

Do we really want Parallel Code?Do users even care?

2005 2007 2008 2010

Page 20: Visual Studio 2010 Beta 2

Change In MindsetEverything is stopped. Waiting for the photographer

Everyone is working independently

Page 21: Visual Studio 2010 Beta 2

Change In MindsetDevelopers are writing functions

Developers are managing tasks

Page 22: Visual Studio 2010 Beta 2

Change In MindsetDoing things the way we always have

Things are going to be different

Page 23: Visual Studio 2010 Beta 2

Thank You