Parallel and Distributed Programming
Syllabus, Master's level, 1TD070
- Education cycle
- Second cycle
- Main field(s) of study and in-depth level
- Computational Science A1F, Computer Science A1F, Technology A1F
- Grading system
- Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
- Finalised by
- The Faculty Board of Science and Technology, 20 October 2022
- Responsible department
- Department of Information Technology
120 credits in science/engineering including Introduction to Scientific Computing or Scientific Computing I. Participation in High Performance Programming or participation in Low-level Parallel Programming. Proficiency in English equivalent to the Swedish upper secondary course English 6.
On completion of the course, the student should be able to:
- develop programs with distributed parallelism, parallel debugging included;
- construct parallel algorithms, i.e. identify parallelism in a given algorithm and implement it;
- analyse properties such as efficiency, speedup etc., of parallel algorithms;
- analyse performance of parallel algorithms.
Classification of parallel computers: different kinds of memory organisations, processors, networks and program control flow. Different kinds of parallelism. MPI (Message Passing Interface) programming and data partitioning. Parallelisation of fundamental algorithms in numerical linear algebra and scientific computing: matrix-vector multiplication, matrix-matrix multiplication, FFT (Fast Fourier Transform), N-body simulation, graph algorithms.
Lectures, computer labs, assignments and project assignments.
Assignments and project presented both as written reports and oral presentations.
If there are special reasons for doing so, an examiner may make an exception from the method of assessment indicated and allow a student to be assessed by another method. An example of special reasons might be a certificate regarding special pedagogical support from the disability coordinator of the university.