The free lunch is over! Multicore processors have become widely available, and single-threaded performance in new processors is likely to remain relatively flat.
That means added pressure on software developers to improve application performance by taking better advantage of parallelism.
Multithreaded applications are not only prone to common sources of inefficiency in sequential implementations, such as inefficient algorithms, poor cache behavior, and excessive I/O, but they can also suffer from parallel performance bugs.
Visual Studio 2010 includes a new profiling tool—the Concurrency Visualizer—that should significantly reduce the burden of parallel performance analysis. Moreover, the Concurrency Visualizer can help developers analyze their sequential applications to discover opportunities for parallelism.
Check-out this MSDN article that presents an overview of the features of the Concurrency Visualizer in Visual Studio 2010, along with some practical usage guidance.
Use ALL your Cores! OPTIMIZE across ALL your Cores!