17
A Top Level Overview of Parallelism from Microsoft's Point of View in 15 minutes IDC HPC User’s Forum April 2010 David Rich Director Strategic Business Development

A Top Level Overview of Parallelism from Microsoft's Point of View in 15 minutes IDC HPC User’s Forum April 2010 David Rich Director Strategic Business

Embed Size (px)

Citation preview

A Top Level Overview of Parallelism from Microsoft's Point of View

in 15 minutesIDC HPC User’s

Forum April 2010

David RichDirector Strategic

Business Development

For Today• What we are seeing / “survey says”• What we are doing

– Products– “Incubations” and research– Visual Studios Partners (VSIP)

• An extra word on GPGPU• Not going to talk about:

– Rise of multi-core, GPGPU, limits of silicon, issues with power or other physical limits

– “Missing middle” or need to bring HPC to a larger set of users– “Data deluge” caused by networked sensors and other sources– The fact that parallel programming is hard

Our Parallelism POV• Pressure to move fast;

– Microsoft is one of the few companies that has access to NDA roadmaps from all the volume processor vendors

– We have a very large internal population involved in software engineering

– We have tens of thousands of partner ISVs– So we know the trends and know solutions are needed

• Reasons to be careful;– “Don’t release, unless you’re ready to provide support for 10 years”– We don’t do things half way;

• Worldwide simultaneous release in 120 countries, full documentation• Support, training and “evangelism”• Over 6 Million current users of Visual Studios• Support across full product line; tools, runtimes, OS, applications

– Changing code is a large investment for our customers

Parallel Developer Survey Says

• Main performance barriers: network bandwidth and latency• Developers indicated the most difficult tasks when developing

parallel apps are debugging (37%), performance tuning (33%) and designing parallel algorithms (28%). Least satisfied with:– Debugging multi-threaded code, tasks or other parallel programming models– Analyzing code for deadlocks, races, and other concurrency side effects

• Developers targeting Windows ONLY have more experience on multicore technologies while those targeting other OS have more experience on clusters

• Microsoft funded survey: 93,000 contacted, 15000 screened, 900 with some parallel knowledge selected

5

Factors Limiting Adoption of Parallel Computing

Availability of skilled developers

Training cost

Difficulty of finding bugs in parallel code

Difficulty of parallelizing current algorithms

Where to start – what to parallelize, what to leave alone

Availability of programming tools

Lack of standards or cross-platform languages and tools

Level of understanding of legacy algorithms and code

Availability of external support or outsourcing options

Not applicable—there aren’t any barriers limiting/ preventing my adoption of parallel computing

0% 5% 10% 15% 20% 25% 30% 35% 40% 45%

39%38%

37%32%32%

31%30%

29%28%28%

24%23%

21%21%21%

20%12%

3%9%

Total US (N=446)

GPGPU (of those with GPGPU knowledge)

• Main barriers: expertise and library availability

• C++ is the dominant starting point• Most difficult development task is

debugging and designing parallel algorithms

We are currently investigating GPGPU, but do not have a timeframe for deployment

We are currently investigating GPGPU and plan to deploy within the next 6 months

We are considering, but currently have no plans to develop or deploy GPGPU

We currently have GPGPU in the deployment phase

50%

27%

15%

8%

Stage of GPGPU Development

(N=155)

Existing languages, tools, and runtimes automatically leverage existing end-user hardware

Will restrict coding to subset of existing lang. so that the compiler and runtime can target hardware

Want rich library support and libraries to efficiently target hardware resources I have

Will exert sig. effort to get most from hardware, including learning new programming style like CUDA

Will write software specific to multiple hardware targets to maximize performance

OS vendor choice

76%

65%

69%

72%

69%

66%

GPGPU-Specific Needs

(N=133)

% Agree (8-10 on 10-point scale)

total in sample 900some knowledge of GPGPU 155

% of those deployed 8%% deploying in 6 months 27%# deployed in 6 months 54

