Directive Based GPU Programming Models

Overview of Modular Lesson Material

This lesson module targets developers who want to run computations on GPUs without writing intricate, low-level kernel code like CUDA or OpenCL. Instead, the lesson teaches high-level GPU abstraction by utilizing compiler pragmas to automatically parallelize existing sequential code and offload data. This design choice allows developers to focus on writing clean code in familiar languages like C/C++ or Fortran while maintaining high computational performance.

The lesson covers everything from foundational abstractions to complex multi-accelerator scaling patterns. Core episodes focus on established industry-standard frameworks, primarily evaluating OpenACC and OpenMP offloading capabilities to bridge ease of development with hardware efficiency. Beyond single-GPU optimization, the syllabus advances into multi-GPU environments, mapping out the integration of directive-based models with MPI (Message Passing Interface) for cluster-wide communications.

Ultimately, this educational effort addresses an ongoing challenge in modern high-performance computing (HPC): migrating massive codebases to modern supercomputers. Because the manual translation of legacy sequential algorithms into hardware-specific kernels requires deep architecture knowledge, directive-based abstraction serves as an indispensable tool for onboarding scientists.

Prerequisites

  • Familiarity with one or more programming languages like C/C++ or Fortran is recommended

  • Basic understanding of parallel computing concepts

Table of Contents

Learning outcomes

This material is for all researchers and engineers who work with large or small datasets and who want to learn powerful tools and best practices for writing more performant, parallelised, robust and reproducible data analysis pipelines.

By the end of this module, learners should:

  • Incrementally transform sequential programs into GPU-accelerated versions using directives

  • Understanding how directives translate to GPU execution

Credit

Don’t forget to check out additional course materials from XXX. Please contact us if you want to reuse these course materials in your teaching. You can also join the XXX channel to share your experience and get more help from the community.

License

Note

To module authors: For code you may use any OSI-approved license as mentioned in https://spdx.org/licenses/, such as Apache License 2.0, GNU GPLv3, MIT. Please make sure to update the deed above and LICENSE.code file accordingly.