Programming is now parallel programming. This title describes how to design and implement maintainable and efficient parallel algorithms using a pattern-based approach. It includes examples from realistic contexts that illustrate patterns and themes in parallel algorithm design that are widely applicable regardless of implementation technology.