Patterns for Parallel Programming (paperback) / Edition 1

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $51.07
Usually ships in 1-2 business days
(Save 27%)
Other sellers (Paperback)
  • All (6) from $51.07   
  • New (5) from $51.05   
  • Used (1) from $55.38   


The Parallel Programming Guide for Every Software Developer

From grids and clusters to next-generation game consoles, parallel computing is going mainstream. Innovations such as Hyper-Threading Technology, HyperTransport Technology, and multicore microprocessors from IBM, Intel, and Sun are accelerating the movement's growth. Only one thing is missing: programmers with the skills to meet the soaring demand for parallel software.

That's where Patterns for Parallel Programming comes in. It's the first parallel programming guide written specifically to serve working software developers, not just computer scientists. The authors introduce a complete, highly accessible pattern language that will help any experienced developer "think parallel"-and start writing effective parallel code almost immediately. Instead of formal theory, they deliver proven solutions to the challenges faced by parallel programmers, and pragmatic guidance for using today's parallel APIs in the real world. Coverage includes:

  • Understanding the parallel computing landscape and the challenges faced by parallel developers
  • Finding the concurrency in a software design problem and decomposing it into concurrent tasks
  • Managing the use of data across tasks
  • Creating an algorithm structure that effectively exploits the concurrency you've identified
  • Connecting your algorithmic structures to the APIs needed to implement them
  • Specific software constructs for implementing parallel programs
  • Working with today's leading parallel programming environments: OpenMP, MPI, and Java

Patterns have helped thousands of programmers master object-oriented development and other complex programming technologies. With this book, you will learn that they're the best way to master parallel programming too.


Read More Show Less

Product Details

  • ISBN-13: 9780321940780
  • Publisher: Addison-Wesley
  • Publication date: 6/20/2013
  • Series: Software Patterns Series
  • Edition number: 1
  • Pages: 384
  • Product dimensions: 6.90 (w) x 9.10 (h) x 0.90 (d)

Meet the Author

Timothy G. Mattson is Intel's industry manager for life sciences. His research focuses on technologies that simplify parallel computing for general programmers, with an emphasis on computational biology. He holds a Ph.D. in chemistry from the University of California, Santa Cruz.

Beverly A. Sanders is associate professor at the Department of Computer and Information Science and Engineering, University of Florida, Gainesville. Her research focuses on techniques to help programmers construct high-quality, correct programs, including formal methods, component systems, and design patterns. She holds a Ph.D. in applied mathematics from Harvard University.

Berna L. Massingill is assistant professor in the Department of Computer Science at Trinity University, San Antonio, Texas. Her research interests include parallel and distributed computing, design patterns, and formal methods. She holds a Ph.D. in computer science from the California Institute of Technology.


Read More Show Less

Table of Contents


1. A Pattern Language for Parallel Programming.


Parallel Programming.

Design Patterns and Pattern Languages.

A Pattern Language for Parallel Programming.

2. Background and Jargon of Parallel Computing.

Concurrency in Parallel Programs Versus Operating Systems.

Parallel Architectures: A Brief Introduction.

Parallel Programming Environments.

The Jargon of Parallel Computing.

A Quantitative Look at Parallel Computation.



3. The Finding Concurrency Design Space.

About the Design Space.

The Task Decomposition Pattern.

The Data Decomposition Pattern.

The Group Tasks Pattern.

The Order Tasks Pattern.

The Data Sharing Pattern.

The Design Evaluation Pattern.


4. The Algorithm Structure Design Space.


Choosing an Algorithm Structure Pattern.


The Task Parallelism Pattern.

The Divide and Conquer Pattern.

The Geometric Decomposition Pattern.

The Recursive Data Pattern.

The Pipeline Pattern.

The Event-Based Coordination Pattern.

5. The Supporting Structures Design Space.



Choosing the Patterns.

The SPMD Pattern.

The Master/Worker Pattern.

The Loop Parallelism Pattern.

The Fork/Join Pattern.

The Shared Data Pattern.

The Shared Queue Pattern.

The Distributed Array Pattern.

Other Supporting Structures.

6. The Implementation Mechanisms Design Space.


UE Management.



Appendix A. A Brief Introduction to OpenMP.

Appendix B. A Brief Introduction to MPI.

Appendix C. A Brief Introduction to Concurrent Programming in Java.



About the Authors.


Read More Show Less

Customer Reviews

Average Rating 3
( 3 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 3 Customer Reviews
  • Anonymous

    Posted December 30, 2004

    a pattern language

    This book tries to do for parallel programming what the seminal Gang of Four book did for sequential programming. While it remains to be seen if Mattson, Sanders and Massingill will succeed, their book serves a vital educational role. Until the 90s, parallel programming was relatively rare. But as hardware continued to get cheaper, many practical uses emerged. The authors point out that the bottleneck has now shifted to software. How does one find concurrency in a design? And given this, how to code it? The book tackles both issues. The latter is treated by explaining how to use MPI, OpenMP and Java for parallel coding. Where MPI and OpenMP were expressly made for this task. And with Java, the book discusses its concurrency classes and how these can be applied to parallel problems. The former issue of somehow finding concurrency is harder. This is really a wetware issue. You are the wetware. The book's core value is in showing common parallel patterns, that distills the essence of much previous work in the field. Plus, the book is not just iterating through a list of such patterns. As with the GoF, we have a pattern language. A metalevel, in which a walkthrough of the patterns and comparing these with your problem, helps you find appropriate patterns to map it to.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted June 20, 2009

    No text was provided for this review.

  • Anonymous

    Posted December 10, 2009

    No text was provided for this review.

Sort by: Showing all of 3 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)