Programming Your GPU with OpenMP: A Hands-On Introduction
Presenters
Event Type
Tutorial
Accelerators
Algorithms
Intermediate
Programming Systems
Location255-B
DescriptionOpenMP 1.0 was released in 1997. Back then the concern was symmetric multiprocessors. Over time hardware evolved with more complex memory hierarchies (NUMA computers) and distributed memory systems which forced us to understand how OpenMP mixes with MPI.
Current trends bring co-processors such as GPUs into the fold. A modern platform is often best viewed as a heterogeneous system with CPU cores, GPU cores, and over time other specialized accelerators. OpenMP has responded by adding a set of directives that map code and data onto a device. We refer to this family of directives as the target directives.
In this tutorial, we will explore these directives as they apply to programming GPUs. We assume attendees know the fundamentals of OpenMP so we can use our time to deeply understand the target directives and their use in complex applications. This will be a hands-on tutorial. Students will use their own laptops (with Windows, Linux, or OS X). We will have access to remote servers with GPUs, but the best option is for attendees to load an OpenMP compiler onto their laptops before the tutorial. Information about OpenMP compilers is available at www.openmp.org.
Current trends bring co-processors such as GPUs into the fold. A modern platform is often best viewed as a heterogeneous system with CPU cores, GPU cores, and over time other specialized accelerators. OpenMP has responded by adding a set of directives that map code and data onto a device. We refer to this family of directives as the target directives.
In this tutorial, we will explore these directives as they apply to programming GPUs. We assume attendees know the fundamentals of OpenMP so we can use our time to deeply understand the target directives and their use in complex applications. This will be a hands-on tutorial. Students will use their own laptops (with Windows, Linux, or OS X). We will have access to remote servers with GPUs, but the best option is for attendees to load an OpenMP compiler onto their laptops before the tutorial. Information about OpenMP compilers is available at www.openmp.org.










