IN4049TU Introduction to High Performance Computing

Course description

This course is intended for students who are interested in computing-intensive research. In the course, a number of algorithms that are being used within a diversity of research areas is considered. The scaling behaviour of these algorithms in case of an increasing problem size and/or an increasing number of processors, is analysed. Attention is paid to those aspects of computer architectures that are important to understand the resulting performance, such as the memory hierarchy and the interconnection network. By analysing a number of case studies (applications) with respect to their computing-intensive character, possible bottlenecks will be determined. Based on performance analysis, it will be indicated how the effect of those bottlenecks can be reduced. The goal is to learn how to get a high performance with the available hard/architecture.
The lab exercises will be done on a cluster of computers, the DAS-4 system at TU Delft with 48 processors. The emphasis will be on designing efficient parallel algorithms and on the necessary optimalisation of the performance. During the lab exercises, the following types of problems will be elaborated on: a parallel Poisson solver, a parallel finite element simulation and a parallel N-body simulation. More information, such as handouts and slides, can be found the Blackboard. High Performance Computing, Parallel programming, parallel computing

 

Expected prior knowledge

Linear algebra (matrix and vector operations), Numerical analysis (solution of a system of linear equations;some experience with a programming language (e.g., C) is a preferred but not required.