BN.com Gift Guide

Structured Parallel Programming: Patterns for Efficient Computation

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $42.66
Usually ships in 1-2 business days
(Save 28%)
Other sellers (Paperback)
  • All (8) from $42.66   
  • New (6) from $42.66   
  • Used (2) from $46.75   

Overview

Programming is now parallel programming. Much as structured programming revolutionized traditional serial programming decades ago, a new kind of structured programming, based on patterns, is relevant to parallel programming today. Parallel computing experts and industry insiders Michael McCool, Arch Robison, and James Reinders describe how to design and implement maintainable and efficient parallel algorithms using a pattern-based approach. They present both theory and practice, and give detailed concrete examples using multiple programming models. Examples are primarily given using two of the most popular and cutting edge programming models for parallel programming: Threading Building Blocks, and Cilk Plus. These architecture-independent models enable easy integration into existing applications, preserve investments in existing code, and speed the development of parallel applications. Examples from realistic contexts illustrate patterns and themes in parallel algorithm design that are widely applicable regardless of implementation technology.

  • The patterns-based approach offers structure and insight that developers can apply to a variety of parallel programming models
  • Develops a composable, structured, scalable, and machine-independent approach to parallel computing
  • Includes detailed examples in both Cilk Plus and the latest Threading Building Blocks, which support a wide variety of computers
Read More Show Less

Editorial Reviews

From the Publisher

"I've been dreaming for a while of a modern accessible book that I could recommend to my threading-deprived colleagues and assorted enquirers to get them up to speed with the core concepts of multithreading as well as something that covers all the major current interesting implementations. Finally I have that book."

— Martin Watt, Principal Engineer, Dreamworks Animation

Read More Show Less

Product Details

  • ISBN-13: 9780124159938
  • Publisher: Elsevier Science
  • Publication date: 7/9/2012
  • Pages: 432
  • Sales rank: 459,499
  • Product dimensions: 7.54 (w) x 9.06 (h) x 1.02 (d)

Meet the Author

Michael McCool has research and application experience in the areas of data mining, computer graphics (specifically sampling, rasterization, texture hardware, antialiasing,shading, illumination, and visualization), medical imaging, signal and image processing, financial analysis,and languages and programming platforms for high productivity parallel computing. In order to commercialize research work into many-core computing platforms done while he was a professor at the University of Waterloo,in 2004 he co-founded RapidMind, which in 2009 was acquired by Intel. Currently he is a Software Architect with Intel working on Array Building Blocks and an Adjunct Associate Professor with the University of Waterloo. In addition to his university teaching, he has presented tutorials at Eurographics, SIGGRAPH, and SC on graphics and/or parallel computing.

James Reinders is involved in multiple engineering, research and educational efforts to increase use of parallel programming throughout the industry. James has contributed to numerous projects including the world's first TeraFLOP/s supercomputer (ASCI Red) and the world's first TeraFLOP/s microprocessor (Intel® Xeon Phi™ coprocessor). James has authored numerous technical books, including three other books currently in print: Structured Parallel Programming (Morgan Kaufmann, 2012), Intel® Xeon Phi™ Coprocessor High Performance Programming (Morgan Kaufmann, 2013), and Multithreading for Visual Effects (2014).

Arch Robison is the architect of Threading Building Blocks.He was the lead developer for KAI C++, which established the state of the art for C++ optimization in the ‘90s. He has 12 software patents, 3 award winning entries in the International Obfuscated C Code Contest, and an Erdös number of 3. He is also the (uncredited) author of the TBB Tutorial and Design Patterns documents, as well as most of the TBB Reference manual, and wrote a chapter of the Intel Multi-core Programming book. He has presented TBB tutorials at OSCON, PADTAD, and HPCC07, and invited talks on TBB at LCPC, Texas A&M, U. Maryland, Indiana U., MIT, and UIUC. Finally, he has presented short classes (three 75 minute sessions) on parallel programming at UIUC.

Read More Show Less

Table of Contents

1. Introduction

2. Map

3. Collectives

4. Data reorganization

5. Fork-join

6. Examples

7. Further Reading

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com 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 & Noble.com 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 & Noble.com 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 BN.com 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

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com 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 BN.com. 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 1 Customer Reviews
  • Posted October 21, 2012

    VERY HIGHLY RECOMMENDED PARALLEL PROGRAMMING COMPUTATIONS!!

    Are you a parallel programmer? If you are, then this book is for you! Authors Michael McCool, James Reinders and Arch Robison, have done an outstanding job of writing a book that illustrates the essential strategies that are needed for writing efficient, scalable programs that use a set of patterns. McCool, Reinders and Robinson, begin by discussing why it is necessary to Think Parallel; and, to present recent hardware trends that have lead to the need for explicit parallel programming. In addition, the authors cover background material applicable to most forms of parallel programming, including a review of relevant computer architecture and performance analysis topics. Next, they focus on patterns that lead to well-structured, maintainable, and efficient programs. The authors then, introduce the map pattern, which describes embarrassing parallelism: Parallel computation on a set of completely independent operations. They continue by discussing the collective reduce, scan patterns and various options for their implementation; and, then give some simple examples of their use. In addition, the authors present data reorganization patterns and discuss important issues around data layout. Next, they discuss a special case of the map pattern, the stencil pattern, which has a regular data access pattern. The authors then, describe the fork-join pattern and give several examples, including its use to implement other patterns, such as map, reduce, recurrence, and scan. They continue by covering a simple pipeline model embodied in the TBB parallel_pipeline template. In addition, the authors discuss the reflection seismology survey, which consists of collecting data in the field and processing it to generate a subsurface image. Next, they describe the k-means algorithm, which is a way of finding clusters in a dataset. The authors then, show you how the bzip2 program partitions a file into blocks and compresses each one separately. They continue by showing you how in a merge sort, a serial merge takes time 0(N). In addition, the authors show you how the sample sort example demonstrates a partitioning-based sort that overcomes the scaling limitation of Quicksort; which arose, because Quicksort’s partitioning operation is serial. Finally, they give a brief introduction to the art of using Fortran-oriented BLAS routines in C/C++. This most excellent book supports teaching parallel programming in any programming class using C or C++, or as a focused topic in a semester-long class. Perhaps more importantly, this great book purposely approaches parallel programming from a programmer’s point of view without relying on an overly detailed examination or prior knowledge of parallel computer architecture.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

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