NERSCPowering Scientific Discovery for 50 Years

Loop Optimizations with OpenACC -- Part 3 of 3 OpenACC Training Series, June 23, 2020

June 23, 2020

Introduction

OpenACC is a directive-based approach to parallel programming for heterogeneous architectures, where developers specify regions of code (written in C, C++, and Fortran) to be offloaded from a host CPU to a GPU. This approach is meant to reduce the amount of programming effort required of developers relative to low-level models, such as CUDA.

NVIDIA will present a 3-part OpenACC training series intended to help new and existing GPU programmers learn to use the OpenACC API. Each part will include a 1-hour presentation and example exercises. The exercises are meant to reinforce the material from the presentation and can be completed during a 1-hour hands-on session following each lecture (for in-person participants) or on your own (for remote participants).  OLCF and NERSC will both be holding in-person events for each part of the series. Please see the topics of each part and dates here

Part 3 of 3:  Loop Optimizations with OpenACC

Date and Time: 10 am - 12 pm (Pacific time), Thursday, June 23, 2020.  

The format of this event will be online only.  OpenACC is a user-driven directive-based performance-portable parallel programming model designed for scientists and engineers who are interested in porting their codes to a wide variety of heterogeneous HPC hardware platforms and architectures. 

There are a number of ways we can optimize our code using OpenACC. This module introduces the ‘gang’, ‘worker’, and ‘vector’ constructs in OpenACC, as well as other OpenACC loop optimization clauses that can be used to communicate with the compiler with respect to how you would like your application to be parallelized. In this module, we experiment with multiple loop optimization strategies, and we show the performance impact of each using Summit.

After the presentation, there will be a hands-on session where participants can complete example exercises meant to reinforce the presented concepts and get help from the experts.

Registration

Please register here.  This event is online only.

Presentation Materials 

  • Slides
  • Recording
  • Exercises: The example exercises for this module can be found in the "exercises/hw3" folder of this GitHub repo.
  • Survey:  Please help us to provide feedback by completing a 3-min short survey (click  "Survey" located at the end of this page).