An Introduction to Parallel Programming by Peter Pacheco & Peter S. Pacheco