As I’ve mentioned before we’ve been quietly working away on version of the .NET Parallel Programming book for C++ developers who want to use the Parallel Patterns Library or Asynchronous Agents Library to add parallelism to their applications.
Well… we now have some draft chapters and example code ready for review.
This book describes patterns for parallel programming, with code examples, that use the new parallel programming support in Visual C++. This support is commonly referred to as the Parallel Patterns Library (PPL). There is also an example of how to use the Asynchronous Agents Library in conjunction with the PPL…
The CPU meter shows the problem. One core is running at 100 percent, but all the other cores are idle. Your application is CPU-bound, but you are using only a fraction of the computing power of your multicore system. What next?
The Dataflow Network pattern decomposes computation into cooperating asynchronous components that communicate by sending and receiving messages. Buffering the messages allows concurrency. There are a variety of techniques for implementing dataflow networks. The techniques described in this chapter involve the use of in-process messaging blocks and asynchronous agents, which are provided by the Asynchronous Agents library.
There are also samples for Visual Studio 2010 to go with the chapters. You can find all of this on project downloads page.
Much of the introductory material is similar to the .NET book, this is intentional. The patterns are the same but how they are implemented using the PPL and Async Agents Library is not.
We’d love to heard your feedback on this draft material. If you have time to read the chapters or look at the code and post comments on the CodePlex site that would be great. All feedback is read and taken into account as we shape the material.