OpenACC for Programmers: Concepts and Strategies

OpenACC for Programmers: Concepts and Strategies

English | 2017 | ISBN: 978-0134694283 | 320 Pages | PDF, EPUB, AZW3 | 36 MB

The Complete Guide to OpenACC for 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. OpenACC for Programmers is one of the first comprehensive and practical overviews of OpenACC for massively parallel programming.
This book 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
Homepage