Upload
april-sherman
View
216
Download
1
Tags:
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.