Parallel Programming

Postgraduate course

Course description

Objectives and Content


The course gives an overview of the architectures and communication networks employed in parallel computers. The course covers the foundations for development of efficient parallel algorithms, including examples from relatively simple numerical problems, sorting, and graph problems. Adaption of algorithms to special computer architectures is discussed.


Relevant theory is covered in lectures together with examples of how one develops parallel computer programs. The students then solve programming problems themselves using parallel computers. A large part of the teaching is practically oriented.

Learning Outcomes

On completion of the course the student should have the following learning outcomes defined in terms of knowledge, skills and general competence:



The student knows

  • the basic construction and use of parallel computers,
  • the content and use of the terminology for how one measures the performance of parallel algorithms and parallel computers,
  • how to develop computer programs for different types of parallel computers.




The student is able to

  • optimize sequential code for fastest possible execution.
  • analyze sequential programs and determine if they are worthwhile to parallelize.
  • develop, analyze, and implement algorithms for parallel computers. This applies both to computers with shared memory and with distributed memory.


General competence

The student

  • can analyze and perform development work related to the use of parallel computers.



ECTS Credits


Level of Study


Semester of Instruction

Required Previous Knowledge
For incoming exchange students: At least 60 ECTS in Computer Science and at least 10 ECTS in mathematics.
Recommended Previous Knowledge
Access to the Course
Access to the course requires admission to a programme of study at The Faculty of Mathematics and Natural Sciences
Teaching and learning methods

The teaching is divided into a theoretical and a practical part. In both parts new material will be covered. Thus the student is expected to participate in all parts of the teaching.

The theoretical teaching is conducted in a lecture room, four hours a week, the practical teaching is conducted using the students own laptops.

Compulsory Assignments and Attendance
Obligatory exercises must be passed in order to take the final exam. There are valid for two subsequent semesters, starting from the semester in which they are approved. Students will be given access to parallel computers, but must also expect to use their own computers during the exercise sessions.
Forms of Assessment
3 hours written (digital) exam. The obligatory activities count for 50% of the final grade. Both the obligatory activities and the exam must be passed to achieve a passing grade in the course. The students will be notified of the obligatory activities and their final weight in the grade at the beginning of the semester.
Grading Scale
The grading scale used is A to F. Grade A is the highest passing grade in the grading scale, grade F is a fail.
Assessment Semester
Examination both spring semester and autumn semester. In semesters without teaching the examination will be arranged at the beginning of the semester.
Reading List
The reading list will be available within July 1st for the autumn semester and December 1st for the spring semester
Course Evaluation
The course will be evaluated by the students in accordance with the quality assurance system at UiB and the department
Examination Support Material
Programme Committee
The Programme Committee is responsible for the content, structure and quality of the study programme and courses.
Course Coordinator
Course coordinator and administrative contact person can be found on Mitt UiB, or contact Student adviser
Course Administrator
The Faculty of Mathematics and Natural Sciences represented by the Department of Informatics is the course administrator for the course and study programme.