The purpose of this chapter is to introduce OpenACC programming by accelerating a real benchmark application. Readers will learn to profile the code and incrementally improve the application by adding OpenACC directives. By the end of the chapter the example application will be transformed from a serial code to one that can run in parallel on both offloaded accelerators, such as Graphic Processing Units (GPUs), and multicore targets, such as multicore Central Processing Units (CPUs).
At the end of this chapter the reader will have a basic understanding of:
• The OpenACC kernels directive
• OpenACC data directives and ...