IN4330 – Efficient Parallel Programming
Course description
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.
Recommended previous knowledge
IN1000 – Introduction to Object-oriented Programming/IN1900 og IN1010 – Object-oriented Programming
IN2010 – Algorithms and Data Structures/INF2220
Overlapping courses
- 10 credits overlap with IN3030 – Efficient Parallel Programming.
- 10 credits overlap with INF2440 – Effektiv parallellprogrammering (continued).
Teaching
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.
Examination
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 Programming,?INF2440 - 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.
More about examinations at UiO
- Use of sources and citations
- Special exam arrangements due to individual needs
- Withdrawal from an exam
- Illness at exams / postponed exams
- Explanation of grades and appeals
- Resitting an exam
- Cheating/attempted cheating
You will find further guides and resources at the web page on examinations at UiO.