|
|
ISBN: 9780071232654
Division: Higher Education
Pub Date: SEP-03
Pages: 480
Edition: 01 Format: Paperback
: This title is temporarily unavailable.
|
|
|
| Parallel Programming in C with MPI and OpenMP |
| |
| About the book | The era of practical parallel programming has arrived, marked by the popularity of the MPI and OpenMP software standards and the emergence of commodity clusters as the hardware platform of choice for an increasing number of organizations. This exciting new book, Parallel Programming in C with MPI and OpenMP addresses the needs of students and professionals who want to learn how to design, analyze, implement, and benchmark parallel programs in C using MPI and/or OpenMP. It introduces a rock-solid design methodology with coverage of the most important MPI functions and OpenMP directives. It also demonstrates, through a wide range of examples, how to develop parallel programs that will execute efficiently on today's parallel platforms.
If you are an instructor who has adopted the book and would like access to the additional resources, please contact your local sales rep. or Michelle Flomenhoft at: michelle_flomenhoft@mcgraw-hill.com.
|
| Key features | A five-chapter, tutorial introduction to the MPI library. A carefully crafted series of example programs in Chapters 4, 5, 6, 8, and 9 gradually introduces 27 key MPI functions. Collective communication functions are presented before point-to-point message passing, making it easier for inexperienced parallel programmers to write correct parallel code. A tutorial introduction to OpenMP. A progressively more complicated series of code segments, functions, and programs allows each OpenMP directive or function to be introduced ¿just in time¿ to meet a need. Introduction to hybrid parallel programming using both MPI and OpenMP. This is often the most effective way to program clusters constructed out of symmetrical multiprocessors. An emphasis on design, analysis, implementation, and benchmarking. Chapter 3 introduces a rigorous parallel algorithm design process, which is used throughout the rest of the book to develop parallel algorithms for a wide variety of applications. The book repeatedly demonstrates how benchmarking a sequential program and carefully analyzing a parallel design can lead to accurate predictions of the performance of a parallel program. An exceptional chapter on performance analysis. The book takes a single, generic speedup formula and derives from it Amdahl¿s Law, Gustafson-Barsis¿s Law, the Karp-Flatt metric, and the isoefficiency metric. Readers will learn the purpose of each formula and how they relate to each other. Parallel algorithms for a wide variety of applications. The book considers parallel implementations of Floyd¿s algorithm, matrix-vector multiplication, matrix multiplication, Gaussian elimination, the conjugate gradient method, finite difference methods, sorting, the fast Fourier transform, backtrack search, branch-and-bound, and more. Thorough treatment of Monte Carlo algorithms. A full chapter on this often-neglected topic introduces problems associated with parallel random number generation and introduces random walks, simulated annealing, the Metropolis algorithm, and much more.
A complete set of solutions and lecture slides, password-protected for instructor use only, are available through the book's listing at http://www.mhhe.com/quinn.
|
| Table of contents |
1 Motivation and History
2 Parallel Architectures
3 Parallel Algorithm Design
4 Message-Passing Programming
5 The Sieve of Eratosthenes
6 Floyd's Algorithm
7 Performance Analysis
8 Matrix-Vector Multiplication
9 Document Classification
10 Monte Carlo Methods
11 Matrix Multiplication
12 Solving Linear Systems
13 Finite Difference Methods
14 Sorting
15 The Fast Fourier Transform
16 Combinatorial Search
17 Shared-memory Programming
18 Combining MPI and OpenMP
Appendix A MPI Functions
Appendix B Utility Functions
Appendix C Debugging MPI Programs
Appendix D Review of Complex Numbers
Appendix E OpenMP Functions
|
|
|
|