Structured Parallel Programming
Patterns for Efficient Computation
By- Michael McCool, Software Architect, Intel Corporation
- James Reinders, Director, Chief Evangelist, Intel Software, Intel Corporation
- Arch Robison, Senior Principal Engineer, Intel Corporation
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.
Paperback, 432 Pages
Published: June 2012
Imprint: Morgan Kaufmann
ISBN: 978-0-12-415993-8
Contents
- 1 Introduction
2 Background
Part I: Patterns
3 Patterns
4 Map
5 Collectives
6 Data Reorganization
7 Fork-Join
8 Pipeline
Part II: Examples
9 Forward Seismic Simulation
10 K-Means Clustering
11 Bzip2 Data Compression
12 Merge Sort
13 Sample Sort
14 Cholesky Factorization
Part III: Appendices
A Further Reading
B Cilk Plus
C TBB
D C++11
E Glossary

