Skip to main content
Department of Information Technology

Parallel Programming for Scientific Computing 2018/2019

PhD-level course, 5 hp

Overview: The course focuses on providing knowledge on and practical experience of using parallel programming models for implementation of computational methods. We will cover a set of different models, exposing a span of paradigms for parallel programming and providing a background for performing parallel programming in different PhD research projects at TDB. The course is focused on hands-on experiments and the examination is performed by solving assignments that are adapted to the prerequisites and expectations of each student.

Prerequisites: It is in general assumed that the students have basic knowledge and experience of standard parallel programming techniques (MPI, OpenMP), at a level corresponding to what is provided by the undergraduate course Programming of Parallel Computers, 10 hp.

Format: The course starts with two introductory lectures where different parallel paradigms are described and exemplified. Then a number of selected programming model/tool will be presented in a short lecture by a "champion", followed by hand-on work by the students (assisted by the champions) on mini-projects developed in collaboration with the student, the champion, and the main teacher/coordinator for the PPSC course. At the end of the course, the results will be presented at a half-day seminar, where also an overview lecture on current development of parallel computers and implications for parallel programming will be given. The following models/languages will be covered in the course:

  • OpenCL
  • Chunks and Tasks
  • Julia
  • ”Distributed computing in the cloud”
  • "Declarative computations"; TensorFlow, Thrust, and Eigen
  • MPI and OpenMP for students that do not have prior experience of these models. Will be covered by direct interaction with the Champion (no lecture).

Examination: To pass the course, each student must complete the assignments for at least two programming tools. A student-tool mapping will be set up at the second lecture. An assignment is completed by presenting the results orally at the final seminar and by writing a short report. Also, participation in the lectures and the final seminar is needed (of course, there might be special cases where some student may have to be somewhere else).

Main teacher: Sverker Holmgren

Students and assignments/groups:

Schedule:

date and time room topics teachers notes
December 14 2018, 1015-1200 2415b Introduction 1 Sverker slides
January 9, 1315-1500 2414b Introduction 2 Sverker slides
January 11, 1315-1500 2414b Distributed computing in the cloud Salman slides
January 14, 1015-1200 2414b Julia Sverker slides SH
January 16, 1015-1200 1345 Declarative computations Carl slides
January 18, 1015-1200 2414b PM
TBD TBD PM
January 19 - March 7 Work on mini-projects
March 8 1315-1700 2414b Final seminar Sverker
Updated  2019-01-23 12:21:16 by Sverker Holmgren.