TDDC78 |
Programming of Parallel Computers - Methods and Tools, 6 ECTS credits.
/Programmering av parallelldatorer - metoder och verktyg/
For:
CS
D
DAV
ELE
I
Ii
IT
MMAT
MT
Y
|
|
Prel. scheduled
hours: 52
Rec. self-study hours: 108
|
|
Area of Education: Technology
Main field of studies: Computer Science, 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:
Multicore and GPU Programming.
|
|
Organisation:
The lectures deal with theory and principles, and the laboratory course gives practical exercise in parallel programming and the use of support systems.
The lab course uses parallel supercomputer resources located at the National Supercomputer Center.
|
|
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).
|
|
Course literature:
(1) Kessler: Programming of parallel computers - Compendium OHs. Available for registered course participants on the course homepage.
(2) L. Elden, H. Park and Y. Saad. Scientific Computing on High Performance Computers (compendium). Available for registered course participants on the course homepage.
(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: Ahmed Rezine
Examiner: Christoph W. Kessler
Link to the course homepage at the department
Course Syllabus in Swedish
|