Showing posts from April, 2016

Short lectures on OpenMP and CUDA

In the context of the Component-Based System Design of Prof. Buttazzo at Scuola Superiore Sant'Anna I have given a 10-hour module about OpenMP and GPU computing.

The slides can be found here:

OpenMP lectures (slides of both Lectures)GPU lectures (slides Lecture1 and Lecture2) The exercises with solutions are available on the following repository: 
One of the exercises has been the OpenMP/CUDA implementation of Mandelbrot, simple enough to provide a starting point.

Mandelbrot solution OpenMP and CUDA.
In the case of OpenMP it is possible to play with the scheduling parameters of parallel for and the ordering of execution can be graphed. Here have, for example (clockwise from top left): static, dynamic, auto, guided.

This talk is also related to the recent work on OpenMP pre-scheduling at SAC 2016 (pdf).

Final note about the temporary report on Programming Models (for multicore, GPU and FPGA): pdf.