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…


Author Intro: Robert Palmer

I am currently the Program Manager for parallel correctness tools in the Parallel Computing Platform team at Microsoft.  My interests span formal verification and HPC.  Before working at Microsoft, I was a researcher in validation in the Corporate Technology Group at Intel. I received my BS and Ph.D. degrees in Computer Science from the University of Utah.  Robert Palmer -…


Tracewriter App Available for Download on Code Gallery

About three weeks ago, Ryan wrote about his “Tracewriter” application which spells out text in the threads view of the Concurrency Visualizer: Now, the source code is available for download on Code Gallery.  Enjoy! James Rapp – Parallel Computing Platform


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…


Linking Visualization to Application Phases

It is often necessary to divide many real-world applications into multiple distinct phases.  As a result, the search for performance problems can often be constrained to a particular phase of an application’s execution.  One of the most effective ways to narrow focus onto a specific region is to use the Scenario API on Code Gallery…


GC Performance Patterns

Our “Rogues Gallery” is a collection of common, visual patterns exhibiting poorly-behaved multithreaded applications. In this post, I’ll introduce a new pattern: too much pressure on the garbage collector (GC). When an application creates too many objects, the GC will have to run often, resulting in poor application performance. Because the GC is executing in-process,…


Oversubscription: a Classic Parallel Performance Problem

One of the most important things to pay attention to when tuning a multithreaded application is its performance pattern.  There is a set of common poor performance patterns that most developers of multithreaded applications will encounter.  These include, among other things, patterns such as oversubscription, serialization, lock convoys, and uneven workload distribution.  We have documented…