We've just released a new community technology preview (CTP) of Parallel Extensions to the .NET Framework! You can download it from https://www.microsoft.com/downloads/details.aspx?FamilyId=348F73FD-593D-4B3C-B055-694C50D2B0F3. This release contains a plethora of bug fixes as well as some design changes to address some great ...
Igor and Joe from our Parallel Extensions team sat down with Charles from Channel 9 to discuss the inner workings of PLINQ. The video of the conversation is now available at https://channel9.msdn.com/showpost.aspx?postid=390736. "Continuing our exploration of the Parallel Computing Platform and the folks who think it up and ...
Frequently when attempting to do multiple operations in parallel, ordering becomes an issue. Consider an application where I'm rendering and writing out to a video file frames of a movie:
for (int i = 0; i < numberOfFrames; i++){ var frame = GenerateFrame(i); WriteToMovie(frame);}For a bit of ...
When teaching recursion in an introductory computer science course, one of the most common examples used involves a tree data structure. Trees are useful in this regard as they are simple and recursive in nature, with a tree's children also being trees, and allow for teaching different kinds of traversals (in-order, pre-order, post-...
In the Seattle area and want to hear more about PLINQ? Igor Ostrovsky, a developer on the Parallel Extensions team, will be speaking today at the Seattle Code Camp from 3:00-4:15pm. Check it out...
Quick Overview of LINQ Aggregations In order to explain the issues we encounter when parallelizing aggregations in PLINQ, let's first take a quick look at how aggregations work in LINQ.Aggregation is an operation that iterates over a sequence of input elements, maintaining an accumulator that contains the intermediate result. At each step, a ...
Sometimes very simple additions to an API or implementation make me happy. One such nicety in the CTP of PLINQ is the implementation of ToString on the concrete types that represent query operators. These implementations provide a textual representation of the query structure, which can be very nice for debugging purposes.
...
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 ...
Consider a simplified version of Luke Hoban's LINQ ray tracervar Xs = Enumerable.Range(1, screenWidth);var Ys = Enumerable.Range(1, screenHeight); var sequentialQuery = from x in Xsfrom y in Ysselect new { X = x, Y = y, Color = TraceRay(x, y) }; If the screen width is much larger than the screen height, we would choose to...