This book is an introduction to the field of parallel algorithms and the
underpinning techniques to realize the parallelization. The emphasis is
on designing algorithms within the timeless and abstracted context of a
high-level programming language. The focus of the presentation is on
practical applications of the algorithm design using different models of
parallel computation. Each model is illustrated by providing an adequate
number of algorithms to solve some problems that quite often arise in
many applications in science and engineering.
The book is largely self-contained, presuming no special knowledge of
parallel computers or particular mathematics. In addition, the solutions
to all exercises are included at the end of each chapter.
The book is intended as a text in the field of the design and analysis
of parallel algorithms. It includes adequate material for a course in
parallel algorithms at both undergraduate and graduate levels.