Freshly Printed - allow 10 days lead
Structured Parallel Programming
Patterns for Efficient Computation
The simplest way for developers to learn patterns for high-performance parallel programming
Michael McCool (Author), James Reinders (Author), Arch Robison (Author)
9780124159938, Elsevier Science
Paperback, published 31 July 2012
432 pages
23.4 x 19 x 2.7 cm, 0.87 kg
"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
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.
1. Introduction 2. Map 3. Collectives 4. Data reorganization 5. Fork-join 6. Examples 7. Further Reading
Subject Areas: Parallel processing [UYFP], Software Engineering [UMZ], Computer programming / software development [UM]