Is Parallel Programming Hard, And, If So, What Can You Do About It? - Paul E. McKenney