Multi-core processors are no longer the future of computing-they are the present day reality. A typical mass-produced CPU features multiple processor cores, while a GPU (Graphics Processing Unit) may have hundreds or even thousands of cores. With the rise of multi-core architectures has come the need to teach advanced programmers a new and essential skill: how to program massively parallel processors.
Programming Massively Parallel Processors: A Hands-on Approach shows both student and professional alike the basic concepts of parallel programming and GPU architecture. Various techniques for constructing parallel programs are explored in detail. Case studies demonstrate the development process, which begins with computational thinking and ends with effective and efficient parallel programs.
- Describes computational thinking techniques that will enable you to think about problems in ways that are amenable to high-performance parallel computing
- Utilizes CUDA (Compute Unified Device Architecture), NVIDIA's software development tool created specifically for massively parallel environments
- Shows you how to achieve both high-performance and high-reliability using the CUDA programming model as well as OpenCL
|Edition description:||Older Edition|
|Product dimensions:||6.00(w) x 1.25(h) x 9.00(d)|
Table of Contents
1. Introduction 2. Data parallel computing 3. Scalable parallel execution 4. Memory and data locality 5. Performance considerations 6. Numerical considerations 7. Parallel patterns: convolution: An introduction to stencil computation 8. Parallel patterns: prefix sum: An introduction to work efficiency in parallel algorithms 9. Parallel patterns-parallel histogram computation: An introduction to atomic operations and privatization 10. Parallel patterns: sparse matrix computation: An introduction to data compression and regularization 11. Parallel patterns: merge sort: An introduction to tiling with dynamic input data identification 12. Parallel patterns: graph search 13. CUDA dynamic parallelism 14. Application case study-non-Cartesian magnetic resonance imaging: An introduction to statistical estimation methods 15. Application case study-molecular visualization and analysis 16. Application case study-machine learning 17. Parallel programming and computational thinking 18. Programming a heterogeneous computing cluster 19. Parallel programming with OpenACC 20. More on CUDA and graphics processing unit computing 21. Conclusion and outlook