Dr. Dobb’s has a review today that takes a look at the progress MS is making supporting developers struggling to add effective support for concurrency in their apps
If you want to translate multicore power into application performance, you have to make sure your concurrent software threads are running on hardware threads taking advantage of parallelism. Visual Studio 2010 Beta 2 improved many profiling reports related to parallelism and concurrency.
The IDE uses the name Concurrency. However, I’d rather talk about both parallelism and concurrency. When you create a multithreaded application, using task-based programming or raw threads, you’re creating concurrent code. Nonetheless, it doesn’t mean that the concurrent code is going to run in parallel all the time. It depends on the decisions taken by the operating system scheduler, the underlying hardware and the synchronization problems, among others. Therefore, it is necessary to evaluate whether the programmed concurrency is taking advantage of certain parallel hardware capabilities. Are the software threads running in parallel taking advantage of the existing hardware threads? The new Concurrency profiling tools offered by Visual Studio 2010 Beta 2 provide nice information to answer this question. Again, this tool allows you to visualize parallelism and concurrency, not just concurrency.