Hide menu

High-Level Parallel Programming Project

2016VT

Status Active - open for registrations
School National Graduate School in Computer Science (CUGS)
Division PELAB
Owner Christoph Kessler
Homepage http://www.ida.liu.se/~chrke55/courses/HLPPP/

  Log in  




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