Parallel Extensions on .NET Rocks

Joe Duffy, our dev lead, appeared on the 12/25/07 edition of .NET Rocks!, speaking about Parallel Extensions and the Task Parallel Library: “Carl and Richard talk to Microsoft’s Joe Duffy about the Task Parallel Library, which promises to make multi-threaded programming easier for us all.” Enjoy!… Read more

F# and the Task Parallel Library

Over on his blog, Don Syme has a post about F# and Parallel Extensions: “Over the coming year I expect we’ll be seeing this library used very widely from F#, and we’ll eventually be using the TPL as a key underlying technology for F# asynchronous workflows. TPL excels at CPU-intensive parallelism and exploiting multiple cores, especially in… Read more

LINQ 101, "Parallelism Blockers," and PLINQ

PLINQ is a very cool technology, and I believe it will prove useful for parallelizing operations in a wide range of important scenarios.  Moreover, I believe that the programming model it provides will enable a wide-range of developers to easily take advantage of concurrency in their applications.  However, one of the risks involved in our providing… Read more

Another Parallel Extensions screencast

Daniel Moth is on a roll.  Two weeks ago he created three great overview screencasts for Parallel Extensions to the .NET Framework.  Today, he released a fourth video, covering the Task and TaskManager classes.  Thanks, Daniel!  We’ll get this added to the MSDN Parallel Computing developer center soon, but in the meantime, head on over… Read more

Code Snippets for Parallel.For and Parallel.ForEach

Introduced in Visual Studio 2005, Code Snippets allow you to quickly insert reusable blocks of code into your project.  For example, if you want to quickly write a for loop in C#, you can simply type “for” into your code file, and IntelliSense shows you the “for” code snippet: Now you press the tab key twice, and Visual… Read more

Parallelizing a query with multiple “from” clauses

Consider a simplified version of Luke Hoban’s LINQ ray tracer var Xs = Enumerable.Range(1, screenWidth); var Ys = Enumerable.Range(1, screenHeight);   var sequentialQuery =   from x in Xs from y in Ys select new { X = x, Y = y, Color = TraceRay(x, y) };   If the screen width is much larger than… Read more

Parallel Extensions and Silverlight 2.0

From time to time, we get a question about whether we intend for Parallel Extensions to target Silverlight.  The simple answer is: Not Yet. Here’s a more complete answer: Not for Silverlight 2.0, at least.  Rich Lander from the CLR team described the Silverlight compatibility story very nicely over on his blog.  I will summarize… Read more

Give Feedback Through the Connect site

Have you found any bugs, unknown issues (vs. known issues), or any wish list items?  Go to our Connect site, sign up for the Parallel Extensions to the .NET Framework connection, and start giving us direct feedback.    While the blog comments and forums are a great way to raise concerns, ask how-to questions, and… Read more

MSDN Forums

There are some great discussions going on over at the Parallel Extensions forum on MSDN.  Download the CTP, try out the bits, head on over to the forums, and get involved!  We’d love to hear from you…. Read more

Chunk partitioning vs range partitioning in PLINQ

If you look in the PLINQ samples in the December 2007 CTP, you’ll see a parallel implementation of Luke Hoban’s LINQ ray tracer.  The sample parallelizes the ray tracer by changing very few lines of code.   Luke’s original query started as follows: from y in Enumerable.Range(0, screenHeight) For our sample, we’ve changed that to: from… Read more