Study Guide@lith   Link to LiU Homepage
 

Linköping Institute of Technology

Link to LiU Homepage
 
Valid for year : 2010
 
TDDC78 Programming of Parallel Computers - Methods and Tools, 6 ECTS credits.
/Programmering av parallelldatorer - metoder och verktyg/

For:   ACG   C   COS   CS   D   IT   MMAT   MT   SOC   Y  


OBS!

The course overlaps with TANA77. Only one of these courses may be included in the degree.

 

Prel. scheduled hours: 52
Rec. self-study hours: 108

  Area of Education: Technology

Main field of studies: Computer Sceince, Computer Engineering

  Advancement level (G1, G2, A): A

Aim:
Parallel computers are used for heavy computations. The student should acquire knowledge about the programming of parallel computers and master selected methods and tools. The course shall also give an overview of how parallel computers can be used in some application areas, such as image analysis and scientific computations. After the course the student is expected to be able to 1) use efficient methods and languages for the programming of parallel computers, 2) program parallel computers with distributed memory (MPI) and shared memory (OpenMP).

Prerequisites: (valid for students admitted to programmes within which the course is offered)
Basic course in programming. A course in process programming is useful but not required, since understanding the process concept is assumed. Programming skills in C/C++ are required.

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.

Supplementary courses:


Organisation:
Two variants of the course are given, where the main part is the same. The variant Methods and Tools, TDDC78, is described here, and the other variant Scientific Computations, TANA77, can be found among the courses given by the mathematical department. The lectures deal with theory and principles, and the laboratory course gives practical exercise in parallel programming and the use of support systems. The lectures are the same for both variants, while the laboratory courses for TDDC78 and TANA77 differ.

Course contents:
Parallel computer architecture: memory hierarchies, shared memory and distributed memory architectures. Vector instructions. Parallel execution models and programming languages. Performance measurements and enhancement. Message passing, multithreaded and dataparallel programming. Principles of dataparallel languages. Time complexity. Scalability. Scheduling of parallel programs. Grid computing. Tools for parallel programming. MPI (Message passing interface), HPF (High Performance Fortran) and OpenMP. Basic parallel algorithms and BLAS (Basic Linear Algebra Subprograms). Application areas. Parallel solving of equation systems. The laboratory course gives practical experience in programming parallel systems (different programming paradigms are used). Several different parallel computers are used in the lab course, some of which are located at the National Supercomputer Center.

Course literature:
(1) Kessler: Programming of parallel computers - Compendium OHs, new edition 2005.
(2) L. Elden, H. Park and Y. Saad. Scientific Computing on High Performance Computers (compendium), new edition 2005. Bokakademin, Kårallen. --
(3) For further course literature see the course homepage


Examination:
Written examination
Laboratory work
3 ECTS
3 ECTS
 
The questions in the written exam check how well the student has fulfilled the learning goals of the course. For passing the exam, deficits in fulfilling certain partial goals can be balanced by a better fulfilling of other partial goals.



Course language is English.
Department offering the course: IDA.
Director of Studies: Patrick Lambrix
Examiner: Christoph W. Kessler
Link to the course homepage at the department


Course Syllabus in Swedish

Linköping Institute of Technology

Link to top of pagep


Contact: TFK , val@tfk.liu.se
Last updated: 09/28/2009