Download free PDF of “Programming on Parallel Machines: GPU, Multicore, Clusters and More” by Norm Matloff, a professor of computer science at the University of California at Davis. It is assumed that the student is reasonably adept in programming, and has math background through linear algebra.
Why is this book dierentt from all other parallel programming books? It is aimed more on the practical end of things, in that:
- There is very little theoretical content, such as O() analysis, maximum theoretical speedup, PRAMs, directed acyclic graphs (DAGs) and so on.
- Real code is featured throughout.
- We use the main parallel platforms|OpenMP, CUDA and MPI|rather than languages that at this stage are largely experimental, such as the elegant-but-not-yet-mainstream Cilk.
- The running performance themes|communications latency, memory/network contention, load balancing and so on|are interleaved throughout the book, discussed in the context of specic platforms or applications.
- Considerable attention is paid to techniques for debugging.
The main programming language used is C (C++ if you prefer), but some of the code is in R, the dominant language is the statistics/data mining worlds. The reasons for including R are given at the beginning of Chapter 10, and a quick introduction to the language is provided. Some material on parallel Python is introduced as well.
Table of Contents
- Introduction to Parallel Processing
- Recurring Performance Issues
- Shared Memory Parallelism
- Introduction to OpenMP
- Introduction to GPU Programming with CUDA
- Introduction to Thrust Programming
- Message Passing Systems
- Introduction to MPI
- Cloud Computing
- Introduction to Parallel R
- The Parallel Prefix Problem
- Introduction to Parallel Matrix Operations
- Introduction to Parallel Sorting
- Parallel Computation for Audio and Image Processing
- Parallel Computation in Statistics/Data Mining
- Parallel Python Threads and Multiprocessing Modules
File size: 2.55 MB
Number of pages: 410