Always Learning

Advanced Search

OpenACC for Programmers

OpenACC for Programmers

Concepts and Strategies

Sunita Chandrasekaran, Guido Juckeland

May 2018, Paperback, 320 pages
ISBN13: 9780134694283
ISBN10: 0134694287
Special online offer - Save 30%
Was 36.99, Now 25.89Save: 11.10
  • Print pagePrint page
  • Email this pageEmail page
  • Share

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




About the Contributors

Chapter 1: OpenACC Specifications Simplified

Chapter 2: Loop Level Parallelism

Chapter 3: Programming Tools for OpenACC

Chapter 4: Using OpenACC for Your First Program

Chapter 5: Compiling OpenACC

Chapter 6: Best Programming Practices

Chapter 7: OpenACC and Performance Portability

Chapter 8: Additional Approaches to Parallel Programming

Chapter 9: OpenACC and Interoperability

Chapter 10: Advanced OpenACC

Chapter 11: Innovative Research Ideas Using OpenACC, Part I

Chapter 12: Innovative Research Ideas Using OpenACC, Part II


  • Provides a detailed overview of a high level programming approach introducing individual feature sets of OpenACC
  • Contains exercises and case studies showcasing usage of OpenACC language constructs and also offering exercises that walks through strategies to employ for writing an efficient OpenACC program
  • Provides an essential reference to students at both undergraduate and graduate levels and to professionals who intend to parallelize existing codes or develop new parallel programs for massively parallel processors
  • Code samples, hands-on exercises for every chapter

Sunita Chandrasekaran is assistant professor in the Computer and Information Sciences Department at the University of Delaware. Her research interests include exploring the suitability of high-level programming models and runtime systems for HPC and embedded platforms, and migrating scientific applications to heterogeneous computing systems. Dr. Chandrasekaran was a post-doctoral fellow at the University of Houston and holds a Ph.D. from Nanyang Technological University, Singapore. She is a member of OpenACC, OpenMP, MCA and SPEC HPG. She has served on the program committees of various conferences and workshops including SC, ISC, ICPP, CCGrid, Cluster, and PACT, and has co-chaired parallel programming workshops co-located with SC, ISC, IPDPS, and SIAM.

Guido Juckeland is head of the Computational Science Group, Department for Information Services and Computing, Helmholtz-Zentrum Dresden-Rossendorf, and coordinates the work of the GPU Center of Excellence at Dresden. He and also represents HZDR at the SPEC High Performance Group and OpenACC committee. He received his Ph.D. from Technische Universit™t Dresden for his work on performance analysis for hardware accelerators. He was a Gordon Bell Award Finalist in 2013. Previously he worked as the IT-architect and post-doctoral researcher for the Center for Information Services and High Performance Computing (ZIH) at TU Dresden, Germany. He has served on the program committees of various conferences and workshops, including ISC, EuroPar, CCGrid, ASHES, P^3MA, PMBS, WACCPD, and PACT, and has co-chaired parallel programming workshops co-located with SC.