Paralelní algoritmy

B232 - Letní 23/24
Tento předmět se nenachází v Moodle. Na jeho domovskou stránku se můžete dostat pomocí tlačítka "Stránka kurzu (mimo Moodle)" vpravo (pokud existuje).

Paralelní algoritmy - B4M35PAG

Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P+2S
Anotace
V úvodních přednáškách se zaměříme na obecné principy návrhu paralelních algoritmů a jejich základní vlastnosti, které jsou důležité pro pochopení principu jak paralelních, tak i distribuovaných algoritmů. Dále si vysvětlíme základní paralelní algoritmy, typicky tvořící stavební kameny řešení reálných problémů. Úlohy na cvičení budou zaměřeny na hardwarové platformy, se kterými se studenti běžně setkají v praxi.
Cíle studia
Žádná data.
Osnovy přednášek
1. Úvod do paralelního programování
2. Principy návrhu paralelních a distribuovaných algoritmů
3. Základní komunikační operace
4. Vlastnosti paralelních algoritmů
5. Maticové algoritmy
6. Algoritmy pro lineární algebru
7. Řazení, TEST
8. Paralelní akcelerátory
9. Grafové algoritmy I.
10. Grafové algoritmy II.
11. Kombinatorické algoritmy
12. Dynamické programování
13. Rychlá Fourierova transformace
Osnovy cvičení
1. Úvod do paralelního programování, nastavení prostředí
2. Paralelní programování v C++11 - základy
3. Paralelní programování v C++11 - pokročilé konstrukty
4. Zadaní semestrální práce a prvního domácího úkolu
5. OpenMP - základní konstrukty
6. OpenMP - pokročilé konstrukty
7. Zadání druhého domácího úkolu a odevzdání prvního
8. Konzultace semestrální práce
9. OpenMPI - distribuované algoritmy
10. Zadání třetího domácího úkolu a odevzdání druhého
11. Konzultace semestrální práce
12. Prezentace semestrální práce
13. Odevzdání třetího domácího úkolu, zápočet

Literatura
[1] Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar: Introduction to Parallel Computing, Second Edition, Addison Wesley, 2003.

[2] Georg Hager, Gerhard Wellein: Introduction to High Performance Computing for Scientists and Engineers, CRC Press, 2011.

[3] James Reinders, Jim Jeffers: Intel Xeon Phi Coprocessor High-Performance Programming, Newnes, 2013.
Požadavky
Základní znalost jazyka C++ a algoritmizace.