Structured Parallel Programming book cover

Structured Parallel Programming

Patterns for Efficient Computation

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.


Software Developers, Computer Programmers, Software Architects

Paperback, 432 Pages

Published: June 2012

Imprint: Morgan Kaufmann

ISBN: 978-0-12-415993-8


  • "I've been dreaming for a while of a modern accessible book that I could recommend to my threading-deprived colleagues and assorted enquirers to get them up to speed with the core concepts of multithreading as well as something that covers all the major current interesting implementations. Finally I have that book."

    - Martin Watt, Principal Engineer, Dreamworks Animation


  • 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


advert image