Description
Book SynopsisIn view of the growing presence and popularity of multicore and manycore processors, accelerators, and coprocessors, as well as clusters using such computing devices, the development of efficient parallel applications has become a key challenge to be able to exploit the performance of such systems. This book covers the scope of parallel programming for modern high performance computing systems.
It first discusses selected and popular state-of-the-art computing devices and systems available today, These include multicore CPUs, manycore (co)processors, such as Intel Xeon Phi, accelerators, such as GPUs, and clusters, as well as programming models supported on these platforms.
It next introduces parallelization through important programming paradigms, such as master-slave, geometric Single Program Multiple Data (SPMD) and divide-and-conquer.
The practical and useful elements of the most popular and important APIs for programming parallel HPC systems are
Table of Contents
1. Understanding the Need for Parallel Computing 2. Overview of Selected Parallel and Distributed Systems for High Performance Computing 3. Typical Paradigms for Parallel Applications 4. Selected APIs for Parallel Programming 5. Programming Parallel Paradigms Using Selected APIS 6. Optimization Techniques and Best Practices for Parallel Codes Appendix A. Resources Appendix B. Further reading