An Introduction to Parallel programming and GPU Computing

Amr Hassan

Centre for Astrophysics and Supercomputing, Swinburne University of Technology

Since they were first introduced for general-purpose computing, graphics processing units (GPUs) have become a science-enabling technology across a wide variety of scientific fields. This tutorial will introduce the basics of parallel programming with concentration on GPU programming. By the end of the tutorial, participants should be able to: determine if GPUs can help them with their computational problem; understand the basics of parallel programming; select between different ways to utilized GPUs; understand the basics of building a parallel algorithm; and develop a simple pyCUDA program. The tutorial will concentrate on CUDA enabled GPUs, but will give a quick overview of different available alternatives. The tutorial targets audience with no parallel
programming skills, but assumes intermediate python programming skills.