Using the Concurrency Visualizer to Pick the Best Way to Parallelize a Data Set

In the application I am working on, there is a small array of objects (10 – 100 items) and a large array of objects (10,000 – 100,000). I want to know how close each object in the small array is to each object in the large array. Since calculating the value for each candidate item…


Concurrency Visualizer as a Microscope for Execution Dynamics

This is the picture that Concurrency Visualizer team used on the title page of internal specs. It actually reveals how most of us think about our product: not as a profiler (though you can get decent sample profile from it by clicking the green “Execution” category in the legend), and not even as a performance…


Tuning a Parallel LINQ File Search Application

This post explores the performance issues that arise when using PLINQ to parallelize queries, and illustrates how the Concurrency Visualizer in Visual Studio 2010 can be a valuable tool in identifying performance bottlenecks and making efficient and profitable parallelization choices. The subject of this entry is a toy application that scans a set of files…


Tuning a Parallel Ray Tracer in F#

One of the samples that is included with the Parallel Programming Samples for .NET 4 is a simple Ray Tracer.  This ray tracer provides a nice visual way of seeing the benefits of .NET 4 parallelism features, as well as giving insights into the way work stealing happens under the hood.  The Problem This ray…

2

Parallel Performance Case Study: Finding References to Parallel Extensions

Stephen Toub                                                                                                       Parallel Computing Platform Visual Studio 2010 is quite a large application, comprising not only the entire integrated development environment (IDE) and all of the tools that make it up, but also the underlying runtimes and frameworks on which it runs, including the .NET Framework 4. When logic in one of these constituent components…


Overview of the Parallel Dwarfs project on Codeplex

The Parallel Motifs, or Parallel Dwarfs as they are sometimes called, are a collection of algorithm families that are important to parallel computing as they are known to be compute bound. More computational cycles – if applied judiciously – will result in faster execution on a given data set for many algorithm instances from each…


A Fresher Parallel Computing Developer Center on MSDN

For those of you who haven’t seen it, the Parallel Computing developer center is a comprehensive source of lessons, highlights, and resources for developers interested in parallelism.  It has now been remodeled with a much fresher, organized look.  With more attention than ever before, it is now constantly updated with new content.  Enjoy! James Rapp…


Debugging Parallel applications in Visual Studio 2010

In addition to the concurrency visualizer feature that we have been blogging about here, there is great debugging support for parallel applications in Visual Studio 2010. I have created a lot of content for the parallel debugger windows (Parallel Tasks and Parallel Stacks) and have gathered all the links in one place. Check out my blog…


Beginner’s Guide to Profiling Parallel Apps Part IV

Welcome to fourth and final installment of the "beginner’s guide" series.  In my previous entry, I discussed the "Threads" view of the Concurrency Visualizer.  In this entry, I will discuss the "Cores" view. Using the same set of results as the previous entries, I now navigate to the "Cores" view to find this: This view…


Beginner’s Guide to Profiling Parallel Apps Part III

Hello and welcome to the third installment of the "beginner’s guide" series.  While I discussed the "CPU Utilization" view last time, I will now discuss the "Threads" view in the profiler. Working with the same code as in my last post, I will now re-examine the performance from a different perspective.  I will take a…