Programming of Parallel Computers

10 credits

Syllabus, Master's level, 1TD480

A revised version of the syllabus is available.
Education cycle
Second cycle
Main field(s) of study and in-depth level
Computational Science A1N, Computer Science A1N, Technology A1N
Grading system
Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
Finalised by
The Faculty Board of Science and Technology, 19 May 2014
Responsible department
Department of Information Technology

Entry requirements

120 credits where 30 credits mathematics, Computer Programming II and Scientific Computing I or the equivalent is covered.

Learning outcomes

To pass, the student should be able to

  • describe different types of parallel computers;
  • program different types of parallel computers, from multicore laptops to large scale PC clusters, i.e. handle different programming models
  • construct parallel algorithms, i.e. identify parallelism in a given algorithm as well as implement that particular parallelism
  • identify factors that put constraints on the parallelism in a given program or algorithms
  • choose the appropriate parallel programming model factoring in conditions as computer architecture, application and efficiency


The course focus on different types of parallel computers, from multicore laptops to large scale PC clusters. Classification of parallel computers. Different forms of memory organisation, processors, networks, program control. Different forms of parallelism. Programming models: Programming in a local name space with MPI and in a global name space with OpenMP and Pthreads (Posix-threads). Overview of other programming models and implementations, such as UPC (Unified Parallel C) and MATLAB Parallel Toolbox. Graphics card programming. Performance measurements: speedup, efficiency, flops. Parallelisation of basic algorithms in numerical linear algebra and sorting: matrix-vector multiplication, matrix-matrix multiplication and Quick sort. Parallelisation of algorithms in one of the areas solution of systems of linear equations, partial differential equations, molecular dynamics (N-body simulation) or graph algorithms.


Lectures, laboratory work and compulsory assignments. Project. Guest lecture.


Written examination at the end of the course, approved compulsory assignments and project.