Numerical Computing with Python:

Making Sense of Parallel Computing