Syllabus academic year 2010/2011
(Created 2010-07-25.)
MULTICORE PROGRAMMINGEDAN25
Credits: 6. Grading scale: TH. Cycle: A (Second Cycle). Main field: Technology. Language of instruction: The course will be given in Swedish. EDAN25 overlaps following cours/es: EDA116. Optional for: D4, D4is, D4pv, F4, Pi4. Course coordinator: Jonas Skeppstedt,, Dept of Computer Science. Prerequisites: EDAA01 Programming - Second Course or EDA027 Algorithms and Data Structures, and the compulsory course items in EDAF15 Algorithm Implementation. Assessment: Written exam. To pass the course, the exam, laboratory exercises, and a programming assignment must be passed. The final grade of the course is based om the result of the written exam. Home page: http://cs.lth.se/.

Aim
The purpose of the course is that the students should use knowledge from the course EDAF15 Algorithm Implementation when writing software for multicores, ie to learn how to implement an algorithm as efficiently as possible on a particular multicore computer, both on a traditional multiprocessor with shared memory, and on multicores where communication is handled explicitly by software, e.g. as with DMA on the Cell processor, and to understand advantages and disadvantages of these two multicore architectures.

Knowledge and understanding
For a passing grade the student must

Skills and abilities
For a passing grade the student must

Judgement and approach
For a passing grade the student must

Contents
Multiprocessors, classification of cache misses, decomposition of the computation into tasks. Assignment of tasks to threads. Mapping of threads to processors. Programming models, synchronisation, and communication. Owner computes rule. Memory consistency models. Sequential consistency. Weak ordering. Release consistency, Pthreads, OpenMP, the Cell processor, current research trends in multiprocessor computer architecture.

Literature
Skeppstedt, Söderberg: Writing Secure and Efficient C Code - a Thorough Introduction for Java Programmers (ISBN not set).