During the course students will learn how to exploit parallelism to speed up execution time of their programs. The industry standard frameworks (i.e. OpenCL, CUDA and OpenMP) will be used for parallel programming of heterogeneous systems (e.g. GPUs and Multicore CPUs). The course is practice-oriented in the sense that most of the work time during the course, students will work independently on a software project. The project is splitted in smaller steps so that in each step students apply their learning in practice and progress smoothly.

The content of this course is interesting for those engaged in embedded system design, high performance computing, game development etc.