High-Level Parallel Programming Project2016VT
|
|
Course plan
Lectures
Recommended for
Graduate (CUGS, CIS, ...) students interested in programming parallel,
distributed and heterogeneous computing systems using high level programming
abstractions and tools.
This is an Advanced Course. It requires a previous master or PhD level course
in foundations, algorithms and programming for parallel or multicore systems,
such as DF21500 Multicore Computing, TDDC78 Programming of Parallel Computers
or TDDD56 Multicore and GPU Programming.
The course was last given
This is a new course.
Goals
The parallel programming frameworks used most commonly in practice today (e.g.,
MPI, pthreads, OpenMP, CUDA, OpenCL) offer a relatively low level of
abstraction. While giving much flexibility to the programmer, this often leads
to problems with code portability, performance portability, and programmer
productivity. To remedy the situation, various programming models enforcing a
higher level of abstraction have been proposed, such as skeleton programming,
data-flow programming, and domain-specific parallel programming languages.
This course exposes participants to selected high-level parallel programming
models, in particular based on algorithmic skeletons, domain-specific
languages, and on data-flow based parallel programming. An existing problem /
application shall be selected and implemented and evaluated with at least one
of several proposed frameworks for high-level parallel programming (such as
SkePU, FastFlow, OpenACC, SYCL, TBB, Galois, Drake). Implementations and
experimental evaluations will be done on GPGPU-based servers and on manycore
platforms.
Prerequisites
A previous master or PhD level course in foundations, algorithms and programming for parallel systems, such as DF21500 Multicore Computing (CUGS), TDDC78 Programming of Parallel Computers, or TDDD56 Multicore and GPU Programming
Contents
Current high-level parallel programming models, in particular based on algorithmic skeletons, domain-specific languages, and on data-flow based parallel programming, such as SkePU, FastFlow, OpenACC, SYCL, TBB, Galois, Drake.
Organization
Introductory lecture (ca. 3h), individual programming project, presentation/demonstration of the solution and written technical report.
Literature
Will be announced on the course homepage.
Lecturers
Christoph Kessler
Examiner
Christoph Kessler
Examination
Presentation of the individual programming project's results including a demonstration of the prototype implementation. Written technical report.
Credit
5hp. All examination moments must be fulfilled.
Organized by
CUGS
Comments
This course builds upon DF21500 Multicore Computing (CUGS).
Page responsible: Director of Graduate Studies