Patterns for Parallel Programming
Timothy G. Mattson
Beverly A. Sanders
Berna L. Massingill

ISBN-10: 0321228111
ISBN-13: 9780321228116

Publisher: Addison-Wesley Professional
Copyright: 2005
Format: Cloth; 384 pp
Published: 09/15/2004

Suggested retail price: $54.99
Buy from myPearsonStore

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

This book uses a patterns approach to help software engineers master the challenges of writing software to run on parallel computers.

  • Parallel computing is not a new term, but increased desktop processor power and the advent of grid computing have brought it into greater attention recently
  • Helps IT departments better leverage company resources
  • A catalog of proven solutions to recurring problems faced by parallel programmers

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.

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

View a Sample Chapter PDF:

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.

This title is a member of the Software Patterns Series, which also contains the titles below . You can also visit the Software Patterns Series page.

  • 0321247140Design Patterns Explained: A New Perspective on Object-Oriented Design, 2/E
    Shalloway & Trott
    © 2005 | Addison-Wesley Professional | Paper; 480 pages | Instock
    ISBN-10: 0321247140 | ISBN-13: 9780321247148
    Brief Description | Buy from myPearsonStore

  • 0201743973Design Patterns Java™ Workbook
    Metsker
    © 2002 | Addison-Wesley Professional | Paper; 496 pages | Instock
    ISBN-10: 0201743973 | ISBN-13: 9780201743975
    Brief Description | Buy from myPearsonStore

  • 0201184621The Design Patterns Smalltalk Companion
    Alpert, Brown & Woolf
    © 1998 | Addison-Wesley Professional | Paper; 464 pages | Instock
    ISBN-10: 0201184621 | ISBN-13: 9780201184624
    Brief Description | Buy from myPearsonStore

  • 0321126971Design Patterns in C#
    Metsker
    © 2004 | Addison-Wesley Professional | Cloth; 480 pages | Instock
    ISBN-10: 0321126971 | ISBN-13: 9780321126979
    Brief Description | Buy from myPearsonStore

  • 0321333020Design Patterns in Java™, 2/E
    Metsker & Wake
    © 2006 | Addison-Wesley Professional | Cloth; 480 pages | Instock
    ISBN-10: 0321333020 | ISBN-13: 9780321333025
    Buy from myPearsonStore

  • 0321630483Design Patterns in Java™, Safari, 2/E
    Metsker & Wake
    © 2006 | Addison-Wesley Professional | On-line Supplement; 480 pages | Estimated Availability: 06/15/2009
    ISBN-10: 0321630483 | ISBN-13: 9780321630483
    URL: http://safari.informit.com


  • 0201432935Pattern Hatching: Design Patterns Applied
    Vlissides
    © 1998 | Addison-Wesley Professional | Paper; 192 pages | Instock
    ISBN-10: 0201432935 | ISBN-13: 9780201432930
    Brief Description | Buy from myPearsonStore

  • 0321228111Patterns for Parallel Programming
    Mattson, Sanders & Massingill
    © 2005 | Addison-Wesley Professional | Cloth; 384 pages | Instock
    ISBN-10: 0321228111 | ISBN-13: 9780321228116
    Buy from myPearsonStore

  • 0201741172Software Configuration Management Patterns: Effective Teamwork, Practical Integration
    Berczuk & Appleton
    © 2003 | Addison-Wesley Professional | Paper; 256 pages | Instock
    ISBN-10: 0201741172 | ISBN-13: 9780201741179
    Buy from myPearsonStore

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.


Copyright ©2008 Pearson Education. All rights reserved. Legal Notice | Privacy Policy | Permissions