Book description
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
Register your product at informit.com/register for convenient access to downloads, updates, and/or corrections as they become available.
Table of contents
- Title Page
- Copyright Page
- Dedication Page
- Contents
- Foreword
- Preface
- Acknowledgments
- About the Contributors
- Chapter 1: OpenACC in a Nutshell
- Chapter 2: Loop-Level Parallelism
-
Chapter 3: Programming Tools for OpenACC
- 3.1 Common Characteristics of Architectures
- 3.2 Compiling OpenACC Code
-
3.3 Performance Analysis of OpenACC Applications
- 3.3.1 Performance Analysis Layers and Terminology
- 3.3.2 Performance Data Acquisition
- 3.3.3 Performance Data Recording and Presentation
- 3.3.4 The OpenACC Profiling Interface
- 3.3.5 Performance Tools with OpenACC Support
- 3.3.6 The NVIDIA Profiler
- 3.3.7 The Score-P Tools Infrastructure for Hybrid Applications
- 3.3.8 TAU Performance System
- 3.4 Identifying Bugs in OpenACC Programs
- 3.5 Summary
- 3.6 Exercises
- 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
- Index
- Register Your Product
Product information
- Title: OpenACC for Programmers: Concepts and Strategies, First Edition
- Author(s):
- Release date: September 2017
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780134694306
You might also like
book
Technical Java™: Developing Scientific and Engineering Applications
TechnicalJava™ Developing Scientific and Engineering Applications Grant Palmer The practical, example-rich guide to Java technical programming …
book
Real-Time Systems Development
Real-time Systems Development is a text for computing students who want to understand more about the …
article
Use GitHub Copilot: Additional Tips
Using GitHub Copilot can feel like magic. The tool automatically fills out entire blocks of code--but …
book
Heterogeneous Computing with OpenCL 2.0
Heterogeneous Computing with OpenCL 2.0 teaches OpenCL and parallel programming for complex systems that may include …