Study Guide@lith   Link to LiU Homepage
 

Linköping Institute of Technology

Link to LiU Homepage
 
Valid for year : 2007
 
TDDC85 Advanced parallell programming: Models, languages and algorithm, 7,5 ECTS credits.
/Advanced parallell programming: Models, languages and algorithm/

For:   CS  


OBS!

Only open for students admitted to the Computer Science Master programme

 

Prel. scheduled hours:
Rec. self-study hours: 200

  Area of Education: Technology

Subject area: Computer Science

  Advancement level (G1, G2, A): A

Aim:
The course emphasizes fundamental aspects of parallel programming such as parallel architectures and programming models, performance models, parallel complexity classes, parallel algorithmic paradigms, parallelization strategies, scheduling methods, and concepts of parallel programming languages. Practical exercises help to apply the theoretical concepts of the course to solve concrete problems in different parallel programming models.

Prerequisites: (valid for students admitted to programmes within which the course is offered)
Data structures and algorithms are absolutely required; knowledge in complexity theory and compiler construction is useful. Processprogramming and Parallel Programming are recommended. Programming in C is necessary for the practical exercises.

Note: Admission requirements for non-programme students usually also include admission requirements for the programme and threshhold requirements for progression within the programme, or corresponding.

Organisation:
Lectures (usually 2 intensive weeks in february / early march), programming exercises, optional theoretical exercises for self-assessment.

Course contents:
I. General introduction: Parallel computer architectures (*). II. Basic theory of parallel computation: PRAM model. Time, work, cost. NC. Speedup and Amdahl's Law (*), Self-simulation and Brent's Theorem, Scalability and Gustafssons Law (*). Fundamental PRAM algorithms (reduction, parallel prefix, list ranking). PRAM variants, simulation results and separation theorems. III. PRAM emulations on distributed-memory architectures: Hashed address space, Pipelining and Multithreading. Ranade's massively parallel realization in hardware. IV. Message passing models: Delay model, of McColl, LogP, LogGP. V. Distributed shared memory realizations DSM emulations. Memory consistency models. VI. Concepts of parallel programming languages covering e.g. Fork, BSPlib, MPI (*), OpenMP Linda, ... VII. Parallel algorithmic paradigms and programming problems: Parallel loops, static and dynamic Parallel divide-and-conquer, recursive doubling. asynchronous computations and parallel Synchronous and asynchronous pipelining. parallelism. VIII. Generic parallel programming with environments. Parallel program composition. IX. Compiling for parallel computers: Dependence parallelization, idiom recognition. Speculative X. Optimization of data layout. XI. Clustering and scheduling of tasks. XII. Advanced issues as time permits.

Course literature:
Keller, Kessler, Träff: Practical PRAM Programming. Wiley Interscience, 2000. ISBN 0-471-35351-5.

Examination:
Written examination
Programming exercise Fork
Programming exercise MPI
3 p
1 p
1 p
/
/
/
4,5 ECTS
1,5 ECTS
1,5 ECTS
 
Grades are given as â?TFailâ?T or â?TPassâ?T.



Course language is English.
Department offering the course: IDA.
Director of Studies:
Examiner:

Course Syllabus in Swedish

Linköping Institute of Technology

Link to top of pagep


Contact: TFK , val@tfk.liu.se
Last updated: 09/15/2007