There is a software gap between the hardware potential and the performance that can be attained using today’s software parallel program development tools. The tools need manual intervention by the programmer to parallelize the code. Programming a parallel computer requires closely studying the target algorithm or application, more so than in the traditional sequential programming we have all learned. The programmer must be aware of the communication and data dependencies of the algorithm or application. This book provides the techniques to explore the possible ways to program a parallel computer for a given application.
From the Back Cover
A balanced overview of the techniques used to design and program parallel computers
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 (solutions and lecture notes are available)
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.
Hardcover: 364 pages
Publisher: Wiley (April 2011)
File Size: 8.1 MiB