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.
Contents:
Introduction
Shared-memory Computers (PRAM)
The Hypercube
The Linear Array and the Mesh
Fast Fourier Transform
Tree-based Networks
The Star Network
Optical Transpose Interconnection Systems (OTIS)
Systolic Computations
Readership: Advanced undergraduate and graduate students studying parallel algorithms. Key Features:
Basics in the field of computer science
It contains material not found on any other book on parallel algorithms, especially more recent works published after 2000
It contains solutions to all exercises
Suitable for undergraduate and graduate levels in computer science (currently the text book in a parallel algorithms course at KFUPM)