Dansk - English

Short version - Full version


Parallel Programming (Spring 2011)

Course code : IPARP-U1
ECTS Credits : 7,5 Status : Optional
Revised : 17/11 2010 Written : 28/04 2010
Placement : 5. & 6. semester Hours per week : 4
Length : 1 semester Teaching Language : English

Objective : Students will learn the fundamentals of programming for concurrency. This includes both theoretical foundations, and practical experience with multithreaded programs. POSIX (PThreads) environments will be discussed in detail, and significant programming will be required.
Upon completion of the course, students should have a good understanding of concurrent programming concepts and constructs and how to use them effectively and correctly.
Principal Content : Upon completion of the course the students is expected to be able to:

1. Explain the concepts of threads and processes including scheduling principles and corresponding states and context switching.
2. Explain the concepts of critical section and mutual exclusion and identify and explain methods and principles for synchronisation.
3. Explain the concepts of deadlock and livelock and starvation and how to deal with those phenomena.
4. Explain the concept of priority inversion and possible solutions to this.
5. Explain methods for inter-process communication (IPC)
6. Apply processes and threads in programming languages as C/C++
7. Identify when critical sections and/or mutual exclusion are required.
Teaching method : The lessons consist of theory combined with practical exercises and a course assignment.
Required prequisites : Documented knowledge corresponding to PROG1 and PROG2.
Recommended prerequisites : Some experience in C.
Relations : -
Type of examination : Look under remarks
External examiner : External
Marking : 7 step scale
Remarks : Oral examination. Questions will be based on the final course assignment. Moreover general questions to the topics of the principal content will be raised.
Teaching material : Notes.
Multithreaded Programming Guide, Sun Microsystems. (pdf document)
Recommended Readings:
Modern Operating Systems, A. S. Tanenbaum et.al.
PThreads Primer, Bil Lewis et.al. (pdf document)
Responsible teacher : Henrik Kold Mikkelsen , hokm@dtu.dk