Part Foundations Why Do We Need Parallel Programming Overview of Parallel Systems Part Programming Programming Multi-Core and Shared Memory Multiprocessors Using OpenMP MPI Processes and Messaging OpenCL for Massively Parallel Graphic Processors Part Engineering Parallel Computation of the Number π Parallel Solution of 1-D Heat Equation Parallel Implementation of Seam Carving Final Remarks and Perspectives Appendix Hints for Making Your Computer a Parallel Machine