Structured Parallel Programming
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.
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
Chapter 1. Introduction
Chapter 2. Background
Part I: Patterns
Chapter 3. Patterns
Chapter 4. Map
Chapter 5. Collectives
Chapter 6. Data Reorganization
Chapter 7. Fork-Join
Chapter 8. Pipeline
Part II: Examples
Chapter 9. Forward Seismic Simulation
Chapter 10. K-Means Clustering
Chapter 11. Bzip2 Data Compression
Chapter 12. Merge Sort
Chapter 13. Sample Sort
Chapter 14. Cholesky Factorization
Part III: Appendices
Appendix A. Further Reading
Appendix B. Cilk Plus
Appendix C. TBB
Appendix D. C++11
Appendix E. Glossary
Book Details
Paperback: 432 pages
Publisher: Morgan Kaufmann (June 2012)
Language: English
ISBN-10: 0124159931
ISBN-13: 978-0124159938