GPU Programming with OpenACC

Course/Event Essentials

Event/Course Start
Event/Course End
Event/Course Format
In person

Venue Information

Country: Norway
Venue Details: Click here

Training Content and Scope

Scientific Domain
Level of Instruction
Intermediate
Advanced
Sector of the Target Audience
Research and Academia
Industry
Public Sector
HPC Profile of Target Audience
Application Developers
Data Scientists
Language of Instruction

Other Information

Event/Course Description

The Scientific Computing group at the IT department (UiB) in collaboration with NRIS (Norwegian Research Infrastructure Services) is offering a one day hands-on physical course for Introductory GPU Programming with OpenACC. 

The course is designed for beginners in GPU-programming and who want to get familiar with available directives programming models with a special focus on the OpenACC offloading. The course does not require any basic knowledge in GPU-programming, but it is a requirement that the user has some basic programming experience with either Fortran or C. The course aims at providing an overview of the OpenACC model and guiding users towards its optimal use. The course will familiarise the users with the most needed constructs, clauses and runtime library routines via some practical numerical applications. The applications include solving partial differential equations, matrix multiplication, integration etc.

Prerequisites

The participants are expected to have 

  • Basic programming experience with either Fortran or C
  • Basic Linux terminal experience

The course does not require any basic knowledge in GPU-programming

Expected Outcome of the course

By the end of this training course, the participants should be able to:

  • Recognise the necessity of GPU-programming.
  • Define different available programming models.
  • Get an overview of the GPU-architectures and compilers supporting OpenACC.
  • Determine the role of different constructs, clauses, and runtime library routines.
  • Compile and interpret the compiler flags and feedback messages.
  • Use appropriate constructs and clauses to offload compute regions to the GPU device.
  • Select and map regions of a code with the use of data locality concepts.
  • Implement OpenACC on simple numerical models.
  • Do code-profiling using NVIDIA Nsight Systems.