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++!
Last update: T_KSI (28.04.2016)
Kurz programování se zaměřením na výpočetní výkon.
Vlastnosti moderních procesorů a paměťové hierarchie.
Schopnosti a limity optimalizace překladačem, automatická a manuální vektorizace.
Efektivní implementace základních algoritmů lineární algebry a zpracování dat.
Pro absolvování předmětu je nezbytná znalost v rozsahu předmětu NPRG041 - Programování v C++!
Last update: T_KSI (28.04.2016)
Course completion requirements -
The credit is awarded for acquiring a required number of points from homework assignments, which are in the form of small software projects in C++, and for passing an oral exam, while the oral exam can be replaced by obtaining a higher number of homework points. The point limits applicable for a given year are published at the beginning of the semester.
Last update: Bednárek David, RNDr., Ph.D. (07.06.2019)
Podmínkou pro zakončení předmětu je získání stanoveného počtu bodů z domácích úkolů, které mají podobu malých softwarových projektů v C++, a absolvování ústní zkoušky, přičemž ústní zkoušku lze nahradit získáním vyššího poču bodů z domácích úkolů. Bodové hranice platné pro daný rok jsou zveřejňovány na začátku semestru.
Last update: Bednárek David, RNDr., Ph.D. (07.06.2019)
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.
Last update: Bednárek David, RNDr., Ph.D. (22.04.2016)
Vztah mezi výkonem software a moderními programovacími jazyky a metodologiemi
Architektury současných procesorů a jejich vliv na výkon
Schopnosti a limity optimalizace překladačem
Měření a ladění výkonu, profilery
Vektorové instrukce a jejich použití v C++
Paměťová hierarchie a její typické vlastnosti u dnešních výpočetních systémů
Cache-aware a cache-oblivious algoritmy
Výkonově významné úlohy lineární algebry a zpracování dat
Tato přednáška se nezabývá paralelním programováním - viz NPRG042 Programování v paralelním prostředí.
Last update: Bednárek David, RNDr., Ph.D. (22.04.2016)