What is a GPU?

A Graphical Processing Unit has hundreds of cores that are good at performing the same operation on a lot of data.

Why a GPU?

Due to the plateau in chip development and to power considerations future HPC hardware choices will include heavy use of GPUs. Thus the need to introduce these at the level of an introductory course has arisen. Just as for parallel coding explanation of the benefits and simple examples to guide the hesitant first time user need to be selected. (There was a GPU submission example for our local parallel machine with code based on OpenCL (thanks to Igal Raisin), and an interactive CUDA random walk example (thanks to Adam Levi), in our class material but these were optional extras for the more advanced students.

To prepare more generally useful codes, I proposed several student projects using GPUs that include how-to pages, in the style described in [1], so that these examples would provide me with material. I will discuss two of the more successful ones (a lattice Boltzman and a Finite Element code, two topics that I previously gave in short overviews).

[1] D. Mazvovsky, G. Halioua and Joan Adler, ``The role of projects in (Computational) Physics Education'', Physics Procedia, 2012, Vol 34, p 1-5.

Image from the NVIDIA homepage.