Parallel Programming with Microsoft Visual C++

Tuesday, January 4, 2011 – 5:05 PM

cpp_cover_smallSo it’s been a while but we now have some more material available for “Parallel Programming with Microsoft Visual C++”. The latest drop on CodePlex includes two new chapters:

Chapter 6 – Dynamic Task Parallelism

This chapter discusses situations where tasks are added to the work queue as the computation proceeds. This is known as dynamic task parallelism. A sequential algorithm that uses recursion can easily be transformed into a computation that uses dynamic task parallelism.

Appendix B – Debugging and Profiling Parallel Applications

The Microsoft® Visual Studio® 2010 development system debugger includes two windows that assist with parallel programming: the Parallel Stacks window and the Parallel Tasks window. In addition, the Premium and Ultimate editions of Visual Studio 2010 include a profiling tool. This appendix gives examples of how to use these windows and the profiler to visualize the execution of a parallel program and to confirm that it’s working as you expect. After you gain some experience at this, you’ll be able to use these tools to help identify and fix problems.

The PDF on CodePlex also includes the latest versions of the Preface, Introduction and Chapter 7 with modifications based on reviewer feedback.

In addition to the new text we’ve also published the samples to all the chapters with the exception of Chapter 5 and Appendix A. Each chapter contains basic samples of using the Parallel Pattern Library or Asynchronous Agents Library as well as a complete example that shows a more real world application and demonstrates both a sequential and parallel solution.

We would really like feedback on both the text and the samples. Please download them from CodePlex and post your feedback or questions there.

Here’s a summary of the examples that ship with each chapter.

Chapter 2 – Parallel Loops

A credit review scoring sample that uses parallel loops to run a credit score on all the available accounts.

Chapter 3 – Parallel Tasks

Image blending using parallel tasks to manipulate two images before creating the final result image.

Chapter 4 – Parallel Aggregation

An application to find friends of friends in a social networking application.

Chapter 5 – Futures

The Adatum Dashboard. A financial modeling application that uses the Futures pattern to exploit the inherent parallelism in a modeling workflow.

Chapter 6 – Dynamic Task Parallelism

A parallel sorting implementation that uses a divide and conquer approach.

Chapter 7 – Pipelines

A pipeline for processing images in strict order with parallel control and data flow implementations.

Appendix B – Profiling and Debugging

A series of short examples showing examples of visual patterns that can be seen using the profiler. For example; deadlock and oversubscription.