| TDDB78 |
Programming of Parallel Computers - Methods and tools, 6 ECTS credits.
/Programmering av parallelldatorer - inbyggda system/
For:
C
D
IT
Y
|
| |
Area of Education:
Subject area:
|
| |
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 TDDB12 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:
wo variants of the course are given, where the main part is the same. The variant Methods and Tools, TDDB78, is described here, and the other the 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 TDDB78 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 for dataparallel languages. Time complexity. Scalability. Scheduling of parallel programs. Vectorization and parallelization of serial codes. 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). Four different parallel computers including a 272-processors Cray T3E and 96-processors SGI Origin 3800 at National Supercomputer Center are used in the laboratory course.
|
|
Course literature:
Ian T. Foster, "Designing and Building Parallel Programs", Addison-Wesley, 1995.
Compendium
|
|
Examination: |
|
Written examination Laboratory work |
2 p 2 p
|
| |
|
|
Course language is English.
Department offering the course: IDA.
Director of Studies:
Examiner:
Link to the course homepage at the department
Course Syllabus in Swedish
|