Publisher's Synopsis
This groundbreaking textbook teaches readers how to program massively parallel processors to achieve high performance, and the approach does not require a great deal of hardware expertise. The presentation focuses on computational thinking techniques that enable readers to think about problems in ways that are amenable to parallel computing. Students will learn to complete a suite of API programming tools and techniques at least once, so that they will be able to apply the experience to other APIs and other tools in the future. This book teaches parallel programming for correct functionality and dependability, which constitute a subtle issue in parallel computing. Those who have worked on parallel systems in the past know that achieving initial performance is not enough. The challenge is to achieve it in such a way that you can later debug the code, reproduce the bugs when they reappear, and support the code. This book shows that with the CUDA programming model, which focuses on data parallelism, one can achieve both high-performance and high-reliability in their applications.