Programming Massively Parallel Processors,
Edition 4 A Hands-on Approach
By Wen-mei W. Hwu, David B. Kirk and Izzat El Hajj, Ph.D.

Publication Date: 04 Aug 2022

Programming Massively Parallel Processors: A Hands-on Approach shows both students and professionals alike the basic concepts of parallel programming and GPU architecture. Concise, intuitive, and practical, it is based on years of road-testing in the authors' own parallel computing courses. Various techniques for constructing and optimizing parallel programs are explored in detail, while case studies demonstrate the development process, which begins with computational thinking and ends with effective and efficient parallel programs. The new edition includes updated coverage of CUDA, including the newer libraries such as CuDNN. New chapters on frequently used parallel patterns have been added, and case studies have been updated to reflect current industry practices.

Key Features

  • Parallel Patterns Introduces new chapters on frequently used parallel patterns (stencil, reduction, sorting) and major improvements to previous chapters (convolution, histogram, sparse matrices, graph traversal, deep learning)
  • Ampere Includes a new chapter focused on GPU architecture and draws examples from recent architecture generations, including Ampere
  • Systematic Approach Incorporates major improvements to abstract discussions of problem decomposition strategies and performance considerations, with a new optimization checklist
About the author
By Wen-mei W. Hwu, CTO, MulticoreWare and professor specializing in compiler design, computer architecture, microarchitecture, and parallel processing, University of Illinois at Urbana-Champaign, USA; David B. Kirk, NVIDIA Fellow and Izzat El Hajj, Ph.D., Assistant Professor, Department of Computer Science, American University of Beirut, Lebanon
Table of Contents

1 Introduction
Part I Fundamental Concepts
2 Heterogeneous data parallel computing
3 Multidimensional grids and data
4 Compute architecture and scheduling
5 Memory architecture and data locality
6 Performance considerations
Part II Parallel Patterns
7 Convolution: An introduction to constant memory and caching
8 Stencil
9 Parallel histogram
10 Reduction And minimizing divergence
11 Prefix sum (scan)
12 Merge: An introduction to dynamic input data identification
Part III Advanced patterns and applications
13 Sorting
14 Sparse matrix computation
15 Graph traversal
16 Deep learning
17 Iterative magnetic resonance imaging reconstruction
18 Electrostatic potential map
19 Parallel programming and computational thinking
Part IV Advanced Practices
20 Programming a heterogeneous computing cluster: An introduction to CUDA streams
21 CUDA dynamic parallelism
22 Advanced practices and future evolution
23 Conclusion and outlook
Appendix A: Numerical considerations

Book details
ISBN: 9780323912310
Page Count: 580
Illustrations : Approx. 340 illustrations
Retail Price : £68.95
9780123742605; 9780123973375; 9780124171374; 9780124201583
Instructor Resources
Upper level through grad level students studying parallel computing within computer science or engineering
T Tamer Abdelkader
people find this review helpful
T Thomas Campus
people find this review helpful
P Pablo Quesada Barriuso
people find this review helpful