Elements of Parallel Computing, by Eric Aubanel, CRC Press
The book takes a new approach to teaching introductory parallel computing at the advanced undergraduate or beginning graduate level. It focuses on the key algorithmic and programming structures that parallel programmers need to know. It takes a language-neutral approach, therefore it can be used to support instruction in many parallel languages. Dr. Aubanel says “I’m currently using it in my combined 4th year undergraduate/graduate class, along with instruction in Cilk Plus, OpenMP, CUDA, and MPI”.