Parallel processing is a fast-growing technology that dominates many areas of computer science and engineering. This book progresses from theory to computation, exploring the fundamentals of parallelism and the relationship between parallel programming approaches, algorithms, and architectures.. "This book is suitable for advanced undergraduate and first-year graduate students in computer science, as well as researchers in the area.