This session prepares you for the new challenges in developing, debugging, and performance tuning concurrent applications. We cover some important steps in the creation of parallel applications, with hands-on demonstrations of the performance analysis and optimization tools using the next release of Microsoft Visual Studio. We show how to identify opportunities for parallelism and how to exploit those opportunities by choosing appropriate coding patterns, using both existing and future programming models. Finally, we demonstrate how to optimize parallel code by focusing on common sources of inefficiency such as I/O, cache misses, and synchronization.