Appentra is pleased to announce a new series of videos about how to develop parallel code with OpenACC. The course uses our unique, productivity-oriented approach to learn best practices for parallel programming using OpenACC. Learning outcomes include how to decompose codes into parallel patterns and a practical step-by-step process based on patterns for parallelizing any code.
Subscribe to our newsletter to receive the new videos that will be published every week during the following months.
- Course overview
- What is OpenACC?
- How OpenACC works.
- Building and running an OpenACC code.
- UPCOMING. The openACC parallelization process.
- UPCOMING. Using your first OpenACC directives.
- UPCOMING. Using patterns to parallelize.
- UPCOMING. Identifying a forall patterns.
- UPCOMING. Implementing a parallel forall.
The course overview
Over the series of video lectures in this course, we will break down into easy-to-follow steps how to quickly get up and running with OpenACC code parallelization.
The course will start with an overview of the components of GPGPU technology and what this means for using OpenACC, including the assumptions that the OpenACC programming model makes in order to allow you to quickly parallelize code. You will then learn how to build and run a simple OpenACC enabled code.
You will then learn how to build and run a simple OpenACC enabled code followed by an introduction to directives and the most commonly used OpenACC directives. This will be followed by implementing your first OpenACC enabled code. To make it simpler to parallelize your code we will then explain how to decompose your code into patterns, including forall, scalar reductions, sparse reductions and sparse foralls.
And in each case you will learn what parallelization methods are available for the pattern and the pros and cons associated with using a particular method to help you understand when to use different approaches.
Finally we will cover how to improve data management on the GPU and CPU and optimising your code to achieve best performance. By the end of this course you should feel confident in parallelizing code for accelerating on GPUs using OpenACC. Specifically, you should understand how to identify key features as patterns that can be parallelized and the various solutions for parallelizing each pattern type as well as the best practices for obtaining optimal correct code using OpenACC.
You will also have experience of decomposing and parallelizing examples, including a real code: the hydrodynamics code LULESH which is used as part of the CORAL 2 benchmark suite for testing Supercomputers.
Subscribe to our newsletter here to receive the new videos that will be published every week during the following months.