Charles Explorer logo
🇬🇧

High Performance Software Development

Class at Faculty of Mathematics and Physics |
NPRG054

Syllabus

- Software performance vs. modern programming languages and methodologies

- Current processor architectures and their impact on performance

- Compiler optimization techniques and their limits

- Performance measurement and tuning, profilers

- Vector instructions and their use in C++

- Memory hierarchy and its typical properties in current computers

- Cache-aware and cache-oblivious algorithms

- Selected performance-critical problems of linear algebra and data processing

This course does not cover parallel programming - see NPRG042 Programming in Parallel Environment.

Annotation

Programming focused to performance.

Modern processor features and the memory hierarchy. Compiler optimization and its limits; automatic and manual vectorization.

Effective implementation of basic linear-algebra and data-processing algorithms.

The course requiers knowledge in scope of the course NPRG041 - Programming in C++!