• Skip navigation
  • Skip to navigation
  • Skip to the bottom
Simulate organization breadcrumb open Simulate organization breadcrumb close
NHR@FAU
  • FAUTo the central FAU website
Suche öffnen
  • RRZE
  • NHR-Verein e.V.
  • Gauß-Allianz

NHR@FAU

Navigation Navigation close
  • News
  • About us
    • People
    • Funding
    • BayernKI
    • NHR Compute Time Projects
    • Tier3 User Project Reports
    • Support Success Stories
    • Annual Reports
    • NHR@FAU Newsletters
    • Previous Events
    • Jobs
    Portal About us
  • Research
    • Research Focus
    • Publications, Posters & Talks
    • Performance Tools and Libraries
    • NHR PerfLab Seminar
    • Projects
    • Workshops
    • Awards
    Portal Research
  • Teaching & Training
    • Lectures & Seminars
    • Tutorials & Courses
    • Monthly HPC Café and Beginner’s Introduction
    • Theses
    • Student Cluster Competition
    Portal Teaching & Training
  • Systems & Services
    • Systems, Documentation & Instructions
    • Support & Contact
    • HPC User Training
    • HPC System Utilization
    Portal Systems & Services
  • FAQ

NHR@FAU

  1. Home
  2. Teaching & Training
  3. Tutorials & Courses
  4. Fundamentals of Accelerated Computing with OpenACC

Fundamentals of Accelerated Computing with OpenACC

In page navigation: Teaching & Training
  • Lectures & Seminars
  • Tutorials & Courses
    • Accelerating CUDA C++ Applications with Multiple GPUs
    • C++ for Beginners
    • Core-Level Performance Engineering
    • Fundamentals of Accelerated Computing with CUDA C/C++
    • Fundamentals of Accelerated Computing with CUDA Python
    • Fundamentals of Accelerated Computing with Modern CUDA C++
    • Fundamentals of Accelerated Computing with OpenACC
    • GPU Performance Engineering
    • Hybrid Programming in HPC - MPI+X
    • Introduction to OpenMP
    • Introduction to the LIKWID Tool Suite
    • Modern C++ Software Design
    • Node-Level Performance Engineering
    • Parallel Programming of High-Performance Systems (PPHPS)
    • Performance Engineering for Linear Solvers
    • Scaling CUDA C++ Applications to Multiple Nodes
  • Monthly HPC Café and Beginner's Introduction
  • Theses
  • Student Cluster Competition

Fundamentals of Accelerated Computing with OpenACC

Course Description

By the end of this workshop, participants will have a foundational understanding of OpenACC, a high-level programming model for parallel computing on CPUs and GPUs. The workshop covers profiling and optimizing applications to identify performance hotspots, using OpenACC directives to offload computations to the GPU, and improving data movement between the CPU and GPU to maximize efficiency.

Additional information is available on the Nvidia DLI course homepage.

Learning Objectives

At the conclusion of the workshop, participants will have an understanding of the fundamental tools and techniques for GPU-accelerating C++ and Fortran applications with OpenACC and will be able to:

  • Profile and optimize CPU-only applications to identify hotspots for acceleration
  • Use OpenACC directives to GPU-accelerate your codebase
  • Optimize data movement between the CPU and GPU accelerators

Course Structure

Introduction to Parallel Programming

  • Introduction to parallelism
  • The goals of OpenACC
  • Basic parallelization of code using OpenACC

Profiling with OpenACC

  • Compiling sequential and OpenACC code
  • The importance of code profiling
  • Profiling sequential and OpenACC multicore code
  • Technical introduction to the code used in introductory modules

Introduction to OpenACC Directives

  • The Parallel directive
  • The Kernels directive
  • The Loop directive

GPU Programming with OpenACC

  • Definition of a GPU
  • Basic OpenACC data management
  • CUDA Unified Memory
  • Profiling GPU applications

Data Management with OpenACC

  • OpenACC data directive/clauses
  • OpenACC structured data region
  • OpenACC unstructured data region
  • OpenACC update directive
  • Data management with C/C++ Structs/Classes

Loop Optimizations with OpenACC

  • Seq/Auto clause
  • Independent clause
  • Reduction clause
  • Collapse clause
  • Tile clause
  • Gang, Worker, Vector

Certification

Upon successfully completing the course assessments, participants will receive an NVIDIA DLI Certificate, recognizing their subject matter expertise and supporting their professional career growth.

Prerequisites

A free NVIDIA developer account is required to access the course material. Please register before the training at https://learn.nvidia.com/join.

A local installation of Nsight Systems is required to follow the hands-on exercises. Please install the version fitting your system from (https://developer.nvidia.com/nsight-systems/get-started). A local GPU is not required

Participants should additionally meet the following requirements:

  • Basic competency in C/C++ or Fortran, including familiarity with variable types, loops, conditional statements, functions, and array manipulations
  • No previous knowledge of GPU programming is required

Upcoming Iterations and Additional Courses

You can find dates and registration links for this and other upcoming NHR@FAU courses at https://hpc.fau.de/teaching/tutorials-and-courses/.

Erlangen National High Performance Computing Center (NHR@FAU)
Martensstraße 1
91058 Erlangen
Germany
  • Imprint
  • Privacy
  • Accessibility
  • How to find us
  • RSS Feed
Up