The book provides a detailed overview of a parallel programming approach for massively parallel processors, OpenACC. The book introduces individual feature sets of OpenACC, with exercises and case studies showcasing the usage of the language constructs and also offers valuable insights into writing an efficient OpenACC program. It also explains how OpenACC language constructs are translated in order to achieve application performance. Chapters on parallelization, optimization strategies and best programming practices are also included.
The Complete, NVIDIA-Authorized Guide to OpenACC with Massively Parallel Programming
Scientists and technical professionals can use OpenACC to leverage the immense power of modern GPUs without the complexity traditionally associated with programming them. Sponsored by NVIDIA, OpenACC for Programmers is the first comprehensive and practical overview of OpenACC massively parallel programming.
OpenACC for Programmers integrates contributions from 19 leading parallel programming experts from academia, public research organizations, and industry. The authors and editors explain each key concept behind OpenACC, demonstrate how to use essential OpenACC development tools, and thoroughly explore each OpenACC feature set.
Throughout, you’ll find realistic examples, hands-on exercises, and case studies showcasing the efficient use of OpenACC language constructs. You’ll discover how OpenACC’s language constructs can be translated to maximize application performance, and how its standard interface can target multiple platforms via widely used programming languages.
Each chapter builds on what you’ve already learned, helping you build practical mastery one step at a time, whether you’re a GPU programmer, scientist, engineer, or student. All example code and exercise solutions are available for download at GitHub.
- Discover how OpenACC makes scalable parallel programming easier and more practical
- Walk through the OpenACC spec and learn how OpenACC directive syntax is structured
- Get productive with OpenACC code editors, compilers, debuggers, and performance analysis tools
- Build your first real-world OpenACC programs
- Exploit loop-level parallelism in OpenACC, understand the levels of parallelism available, and maximize accuracy or performance
- Learn how OpenACC programs are compiled
- Master OpenACC programming best practices
- Overcome common performance, portability, and interoperability challenges
- Efficiently distribute tasks across multiple processors