This book is approapriate for upper undergraduate/graduate courses in parallel processing, parallel computing or parallel algorithms, offered in Computer Science or Computer Engineering departments. Prerequisites include computer architecture and analysis of algorithms. This book familiarizes readers with classical results in the theory of parallel computing and provides practical insights into implementing parallel algorithms on actual parallel machines...