% of Total 6%

What are we Doing?

• First terminology;– Products– Incubations– Internal research and prototypes– Integrated Partner Products

Parallel Pattern Library

Resource Manager

Task Scheduler

Task Parallel Library

Parallel LINQ

Threads

Native Concurrency Runtime

Managed Libraries

ThreadPool

Data Structures D

ata

Stru

ctur

es

Tools

AsyncAgentsLibrary

UMS Threads

MicrosoftResearch

Visual Studio 2010

ParallelDebugger Windows

Profiler Concurrency

Analysis

Race Detection

Fuzzing

AxumVisual F#

Managed Languages

Rx

Native Libraries

Managed Concurrency Runtime

DryadLINQ

Key: Research / Incubation Visual Studio 2010 / .NET 4 Windows 7 / Server 2008 R2

HPC Server Operating System

Visual Studio 2010Tools / Programming Models / Runtimes

Parallel Technologies in Visual Studio 2010

• Makes parallel computing more productive and easier to do– High-level parallel constructs and

abstractions– Reduce code footprint and streamline

parallel development– Helps developers express logical

parallelism and map it to physical parallelism

• Includes advanced developer tools that understand parallel constructs– Provide debugger and profiler views

that align with the way parallelism is expressed in code

Parallelizing Excel

• Excel is frequently used as the “programming environment” for computational simulation

• Parallelizing Excel Greatly increases the compute power available to

ExcelReduces the time it takes to actualize results and

execute a greater number of calculations Benefit with shorter time to results and improved

probability or likelihood of the outcomes

Excel runs on the cluster and recalculates workbook Spreadsheet as a service with input and output values Works with Excel or other application as “client” (like above) Requires HPC Server 2008 R2 and Excel 2010

HPC Services for Excel

Offload existing UDF (external functions) to a cluster Sample add-in for connecting to cluster Requires HPC Server 2008 R2 and Excel 2010

Excel UDF on the Cluster

VSTO code in workbook calls out to SOA Service Input and output managed by Excel developerExcel SOA Client

Windows HPC Server 2008 R2 Provides two new mechanisms to distribute Excel calculations to an HPC Cluster

NEW

NEW

Excel 2010 on HPC Server 2008 R2

Incubations

• Accelerator – a high level data parallel language for use with GPUs and FPGAs http://connect.microsoft.com/acceleratorv2

• Axum – A language for creating large scale distributed applications

• CHESS – A concurrency tool that helps reproduce “Heisenbergs” in parallel programs

• Dryad and DryadLINQ for distributed data-parallel applications http://research.microsoft.com/en-us/projects/dryad/

• All are available for trial use

NVIDIA Parallel Nsight• The industry’s first IDE for massively parallel

applications• Accelerates co-processing (CPU + GPU) application

development• Complete integration with Visual Studio 2008

– Visual Studio 2010 integration later this year

NVIDIA Confidential – Do not disclose before 12-April

Parallel Nsight 1.0

• Parallel Debugger– GPU source code debugging– Variable and memory inspection

• System Analyzer– Platform-level analysis– For CPU and GPU

• Graphics Inspector– Visualize and debug graphics

contentNVIDIA Confidential – Do not disclose before 12-April

Microsoft and GPGPU

• The combination of Visual Studios and partner integrated tools such as those from NVIDIA, PGI and CAPS make Windows the best development platform for GPGPU computing.

• And for those of you developing server and cluster based GPGPU applications – don’t forget that no changes are needed if you use HPC Server 2008!

• http://www.microsoft.com/hpc– Links to downloads

• http://technet.microsoft.com/hpc– Links to Technical Documentation, HPC Team Blog, and

HPC Forums– Updated regularly with new docs, SDKs, samples, videos,

and other useful information• http://www.microsoft.com/visualstudio/en-us/

products/2010/default.mspx– Visual Studio 2010

• http://msdn.microsoft.com/concurrency– Parallel Computing Developer Center

16

Additional Information

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