Structured Parallel Programming: Patterns for Efficient Computation by von Michael McCool, James Reinders, Arch D. Robison
It introduces some important parallel patters, explains what makes them tick and how to make them efficient. The book makes a strong case for using parallel frameworks, namely TBB and Cilk+ to create general and portable solutions.
There's also a set of slide available, - http://ipcc.cs.uoregon.edu/curriculum.html