The IPDC oral exam will be held on Wednesday 16th June.
The exam will be focussed on the three pieces of handed-in coursework. You should be prepared to discuss all of them, but there might be time to discuss only one in detail.
You should prepare a very short presentation (maximum 2 minutes) on each assignment, which should focus on (i) the parallel programming and (ii) the results of the assignment. The short presentation can be verbal and/or use overhead projector slides. You can also show material on a laptop computer, provided that it is ready to display without any delay.
You can bring books and notes with you if you want.
The examiners will discuss the assignment(s) with you, and might ask questions about things in the report, explanations of your solution, or background questions relevant to the assignments, relating to the course notes.
A few sample questions are given below, to help you with your preparation. Note that of course other questions can be asked too (by the external censor or by the internal examiners).
How is parallel speed-up defined?
In Amdahl's Law, what property of a program determines the limit for its parallel speed-up?
What is "linear speed-up"? Can one ever achieve super-linear speed-up by parallelisation?
Explain the difference between synchronous and asynchronous message passing.
In MPI, what is the difference between blocking and non-blocking operations?
Explain why there can be a trade-off between "safe" message passing and achieving maximum speed-up.
Give one or more reasons why a broadcast operation could be more efficient that a series of individual send operations.
What is meant by "embarrassingly parallel" applications? Give a couple of examples.
What is meant by "Monte Carlo" methods?
In an n-body simulation, what is the complexity (for n objects) of computing all the interactions between the bodies? How does the Barnes-Hut method reduce this complexity?
What is pipeline parallelism?
Explain briefly how insertion sort can be parallelised using a pipeline.
What is a barrier and give an example of its typical use?
Give two kinds of barrier implementation.
What is the difference between local and global synchronisation in synchronous parallelism?
In an iterative algorithm for solving equations, what are two different approaches to termination?
In partitioning a grid, what are possible advantages and disadvantages of strip versus block partitions?
State Gustafson's Law. What implications might be drawn from the law?
How does OpenMP's parallel construct work?
How does OpenMP's loop construct work?
Name the possible scheduling strategies available for the loop construct.
What is a critical region? Which language constructs are available in OpenMP for expressing a critical region? Which language constructs are available in Java?
Give a graphical representation of Flynn's taxonomy. Describe each major heading in the taxonomy.
Explain the fork/join model.
How is granularity and scalability defined?
Define data parallelism.
Define task parallelism.
What is false sharing?
What is a race condition?
April 2010 Keld Helsgaun