IN4330 – Efficient Parallel Programming

Schedule, syllabus and examination date

Choose semester

Course content

The course will provide knowledge in different uses of parallelism in a multi-core computer and especially provide insight into how and when Java can be used to develop parallel programs which can be clearly faster or easier than a sequential program that solves the same problem. The course focus on hands-on programming rather than theoretical considerations.

Learning outcome

By taking the subject you will:

  • have a command of tread programming in java and use of key components of java.util.concurrent and be able to explain the differences between at least three different syncrhonization mechanisms
  • know what new difficulties parallel programming with threads may cause and how these can be solved
  • master techniques to transform a sequential algorithm into an effective parallel algorithm
  • be able to make several different parallel solutions to a problem and evaluate the effectiveness of these
  • be able to take execution times on programs and determine any speed improvements
  • master the concepts of multi-core computers specifically concerning multithreading and caching
  • be able to explain interactions between threads and caching, and how such interactions influence the performance of algorithms
  • be able to optimize parallelle programs in relationship to caching
  • explain the asymptotic behavior of programs

Admission to the course

Students who are admitted to study programmes at UiO must each semester register which courses and exams they wish to sign up for in Studentweb.

If you are not already enrolled as a student at UiO, please see our information about admission requirements and procedures.

IN1000 – Introduction to Object-oriented Programming/IN1900 og IN1010 – Object-oriented Programming

INF2220 – Algorithms and Data Structures (continued)/IN2010 – Algorithms and Data Structures

Overlapping courses


2 hours of lectures and 2 hours of exercises each week.

Mandatory assignments must be approved prior to the exam. Mandatory assignments are valid for 1.5 years

Compulsory attendance at first lecture.


4 hours written digital exam using Inspera which counts 100% towards the final grade.

Mandatory assignments must be approved prior to the exam. Mandatory assignments are valid for 1.5 years.

It will also be counted as one of your three attempts to sit the exam for this course, if you sit the exam for one of the following courses: IN3030 – Efficient Parallel ProgrammingINF2440 - Effektiv parallellprogrammering (continued)

Examination support material

All written aids are allowed.

Language of examination

The examination text is given in Norwegian. If the course is taught in English, the examination text will only be given in English. You may answer in Norwegian, Swedish, Danish or English.

Grading scale

Grades are awarded on a scale from A to F, where A is the best grade and F is a fail. Read more about the grading system.

Resit an examination

Students who can document a valid reason for absence from the regular examination are offered a postponed examination at the beginning of the next semester. Re-scheduled examinations are not offered to students who withdraw during, or did not pass the original examination.

Special examination arrangements, use of sources, explanations and appeals

See more about examinations at UiO

Last updated from FS (Common Student System) July 4, 2022 12:20:07 AM

Facts about this course

Teaching language