Teaching Accelerated OpenACC Programming with GPUs
This page is a “Getting Started” guide for educators looking to teach introductory massively parallel programming on GPUs with OpenACC.
The past decade has seen a tectonic shift from serial to parallel computing. No longer the exotic domain of supercomputing, parallel hardware is ubiquitous and software must follow: a serial, sequential program will use less than 1% of a modern PC's computational horsepower and less than 4% of a high-end smartphone. This presents an enormous and critical challenge: we must educate students and programmers to make the most of this new parallel world. Educators have recognized this need; for example, in the 2013 Curriculum guidelines from ACM and IEEE, parallel computing is stressed as one of the most important new fundamentals to be taught.
Getting Started:
- Teach yourself how to use OpenACC on GPUs by visiting the How-To page.
- Browser the Education section at openacc.org for content and materials. You can also find material on the CUDA Education Resources page.
-
Look at the available textbooks such as:
-
Programming Massively Parallel Processors, Second Edition: A Hands-on Approach
Covers a number of topics including the use of OpenACC to accelerate code on GPUs. - Parallel algorithms books such as An Introduction to Parallel Programming
- There are also many older parallel algorithm books that are relevant today, though since they predate CUDA their examples and problems would have to be translated.
- Also of note is the Parallel and Distributed Computing PRAM Algorithms (PDF)
-
Programming Massively Parallel Processors, Second Edition: A Hands-on Approach
-
Apply for access to the CUDA Cloud Training Platform. The systems available are:
- NVIDIA Training Cluster – a queue based cluster containing the latest Tesla-class GPUs publically available. Intended for multi-week classes or workshops.
- Amazon Interactive Instances – Easily get your students connected to a GPU Instance in the Amazon Cloud. Intended for single-day classes or workshops.
- Self-paced labs requiring only a supported browser hosted on nvidia.qwiklab.com. Great for prerequisite work, homework, or in-class exercises.
Other Resources:
-
Freely available Massively Open Online Courses (MOOCs):
- Intro to Parallel Programming on Udacity.com
- Heterogeneous Parallel Programming on Coursera.com
- Participate in sessions, tutorials, and Birds-Of-a-Feather meetings at supercomputing conferences such as SC14, ISC14, SIGCSE 2014, and many smaller conferences.
- NVIDIA’s GPU Technology Conference – many 100s of hours of recorded sessions, GTC Express Webinars, and the GTC 2014 conference.
- Attend local GPU or accelerated computing Meetups.
- Try out the PGI compiler for free for 30-days here and see about Academic license discounts.