- 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.
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++!