Parallel Computing The goal of Microsoft’s Parallel Computing Platform (PCP) team is to enable the shift to modern, multi- and manycore hardware, by providing a runtime that provides core support for parallelism and resource management, programming models, libraries and tools that make it easy for developers to construct correct, efficient, maintainable and scalable parallel programs. We are dedicated to providing information and to connecting with our developers through their feedback and for the interaction of our community.
.gif) | Parallel Computing at Microsoft's Professional Developers Conference
Microsoft will offer a pre-conference session and several sessions on Microsoft's approach to Parallel Computing and the technologies being developed. Register to learn about Microsoft's comprehensive and integrated solutions that will simplify parallel programming for both native and managed developers. | .gif) | Download Microsoft Parallel Extensions to the .NET Framework 3.5 June 2008 Community Technology Preview
Parallel Extensions simplifies development by providing library-based support for introducing concurrency into applications written with any .NET language, including C# and Visual Basic. It includes the Task Parallel Library (TPL), which provides imperative data and task parallelism; Parallel LINQ (PLINQ), which provides declarative data parallelism; and all new Coordination Data Structures (CDS), which provide support for work coordination and managing shared state. In addition to CDS, this upgrade provides several improvements, including a new scheduler that is more robust, efficient, and scalable. TPL also exposes new functionality, including methods for continuations. PLINQ now runs on top of TPL, clarifies order-preservation, and provides several new operators. | .gif) | Welcome to Parallel Computing
In an open letter to the community, Corporate Vice President S. Somasegar discusses Moore's law and the impetus behind Microsoft's Parallel Computing Initiative. | .gif) | The Manycore Shift: Microsoft Parallel Computing Initiative Ushers Computing into the Next Era
The computational power of manycore processors, new programming models and platform, and advanced research in usability promise to change the way people interact with computers. This paper describes how Microsoft and industry partners are working together to enable businesses, software and hardware vendors, and individuals to take advantage of the "manycore shift." |
Concurrency Blog Posts
Feedback requested: Enumerating Concurrent CollectionsThe June 2008 CTP of Parallel Extensions contained a first look at some of the work we're doing to augment the .NET Framework with a set of additional coordination data structures that aid in the development of highly concurrent applications. This included two thread-s... more
Most Common Performance Issues in Parallel ProgramsSince the goal of Parallel Extensions is to simplify parallel programming, and the motivation behind parallel programming is performance, it is not surprising that many of the questions we receive about our CTP releases are performance-related.
Developers ask why one progra... more
ParallelWhileNotEmptyParallel Extensions includes the System.Threading.Parallel class, which provides several high-level loop replacement constructs like For and ForEach. In previous blog posts, we've taken a look at implementing other loops, such as for loops with arbitrary initialization, cond... more
Waiting for TasksParallel Extensions makes it easy to wait for Tasks to complete. Task exposes a Wait method, which can be used trivially:
Task t = Task.Create(...); ... t.Wait();
Task also exposes several static methods for waiting on an array of tasks, either for all of them to c... more
Feedback requested: TaskManager shutdown, Fair schedulingOne of the primary reasons we've released CTPs of Parallel Extensions is to solicit feedback on the design and functionality it provides. Does it provide all of the APIs you need to get your job done? Are there scenarios you wished the APIs supported and that you... more
Custom Loop with Arbitrary Initialization, Condition, and UpdateThe Parallel.For loop construct provided by Parallel Extensions is focused on providing a parallel alternative to the common sequential pattern of a for loop that iterates over a range of numbers. However, the for loop construct in a language like C# is not limited jus... more
Useful Abstractions Enabled with ContinueWithIn the June 2008 CTP of Parallel Extensions to the .NET Framework, we introduced the ContinueWith method on both Task and Future<T>. ContinueWith is, in effect, a callback, very much like events in .NET. With events, a causal action results in the event bei... more
Separating concernsLast night, I realized that in my last post on messages, I skipped over one of the essential characters of message-passing APIs: that they separate the code that produces data from the code that acts on its availability with some level(s) of indirection. Consider the use of... more
| VideosParallel Extensions: Task and friends
In this 25' exploration of the heart of the Parallel Extensions to the .NET Framework , you will learn how to use Tasks and how they relate to TaskManagers (including creation options, cancellation and policies). | Programming in the Age of Concurrency - Anders Hejlsberg and Joe Duffy: Concurrent Programming with PFX
Here, Joe Duffy, Senior Software Engineer, and Technical Fellow Anders Hejlsberg sit down with me to discuss the basics and some of the details of the Parallel Extensions to the .NET Framework’s architecture and implementation, whiteboard included. | Hanselminutes Podcast 84 - Concurency Programming with .NET Parallel Framework Extensions
Stephen Toub, a program manager on the Parallel Computing Platform team, talks with Scott Hanselman about how Parallel Extensions provides new ways to make concurrency programming easier with .NET. They get pretty deep and pretty philosophical about concurrency, threading, and parallelism. | Parallel Extensions Samples Tour
In this 20-minute tour of the Parallel Extensions sample code, you will learn where to focus your energy when you explore the samples. Watch this video in order to see how Parallel Extensions fit in the large picture and what goal it aims to solve. | Understanding the Parallel Class
The .NET incarnation of the solution to “imperative data parallelism” lives in the static Parallel class of the Parallel Extensions assembly. If that sentence confuses you a bit, watch the video for the full explanation. | Parallel LINQ
"Declarative Data Parallelism" with the Parallel Extensions is achieved through Parallel LINQ. This video explains how to parallelise your LINQ queries, how it works under the covers and how to configure it for advanced scenarios. |
Forums |
| |