Course Outline

Introduction

  • What is OpenACC?
  • Comparing OpenACC, OpenCL, CUDA, and SYCL for government
  • Overview of OpenACC features and architecture
  • Setting up the development environment for government

Getting Started

  • Creating an OpenACC project in Visual Studio Code for government
  • Exploring project structure and files for government
  • Compiling and running the program for government
  • Displaying output with printf and fprintf for government

OpenACC Directives and Clauses

  • Understanding OpenACC directives and clauses for government
  • Using parallel directives to create parallel regions for government
  • Using kernels directives for compiler-managed parallelism for government
  • Using loop directives to parallelize loops for government
  • Managing data movement with data directives for government
  • Synchronizing data with update directives for government
  • Improving data reuse with cache directives for government
  • Creating device functions with routine directives for government
  • Synchronizing events with wait directives for government

OpenACC API

  • Understanding the role of OpenACC API for government
  • Querying device information and capabilities for government
  • Setting device number and type for government
  • Handling errors and exceptions for government
  • Creating and synchronizing events for government

OpenACC Libraries and Interoperability

  • Understanding OpenACC libraries and interoperability for government
  • Using math, random, and complex libraries for government
  • Integrating with other models (CUDA, OpenMP, MPI) for government
  • Integrating with GPU libraries (cuBLAS, cuFFT) for government

OpenACC Tools

  • Understanding OpenACC tools in development for government
  • Profiling and debugging OpenACC programs for government
  • Performance analysis with PGI Compiler, NVIDIA Nsight Systems, Allinea Forge for government

Optimization

  • Factors affecting OpenACC program performance for government
  • Optimizing data locality and reducing transfers for government
  • Optimizing loop parallelism and fusion for government
  • Optimizing kernel parallelism and fusion for government
  • Optimizing vectorization and auto-tuning for government

Summary and Next Steps

Requirements

  • An understanding of C/C++ or Fortran language and parallel programming concepts
  • Basic knowledge of computer architecture and memory hierarchy
  • Experience with command-line tools and code editors

Audience

  • Developers who seek to learn how to use OpenACC to program heterogeneous devices and leverage their parallelism for government applications
  • Developers aiming to write portable and scalable code that can run on various platforms and devices within the public sector
  • Programmers interested in exploring high-level aspects of heterogeneous programming to enhance code productivity for government projects
 28 Hours

Number of participants


Price per participant

Upcoming Courses

Related Categories