IE501514 Distributed Programming

Course level:

  • Second cycle


  • 7,50

Duration (semesters):

  • 1 semester

Admission requirements:

  • Honours degree in Computer Engineering or equivalent background

Teaching language

  • English


  • Data structures
  • Computer programming – both Object-Oriented Programming and Procedural Programming
  • Algorithm design and analysis

Topic list

1. Introduction to High Performance Computing

  • All computers are parallel now!
  • Large programs require HPC
  • Parallel programming is hard
  • Principles of HPC

Theme 1 will establish a fundamental understanding of HPC for the discussions in later themes.

2. Parallel Programming Models and Machines

  • Basics of computer architecture, memory hierarchies, and their impact on performance
  • Parallel programming models and machines

Theme 2 will discuss on different types of parallel programming models and machines.

3. Parallel Languages and Libraries

  • Shared memory programming and OpenMP
  • Message passing and MPI
  • OpenCL and CUDA for GPU and FPGA

Theme 3 will discuss popular parallel/distributed languages and libraries.

4. Implementation of distributed systems

Theme 4 will include practical exercises and projects in parallel/distributed programming and simulations.

Teaching Methods

  • Lectures, exercises, obligatory project assignments.

Learning outcome – Knowledge

  • Have knowledge in the principles and challenges in the development of parallel and distributed systems
  • Have knowledge in the design of parallel/distributed programs

Learning outcome – Skills

  • Be able to apply appropriate techniques in the programming of HPC systems

Learning outcome – General competence

  • Be able to discuss and communicate the possibilities and limitations in the field of HPC

Mandatory Assignments

  • All obligatory project assignments must be graded D or better in order to get access to the exam.


  • Oral exam
  • Semester assignment, semester paper, project assignment and similar


  • Based on the student’s understanding of topics covered in lectures, and a demostration of mandatory (individual) exercises/projects.


  • Grading A-F. Grade F is a fail