An Introduction to Parallel Programming, Second Edition presents a tried-and-true tutorial approach that shows students how to develop effective parallel programs with MPI, Pthreads and OpenMP.As the first undergraduate text to directly address compiling and running parallel programs on multi-core and cluster architecture, this second edition carries forward its clear explanations for designing, debugging and evaluating the performance of distributed and shared-memory programs while adding coverage of accelerators via new content on GPU programming and heterogeneous programming. New and improved user-friendly exercises teach students how to compile, run and modify example programs.
1. Title of Book - p. i 2. Cover image - p. i 3. Title page - p. ii 4. Table of Contents - p. iii 5. Copyright - p. iii 6. Dedication - p. pageiv 7. Preface - p. xv 8. Chapter 1. Why parallel computing - p. 1 9. Chapter 2. Parallel hardware and parallel software - p. 17 10. Chapter 3. Distributed memory programming with MPI - p. 89 11. Chapter 4. Shared-memory programming with Pthreads - p. 159 12. Chapter 5. Shared-memory programming with OpenMP - p. 221 13. Chapter 6. GPU programming with CUDA - p. 291 14. Chapter 7. Parallel program development - p. 361 15. Abstract - p. 361 16. 7.1 Two n-body solvers - p. page361 17. 7.2 Sample sort - p. page398 18. 7.3 A word of caution - p. 439 19. 7.4 Which API? - p. 439 20. 7.5 Summary - p. 440 21. 7.6 Exercises - p. page443 22. 7.7 Programming assignments - p. 451 23. Bibliography - p. 453 24. Chapter 8. Where to go from here - p. 455 25. Bibliography - p. 459 26. Index - p. 463
An Introduction to Parallel Programming, Second Edition presents a tried-and-true tutorial approach that shows students how to develop effective parallel programs with MPI, Pthreads and OpenMP.As the first undergraduate text to directly address compiling and running parallel programs on multi-core and cluster architecture, this second edition carries forward its clear explanations for designing, debugging and evaluating the performance of distributed and shared-memory programs while adding coverage of accelerators via new content on GPU programming and heterogeneous programming. New and improved user-friendly exercises teach students how to compile, run and modify example programs.
1. Title of Book - p. i 2. Cover image - p. i 3. Title page - p. ii 4. Table of Contents - p. iii 5. Copyright - p. iii 6. Dedication - p. pageiv 7. Preface - p. xv 8. Chapter 1. Why parallel computing - p. 1 9. Chapter 2. Parallel hardware and parallel software - p. 17 10. Chapter 3. Distributed memory programming with MPI - p. 89 11. Chapter 4. Shared-memory programming with Pthreads - p. 159 12. Chapter 5. Shared-memory programming with OpenMP - p. 221 13. Chapter 6. GPU programming with CUDA - p. 291 14. Chapter 7. Parallel program development - p. 361 15. Abstract - p. 361 16. 7.1 Two n-body solvers - p. page361 17. 7.2 Sample sort - p. page398 18. 7.3 A word of caution - p. 439 19. 7.4 Which API? - p. 439 20. 7.5 Summary - p. 440 21. 7.6 Exercises - p. page443 22. 7.7 Programming assignments - p. 451 23. Bibliography - p. 453 24. Chapter 8. Where to go from here - p. 455 25. Bibliography - p. 459 26. Index - p. 463