Parallel Programming: Concepts and Practice provides an upper level introduction to parallel programming. In addition to covering general parallelism concepts, this text teaches practical programming skills for both shared memory and distributed memory architectures. The authors’ open-source system for automated code evaluation provides easy access to parallel computing resources, making the book particularly suitable for classroom settings.
Key Features
- Covers parallel programming approaches for single computer nodes and HPC clusters: OpenMP, multithreading, SIMD vectorization, MPI, UPC++
- Contains numerous practical parallel programming exercises
- Includes access to an automated code evaluation tool that enables students the opportunity to program in a web browser and receive immediate feedback on the result validity of their program
- Features an example-based teaching of concept to enhance learning outcomes
1. Introduction2. Theoretical Background3. Modern Architectures4. C++11 Multithreading5. Advanced C++11 Multithreading6. OpenMP7. Compute Unified Device Architecture8. Advance CUDA Programming9. Message Passing Interface10. Unified Parallel C++
- Pacheco, Introduction to Parallel Programming, Morgan Kaufmann, 9780123742605, Jan 2011, 392 pages, $79.95
- Kirk and Hwu: Programming Massively Parallel Processors, 3e, Morgan Kaufmann, 9780128119860, Dec 2016, 576 pages, $79.95
- Barlas, Multicore and GPU Programming: An Integrated Approach, Morgan Kaufmann, 9780124171374, Nov 2014, 698 pages, $99.95
- Herlihy, The Art of Multiprocessor Programming, Morgan Kaufmann, 9780123973375, May 2012, 536 pages, $74.95
Senior undergraduate students majoring in computer science and computer engineering or taking advanced computing classes in other disciplines; graduate students of any discipline who work with high performance computing (HPC), such as computational science, bioinformatics, computational physics, data science