Algorithms and Parallel Computing

  • 5h 26m
  • Fayez Gebali
  • John Wiley & Sons (US)
  • 2011

There is a software gap between parallel computers and programmers' abilities to program such computers. Programming a parallel computer requires closely studying the target algorithm or application, more so than in traditional sequential programming. Today's programmer must be aware of the communication and data dependencies of the algorithm or application; yet, programmers do not have the tools to help them implement an algorithm on a parallel computer platform. This book provides the techniques necessary to explore parallelism in algorithms, serial as well as iterative. It shows how to systematically design special-purpose parallel processing structures to implement algorithms.

The book begins by explaining how to classify an algorithm, and then identifying which technique would be appropriate to implement the application on a parallel platform. It provides techniques for studying and analyzing several types of algorithms—parallel, serial-parallel, non-serial-parallel, and regular iterative algorithms. New techniques for extracting parallelism and controlling thread workload are shown for the first time, such as z-transform, graphic, algebraic, and nonlinear workload specification for the threads. Also featured in the book:

  • A review of algorithms and how to parallelize each algorithm category
  • Ten case studies, detailed in separate chapters, that address implementing parallel algorithms on multithreaded parallel computers and developing special-purpose parallel machines
  • A chapter dedicated to enhancing single processor performance
  • End-of-chapter problems

Algorithms and Parallel Computing is intended for application developers, researchers, and graduate students and seniors in computer engineering, electrical engineering, and computer science. Software developers and major computer manufacturers will also find the material highly beneficial.

About the Author

Fayez Gebali, PhD, has taught at the University of Victoria since 1984 and has served as the Associate Dean of Engineering for undergraduate programs since 2002. He has contributed to dozens of journals and technical reports and has completed four books. Dr. Gebali's primary research interests include VLSI design, processor array design, algorithms for computer arithmetic, and communication system modeling.

In this Book

  • Introduction
  • Enhancing Uniprocessor Performance
  • Parallel Computers
  • Shared-Memory Multiprocessors
  • Interconnection Networks
  • Concurrency Platforms
  • Ad Hoc Techniques for Parallel Algorithms
  • Nonserial–Parallel Algorithms
  • z-Transform Analysis
  • Dependence Graph Analysis
  • Computational Geometry Analysis
  • Case Study: One-Dimensional IIR Digital Filters
  • Case Study: Two- and Three-Dimensional Digital Filters
  • Case Study: Multirate Decimators and Interpolators
  • Case Study: Pattern Matching
  • Case Study: Motion Estimation for Video Compression
  • Case Study: Multiplication Over GF(2m)
  • Case Study: Polynomial Division Over GF(2)
  • The Fast Fourier Transform
  • Solving Systems of Linear Equations
  • Solving Partial Differential Equations Using Finite Difference Method