1. Why parallel computing 2. Parallel hardware and parallel software 3. Distributed memory programming with MPI 4. Shared-memory programming with Pthreads 5. Shared-memory programming with OpenMP 6. GPU programming with CUDA 7. Parallel program development 8. Where to go from here