| TDDC78 |
Programming of Parallel Computers - Methods and Tools, 6 ECTS credits.
/Programmering av parallelldatorer - metoder och verktyg/
For:
C
D
IT
Y
|
| |
Prel. scheduled
hours: 52
Rec. self-study hours: 108
|
| |
Area of Education: Technology
Subject area: Computer Science/Computer Engineering
|
| |
Advancement level
(A-D): D
|
|
Aim:
To give knowledge about methods and languages for programming parallel computer architectures, together with skills to program such computers. The course shall also give an overview of how parallel computers can be used in some application areas, e.g. image analysis and scientific computations.
|
|
Prerequisites: (valid for students admitted to programmes within which the course is offered)
Basic course in programming. A course in process programming such as TDDB63 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. Bokakademin, ca 95kr. --
(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 |
2 p 2 p
|
| |
|
|
Course language is English.
Department offering the course: IDA.
Director of Studies: sas-sr@ida.liu.se
Examiner: Christoph Kessler
Link to the course homepage at the department
Course Syllabus in Swedish
|