Title Parallel Programming with Microsoft .NET: Design Patterns for Decomposition and Coordination on Multicore Architectures

Author(s) Colin Campbell, Ralph Johnson, Ade Miller and Stephen Toub

Publisher: Microsoft Press; 1 edition (August 31, 2010)

Paperback 224 pages

ebook Online, HTML

Language: English

ISBN-10: 0735651590 (eBook: 0-7356-5162-0)

ISBN-13: 978-0735651593 (eBook: 978-0-7356-5162-3)

Share This:

Book Description

This book introduces design patterns for Decomposition and Coordination on Multicore Architectures. It describes parallelism within a single multicore node with shared memory instead of the cluster, High Performance Computing (HPC) Server approach that uses networked nodes with distributed memory.

It shows C# and VB.NET programmers how to effectively take advantage of the multicore capabilities of modern PCs using the Microsoft platform. 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 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. 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.

Examples of these patterns are parallel loops, parallel tasks and data aggregation with map-reduce. Each pattern has its own chapter. Each chapter includes a description of the problem, an example of where the pattern is applicable, and code that implements the solution.

This book focuses more on processor-bound workloads than on I/O-bound workloads. The goal is to make computationally intensive applications run faster by making better use of the computer's available cores.

About the Authors

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.

Ade Miller works as a Development Lead with Microsoft’s patterns & practices group, where he manages several agile teams who deliver applied engineering guidance to Microsoft’s customers. His primary interests are in parallel computing and agile software development practices.

Ralph Johnson is a research associate professor at the University of Illinois. He was one of the four co-authors of Design Patterns, and the leader of the group that developed the first automated refactoring tool, the Smalltalk Refactoring Browser. For the past few years, he has been working on documenting patterns of parallel programming.