|Introduction to Parallel Computing||
Introduction to Parallel Computing
Introduction to Parallel Computing provides an in-depth look at techniques for the design and analysis of parallel algorithms and for programming these algorithms on commercially available parallel platforms. The book discusses principles of parallel algorithm design and different parallel programming models with extensive coverage of MPI, POSIX threads, and OpenMP. It provides a broad and balanced coverage of various core topics such as sorting, graph algorithms, discrete optimization techniques, data-mining algorithms, and a number of algorithms used in numerical and scientific computing applications. The basic approach advocated in this text is one of portable parallel algorithm and software development, an empahsis lacking in all existing textbooks on parallel computing. To enhance the pedagogical value of the text, extensive examples, diagrams, exercises of varying degrees of difficulty, and bibliographical remarks are provided. In addition to serving as a textbook and a reference source for professionals and parallel software developers, the book will help students and researchers in non computer-science disciplines who need to solve computation-intensive problems using parallel computers.
PART I: BASICS1. Parallel Programming Platforms2. Principles of Parallel Algorithm Design3. Analytical Modeling of Parallel Programs4. Basic Communication OperationsPART II: PARALLEL PROGRAMMING5. Parallel Programming Paradigms6. Programming Shared Address Space Platforms7. Programming Message Passing PlatformsPART III: PARALLEL ALGORITHMS AND APPLICATIONS8. Dense Matrix Algorithms9. Sorting10. Graph Algorithms11. Discrete Optimization Problems12. Dynamic Programming13. Fast Fourier Transform