TMA881 - High performance computing 5,0p (ECTS 7,5)
Aim
Larger and more complex mathematical models require greater computational performance. In order to meet these demands it is necessary to master the techniques of code optimization and parallel programming. This course aims to give an overview of modern computer architecture and how this knowledge together with compilers and profiling tools can be used to optimize the performance of a code. Another aim is to present basic ideas of and tools for parallel programming.
Goal
At the conclusion of the course, the participant should know the basics of code optimization and parallel programming.
Prerequisites
Basic courses in mathematics, numerical analysis, programming and data structures. Basic Matlab programming.
Content
Organization
Lectures and computer assignments. The assignments, which make up a substantial part of the course, consist of several short exercises which illustrate how performance is affected by the choice of computer architecture, programming language, programming style etc. One should optimize a given code. In some exercises small parallel programs should be written. The programs should be written in C, Fortran (some Java) and Matlab. Please see the course homepage for more information.
Literature
Lecture notes, manuals and articles.
Examination
Compulsory computer assignments. A written or oral examination and possibly a short presentation.