Book description
Structured Parallel Programming offers the simplest way for developers to learn patterns for high-performance parallel programming. Written by parallel computing experts and industry insiders Michael McCool, Arch Robison, and James Reinders, this book explains how to design and implement maintainable and efficient parallel algorithms using a composable, structured, scalable, and machine-independent approach to parallel computing. It presents both theory and practice, and provides detailed concrete examples using multiple programming models.
The examples in this book are presented 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.
Software developers, computer programmers, and software architects will find this book extremely helpful.
- 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
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Listings
- Preface
- Preliminaries
- Chapter 1. Introduction
- Chapter 2. Background
-
PART I. Patterns
- Chapter 3. Patterns
- Chapter 4. Map
- Chapter 5. Collectives
- Chapter 6. Data Reorganization
- Chapter 7. Stencil and Recurrence
-
Chapter 8. Fork–Join
- 8.1 Definition
- 8.2 Programming Model Support for Fork–Join
- 8.3 Recursive Implementation of Map
- 8.4 Choosing Base Cases
- 8.5 Load Balancing
- 8.6 Complexity of Parallel Divide-and-Conquer
- 8.7 Karatsuba Multiplication of Polynomials
- 8.8 Cache Locality and Cache-Oblivious Algorithms
- 8.9 Quicksort
- 8.10 Reductions and Hyperobjects
- 8.11 Implementing Scan with Fork–Join
- 8.12 Applying Fork–Join to Recurrences
- 8.13 Summary
- Chapter 9. Pipeline
- PART II. Examples
- APPENDIX A. Further Reading
- APPENDIX B. Cilk Plus
- APPENDIX C. TBB
- APPENDIX D. C++11
- APPENDIX E. Glossary
- Bibliography
- Index
Product information
- Title: Structured Parallel Programming
- Author(s):
- Release date: July 2012
- Publisher(s): Morgan Kaufmann
- ISBN: 9780123914439
You might also like
book
Patterns for Parallel Programming
The Parallel Programming Guide for Every Software Developer From grids and clusters to next-generation game consoles, …
book
Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++ provides an up-close look at how to build software that …
book
Fundamentals of Parallel Multicore Architecture
Although multicore is now a mainstream architecture, there are few textbooks that cover parallel multicore architectures. …
book
Programming Massively Parallel Processors, 3rd Edition
Programming Massively Parallel Processors: A Hands-on Approach, Third Edition shows both student and professional alike the …