Book description
Parallel Programming with OpenACC is a modern, practical guide to implementing dependable computing systems. The book explains how anyone can use OpenACC to quickly ramp-up application performance using high-level code directives called pragmas. The OpenACC directive-based programming model is designed to provide a simple, yet powerful, approach to accelerators without significant programming effort.
Author Rob Farber, working with a team of expert contributors, demonstrates how to turn existing applications into portable GPU accelerated programs that demonstrate immediate speedups. The book also helps users get the most from the latest NVIDIA and AMD GPU plus multicore CPU architectures (and soon for Intel® Xeon Phi™ as well). Downloadable example codes provide hands-on OpenACC experience for common problems in scientific, commercial, big-data, and real-time systems.
Topics include writing reusable code, asynchronous capabilities, using libraries, multicore clusters, and much more. Each chapter explains how a specific aspect of OpenACC technology fits, how it works, and the pitfalls to avoid. Throughout, the book demonstrates how the use of simple working examples that can be adapted to solve application needs.
- Presents the simplest way to leverage GPUs to achieve application speedups
- Shows how OpenACC works, including working examples that can be adapted for application needs
- Allows readers to download source code and slides from the book's companion web page
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Contributors
- Foreword by Michael Wolfe
- Preface
- Acknowledgments
- Chapter 1: From serial to parallel programming using OpenACC
- Chapter 2: Profile-guided development with OpenACC
-
Chapter 3: Profiling performance of hybrid applications with Score-P and Vampir
- Abstract
- Performance Analysis Techniques and Terminology
- Evolutionary Performance Improvement
- A Particle-in-Cell Simulation of a Laser Driven Electron Beam
- Preparing the Measurement Through Code Instrumentation
- Recording Performance Information During the Application Run
- Looking at a First Parallel PIConGPU Implementation
- Freeing Up the Host Process
- Optimizing GPU Kernels
- Adding GPU Task Parallelism
- Investigating OpenACC Run Time Events With Score-P and Vampir
- Summary
- Chapter 4: Pipelining data transfers with OpenACC
- Chapter 5: Advanced data management
- Chapter 6: Tuning OpenACC loop execution
- Chapter 7: Multidevice programming with OpenACC
- Chapter 8: Using OpenACC for stencil and Feldkamp algorithms
- Chapter 9: Accelerating 3D wave equations using OpenACC
- Chapter 10: The detailed development of an OpenACC application
- Chapter 11: GPU-accelerated molecular dynamics clustering analysis with OpenACC
- Chapter 12: Incrementally accelerating the RI-MP2 correlated method of electronic structure theory using OpenACC compiler directives
- Chapter 13: Using OpenACC to port large legacy climate and weather modeling code to GPUs
- Index
Product information
- Title: Parallel Programming with OpenACC
- Author(s):
- Release date: October 2016
- Publisher(s): Morgan Kaufmann
- ISBN: 9780124104594
You might also like
book
Shared Memory Application Programming
Shared Memory Application Programming presents the key concepts and applications of parallel programming, in an accessible …
book
Topics in Parallel and Distributed Computing
Topics in Parallel and Distributed Computing provides resources and guidance for those learning PDC as well …
book
Modeling and Optimization of Parallel and Distributed Embedded Systems
This book introduces the state-of-the-art in research in parallel and distributed embedded systems, which have been …
book
Heterogeneous Computing with OpenCL 2.0
Heterogeneous Computing with OpenCL 2.0 teaches OpenCL and parallel programming for complex systems that may include …