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

Advertisement

advert image