This document discusses patterns of parallel programming. It begins by explaining why parallel programming is necessary due to limitations of Moore's Law like power consumption and wire delays. It then covers key terms and measures for parallel programming like work, span, speedup and parallelism. Common patterns are overviewed like pipeline, producer-consumer, and Map-Reduce. It warns of dangers like race conditions, deadlocks and starvation. Finally, it provides references for further reading on parallel programming patterns and approaches.