Parallel and Distributed Programming
Syllabus, Master's level, 1TD070
- Code
- 1TD070
- Education cycle
- Second cycle
- Main field(s) of study and in-depth level
- Computational Science A1F, Computer Science A1F, Technology A1F
- Grading system
- Pass with distinction (5), Pass with credit (4), Pass (3), Fail (U)
- Finalised by
- The Faculty Board of Science and Technology, 14 January 2022
- Responsible department
- Department of Information Technology
Entry requirements
120 credits in science/engineering including Introduction to Scientific Computing or Scientific Computing I. High Performance Programming or Low-level Parallel Programming. Proficiency in English equivalent to the Swedish upper secondary course English 6.
Learning outcomes
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.
Content
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.
Instruction
Lectures, computer labs, assignments and project assignments.
Assessment
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.