Title: High Performance Computing and the Art of Parallel Programming