Přeskočit na hlavní obsah
Přeskočit hlavičku

Metody efektivního programování

Jazyk výuky čeština
Kód 460-4174
Zkratka MEP
Název předmětu česky Metody efektivního programování
Název předmětu anglicky Methods of Efficient Programming
Garantující katedra Katedra informatiky
Garant předmětu Ing. Petr Olivka, Ph.D.

Anotace

Předmět představí studentům detailněji vlastnosti moderních počítačů a naučí je optimálně využívat technické vybavení počítače, a to od výpočetních jednotek CPU, přes paměťové sybsystémy počítačů, až po dobrý návrh paralelních programů.

Cílem předmětu je seznámit posluchače s technickými aspekty programování moderních vícejádrových SMP procesorů. Představeny budou možnosti optimalizace kódů a seznámení s výpočetními jednotkami CPU, a to jak celočíselnými, tak pro výpočet s desetinnými čísly. Dále budou studenti seznámeni s paměťovými susbsystémy počítačů a jejich optímálním využíváním a vlivem na uspořádání dat v paměti. Vysvětleny budou způsoby vhodných návrhu aplikací s více procesy a více vlákny a důvody pro rozhodování mezi vláknovým a datovým paralelizmem. Studenti si také vyzkouší vliv afilace procesů a jader CPU na výpočetní výkon.

Absolvent předmětu dokáže:

- rozumět vlivu optimalizace kódu na výpočetní výkon,
- znát základní vlastnosti výpočetních jednotek CPU,
- optimálně organizovat data programu, aby správně využil paměťový systém počítače,
- stanovit vhodný návrh paralelní aplikace a dobře se rozhodnou mezi procesy a vlákny,
- vhodně přiřadit procesy k jádrům CPU.

Povinná literatura

[1] Jim Ledin, 2020, Modern Computer Architecture and Organization: Learn x86, ARM, and RISC-V architectures and the design of smartphones, PCs, and cloud servers, Packt Publishing, ISBN-13: 978-1838984397 
[2] Jim Ledin,2022, Modern Computer Architecture and Organization: Learn x86, ARM, and RISC-V architectures and the design of smartphones, PCs, and cloud servers, 2nd Edition, Packt Publishing, ISBN-13, 978-1803238234
[3] Denis Bakhvalov, 2024, Performance Analysis and Tuning on Modern CPUs: Learn to write fast software like a pro, Independently published, ISBN-13: 979-8342846448 
[4] Comer, D. ,2024, Essentials of Computer Architecture (3rd ed.). Chapman and Hall/CRC. https://doi.org/10.1201/9781003410140

Doporučená literatura

[1] Intel, 2025, Intel® 64 and IA-32 Architectures Software Developer’s Manual,https://cdrdv2.intel.com/v1/dl/getContent/671200
[2] Stevens, W. Richard, Rago, Stephen A., 2013, Advanced Programming in the UNIX Environment, 3rd Ed., Addison-Wesley Professional, ISBN-13: 978-0321637734