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
Clean Code: A Handbook of Agile Software Craftsmanship
Even bad code can function. But if code isn't clean, it can bring a development organization …
book
Head First Design Patterns, 2nd Edition
You know you don’t want to reinvent the wheel, so you look to design patterns—the lessons …
book
Topics in Parallel and Distributed Computing
Topics in Parallel and Distributed Computing provides resources and guidance for those learning PDC as well …
book
Classic Computer Science Problems in Python
Classic Computer Science Problems in Python sharpens your CS problem-solving skills with time-tested scenarios, exercises, and …