Introduction to computational complexity theory
Program optimizations:
- Performance measurement, profiling
- Cycle optimization
- Memory distribution optimization
- Sparse and other special matrices
- Linear algebra packages: LAPACK, BLAS
- Utilization of architecture-specific features (e.g. SSE instructions, cache size)
- Parallelization (shared / distributed memory)
- Specific features of selected programming language (mainly Fortran 95/2003, C/C++, Matlab)
- Compiler options
Job execution:
- Distributed job / resource management systems, introduction to Sun Grid Engine
- Overview of available computational resources (clusters) in Czech Republic
Applications:
- Selection of real physical problems aimed to test and strengthen acquired knowledge
- The possibility to include problems proposed by students
- Illustration of a task solved in practice: electronic structure calculation
High Performance Computing in Physics. General rules, basic methods for programming computationally intensive problems (optimization, parallelization), execution of jobs at computational clusters and other practical aspects. Recommended for master students or post-graduate students. Precondition is to have passed either
Numerical Methods of Computer Physics, Introduction to Programming in Matlab or a similar subject, basic handling of Unix/Linux systems.