×

Uh-oh, it looks like your Internet Explorer is out of date.

For a better shopping experience, please upgrade now.

A Parallel Programming with Microsoft Visual C++: Design Patterns for Decomposition and Coordination on Multicore Architectures
     

A Parallel Programming with Microsoft Visual C++: Design Patterns for Decomposition and Coordination on Multicore Architectures

by Colin Campbell, Ade Miller, Stephen Toub
 

Your CPU meter shows a 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. Is there a way to get better performance?

The answer, in a nutshell, is parallel programming. Where you once would have written the kind of

Overview

Your CPU meter shows a 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. Is there a way to get better performance?

The answer, in a nutshell, is parallel programming. Where you once would have written the kind of sequential code that is familiar to all programmers, you now find that this no longer meets your performance goals. To use your system’s CPU resources efficiently, you need to split your application into pieces that can run at the same time. Of course, this is easier said than done. Parallel programming has a reputation for being the domain of experts and a minefield of subtle, hard-to-reproduce software defects. Everyone seems to have a favorite story about a parallel program that did not behave as expected because of a mysterious bug.

These stories should inspire a healthy respect for the difficulty of the problems you will face in writing your own parallel programs. Fortunately, help has arrived. The Parallel Patterns Library (PPL) and the Asynchronous Agents Library introduce a new programming model for parallelism that significantly simplifies the job. Behind the scenes are sophisticated algorithms that dynamically distribute computations on multicore architectures. In addition, Microsoft® Visual Studio® 2010 development system includes debugging and analysis tools to support the new parallel programming model.

Proven design patterns are another source of help. This guide introduces you to the most important and frequently used patterns of parallel programming and provides executable code samples for them, using PPL. When thinking about where to begin, a good place to start is to review the patterns in this book. See if your problem has any attributes that match the six patterns presented in the following chapters. If it does, delve more deeply into the relevant pattern or patterns and study the sample code.

Product Details

ISBN-13:
9780735651753
Publisher:
Microsoft Press
Publication date:
04/19/2011
Pages:
208
Product dimensions:
7.30(w) x 8.90(h) x 0.70(d)

Meet the Author

Colin Campbell is a coauthor of Model-Based Software Testing and Analysis in C# and he has written several academic papers on mathematically rigorous approaches to software analysis. He is a founder and principal at Modeled Computation LLC, in Seattle.

http://www.oreillynet.com/pub/au/4610

Ade Miller is currently a Principal Program Manager for Dryad and DryadLINQ a set of technologies that support data-intensive computing applications running on a Windows HPC Server 2008 R2 cluster. Previously he was the Development Lead for Microsoft’s patterns & practices group (p&p) where he managed p&p’s agile development teams. His primary interests are parallel computing and in engineering leadership to improve the way people develop software.

He is one of the authors of Parallel Programming with Microsoft .NET and Parallel Programming with Microsoft Visual C++. Ade also writes and speaksabout parallel computing and his experiences with agile software development at Microsoft and elsewhere.

Prior to leading the p&p development team Ade lead the development of the p&p Web Services Software Factory. He was a developer and then a Development Lead on Visual Studio Tools for Office 2005 and 2008. Before joining Microsoft Ade worked on a variety of interesting projects including a web start-up, embedded languages, and High Performance Computing (HPC). Ade received his BSc and PhD in Physics from the University of Southampton, UK.

http://www.oreillynet.com/pub/au/4612

Customer Reviews

Average Review:

Post to your social network

     

Most Helpful Customer Reviews

See all customer reviews