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:
- Chunks and Tasks
- ”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:
|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|
|January 19 - March 7||Work on mini-projects|
|March 8 1315-1700||2414b||Final seminar||Sverker|