Home > Store > Programming > Web Services/ XML/ SOA/ WebSphere/ WCF

larger cover

Add To My Wish List

Patterns for Parallel Programming

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Extras
  • Reviews
  • Sample Content

Product Author Bios

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.



0321228111AB08232004

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.



0321228111B08232004

Customer Reviews

37 of 38 people found the following review helpful
4.0 out of 5 stars A good start, October 8, 2006
By 
wiredweird "wiredweird" (Earth, or somewhere nearby) - See all my reviews
(HALL OF FAME REVIEWER)    (TOP 500 REVIEWER)   
This review is from: Patterns for Parallel Programming (Hardcover)
Parallel programming has been around for years, in many different forms. It has usually been a specialty for supercomputing number crunchers and for the occasional OS geek. Now that traditional, single-processor solutions are hitting the wall, Moore's Law must grow in new directions: multithreaded processos, multi-cores, multi-processors, and wilder exotica. The hardware is entering the market now, and the software community is scrambling to develop the necessry skills for parallel program development. This book gives a fair introduction to a large range of the techniques available.

After getting the reader oriented to the basics of parallel programming, the authors lay out four "design spaces," or families of related patterns. Within each space, the authors present a handful of patterns using a common and reasonably familiar format: name, problem addressed, context, forces acting on the design, the solution, and examples of the pattern's usage. They identify spaces named... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


28 of 30 people found the following review helpful
5.0 out of 5 stars Good book for parallel computing, November 23, 2005
By 
Michael Entin "Mike" (Seattle, WA USA) - See all my reviews
(REAL NAME)   
This review is from: Patterns for Parallel Programming (Hardcover)
This is an excellent introduction to parallel computing. It presents patterns for discovering what can be parallized, what data structures can be used, how to choose algorithms. Patterns are demonstrated by good examples showing benefits and trade-offs of different solutions. There is also a brief, but very useful introduction to common implementations: OpenMP, MPI, and regular procedural approach demonstrated with Java.

Some caution about what this book is not: this is not a general parallel programming designand patterns book (as I expected from the title). The focus of this book is parallel computing (i.e. scalable _calculations_, often scientific). There is somewhat more to parallel _programming_ than this book covers.

Still, I found this book very good and useful, even though I expected broader coverage.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


11 of 13 people found the following review helpful
4.0 out of 5 stars Easy to read and useful content, October 20, 2007
This review is from: Patterns for Parallel Programming (Hardcover)
Normally design pattern books are things that you dip into rather than read end to end, simply because they can be very dry reading. Not this one - as long as you have an interest in parallel programming, reading this end to end should be easy. But that's not to say that you couldn't just dip in to the bits that are most applicable to your work - I'm sure you could.

Many of the examples given of where each pattern is used are in industry sectors other than where I work, but with such good descriptions of each pattern it is easy to picture where they are used other than the examples given and to identify where you have used them yourself without previously knowing that you were using a "named" pattern even if you have been doing it that way for years.

Much of the material in this book is stuff that is hard to find elsewhere. I've heard bits of it at Intel seminars or touched on in Intel books (e.g. the Threading Building Blocks book), but otherwise have not seen... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 7 customer reviews...

Online Sample Chapter

The Algorithm Structure Design Space in Parallel Programming

Table of Contents

Preface.

1. A Pattern Language for Parallel Programming.

    Introduction.

    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.

    Communication.

    Summary.

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.

    Summary.

4. The Algorithm Structure Design Space.

    Introduction.

    Choosing an Algorithm Structure Pattern.

    Examples.

    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.

    Introduction.

    Forces.

    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.

    Overview.

    UE Management.

    Synchronization.

    Communication.

Appendix A. A Brief Introduction to OpenMP.

Appendix B. A Brief Introduction to MPI.

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

Glossary.

Bibliography.

About the Authors.

Index.

Downloadable Sample Chapter

Download the Sample Chapter related to this title.

Index

Download the Index file related to this title.

 
Best Value

Book + eBook Bundle  $116.98  $70.19

Book Price $51.99
eBook Price $18.20
eBook formats included

Buy

This book includes free shipping!

Buy

Book  $64.99  $51.99

Usually ships in 24 hours.

This book includes free shipping!

Buy

eBook (Watermarked)  $51.99  $41.59

Includes EPUB, MOBI, and PDF
About eBook Formats

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.