Is Parallel Programming Hard, And, If So, What Can You Do About It?

Is Parallel Programming Hard, And, If So, What Can You Do About It?” is a free book written by Paul E. McKenney from the Linux Technology Center IBM Beaverton, and covered by the terms of the Creative Commons Attribution-Share Alike 3.0 United States license.

As stated by the book’s author, this book focuses on shared-memory parallel programming, with an emphasis on software that lives near the bottom of the software stack, such as operating-system kernels, parallel data-management systems, low-level libraries, and the like.
The programming language used by this book is C.

The latest PDF versions (two columns and single column) are available here.
You can also browse its public git tree code and why not, contribute to this project by creating some patches or pull requests.