460-4118/01 – Paralelní algoritmy II (PA II)

Garantující katedraKatedra informatikyKredity4
Garant předmětudoc. Ing. Petr Gajdoš, Ph.D.Garant verze předmětudoc. Ing. Petr Gajdoš, Ph.D.
Úroveň studiapregraduální nebo graduálníPovinnostvolitelný odborný
Ročník1Semestrletní
Jazyk výukyčeština
Rok zavedení2015/2016Rok zrušení
Určeno pro fakultyFEIUrčeno pro typy studianavazující magisterské
Výuku zajišťuje
Os. čís.JménoCvičícíPřednášející
GAJ03 doc. Ing. Petr Gajdoš, Ph.D.
Rozsah výuky pro formy studia
Forma studiaZp.zak.Rozsah
prezenční Klasifikovaný zápočet 2+2
kombinovaná Klasifikovaný zápočet 13+5

Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi

Cílem předmětu je doplnit a rozšířit témata, se kterými se mohl posluchač seznámit v předmětu Paralelní algoritmy I (PAI). Vzhledem k charakteru a účelu předmětu se bude jednat o témata, která budou ilustrovat využití grafických procesorů (GPU) pro řešení algoritmických úloh. Studenti budou blíže seznámeni s existujícími architekturami GPU a frameworky pro paralelní programování. S ohledem na skutečnost, že na VŠB vzniklo centrum nVidia Research, bude blíže vysvětlována architektura nVidia CUDA. Jedním z cílů je předat posluchačům znalosti, které mohou využít při řešení praktických úloh ať už v rámci magisterských prací či grantových projektů realizovaných na VŠB. Získané znalosti a vědomosti: - orientace v základní architektuře grafických procesorů (GPU) - znalost softwarové architektury paralelního programu, štěpení úlohy do gridů, bloků, vláken - znalost vybraného frameworku pro paralelní programování na GPU - pochopení problematiky algoritmizace, převod sériových úloh na paralelní - posouzení distribuce paralelní úlohy na více GPU, clusterů - zvládnutí implementace praktické úlohy zpracování dat

Vyučovací metody

Přednášky
Individuální konzultace
Cvičení (v učebně)

Anotace

Předmět plynule navazuje na vyučovaný předmět Paralelní algoritmy I (PAI). Znalosti z tohoto předmětu tvoří předpoklad pro pochopení nově probíraných témat. Vybraná a odpřednášená témata se stanou základem pro praktická cvičení, na kterých se studenti seznámí mimo jiné s konkrétním využitím architektury nVidia CUDA a souvisejícími nástroji pro řešení paralelních úloh s využitím GPU. Předpokladem úspěšného absolvování předmětu je zvládnutí programovacích technik v kombinaci s řešením konkrétních úloh z oblasti HPC.

Povinná literatura:

[1] Bjarne Stroustrup. The C++ Programming Language, 4th Edition. Addison-Wesley Professional, 4th edition, 5 2013. [2] Graham Sellers, Richard S. Wright, and Nicholas Haemel. OpenGL SuperBible: Comprehensive Tutorial and Reference (6th Edition). Addison-Wesley Professional, 6th edition, 7 2013. [3] John Cheng, Max Grossman, and Ty McKercher. Professional CUDA C Programming. Wrox, 1st edition, 9 2014. [4] Soyata, Tolga. GPU parallel program development using CUDA. CRC Press, 2018.

Doporučená literatura:

[1] Bjarne Stroustrup. The C++ Programming Language, 4th Edition. Addison-Wesley Professional, 4th edition, 5 2013. [2] John Cheng, Max Grossman, and Ty McKercher. Professional CUDA C Programming. Wrox, 1st edition, 9 2014. [3] Tuomanen, Brian. Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA. Packt Publishing Ltd, 2018. [4] Volodymyr Kindratenko, editor. Numerical Computations with GPUs. Springer, 2014 edition, 7 2014. [5] Vaidya, Bhaumik. Hands-On GPU-Accelerated Computer Vision with OpenCV and CUDA: Effective techniques for processing complex image data in real time using GPUs. Packt Publishing Ltd, 2018. [6] Jung W. Suh and Youngmin Kim. Accelerating MATLAB with GPU Computing: A Primer with Examples. Morgan Kaufmann, 1st edition, 12 2013.

Forma způsobu ověření studijních výsledků a další požadavky na studenta

Během semestru bude student pracovat samostatně na úkolu na zadané téma. V průběhu semestru bude řešení průběžně kontrolováno. Finální ohodnocení projektu proběhne v zápočtovém týdnu.

E-learning

Další požadavky na studenta

Předpokládá se, že student má dobré znalosti programování v C/C++.

Prerekvizity

Předmět nemá žádné prerekvizity.

Korekvizity

Předmět nemá žádné korekvizity.

Osnova předmětu

Přednášky jsou tematicky rozděleny tak, aby získané znalosti mohli studenti aplikovat na cvičeních. Obsah jednotlivých přednášek: 1. Úvod do paralelních výpočtů na GPU, GPU historie a CUDA 2. Architektura CUDA, integrace na úrovni C++ projektu 3. Práce s vlákny, kernel funkce 4. Typy CUDA pamětí, vzory pro jejich využití 5. Řešení konfliktů paměti GPU 6. Řízení běhu programu, distribuce algoritmu 7. Výkon algoritmu v závislosti na jeho paralelizaci na GPU 8. Základní vektorové a maticové operace 9. Optimalizace na datové úrovni aplikace, efektivní datové struktury. 10. Optimalizace z pohledu maximálního využití GPU 11. Doplňková knihovna CUBLAS 12. Případové studie Obsah jednotlivých cvičení (cvičení jsou na počítačových učebnách): 1. Vytvoření základní šablony aplikace, první spuštění, ukázková aplikace 2. Ukázky transferu dat na/z GPU 3. Hierarchie vláken, základní běh vlákna, limity, volání kernel funkcí, parametry a omezení 4. Typy CUDA pamětí, vzory pro jejich využití 5. Optimalizace přístupů do paměti, volba vhodné datové struktury 6. Streamy, paralelní volání kernel funkcí, synchronizace na úrovni vláken, bloků, GPU vs. CPU 7. Případová studia, experiment s více variantami řešení téže úlohy 8. Základní vektorové a maticové operace, případová studie zpracování dat, paralelní redukce 9. Integrace podpůrných knihoven pro lineární algebru 10. Ukázka grafické úlohy a její řešení při různém nastavení, využití bufferování 11. Případové studie, představení konkrétní praktické úlohy, nástin jejího řešení, demonstrace experimentů 12. Ladění programu s využitím nástrojů nVidia nSight

Podmínky absolvování předmětu

Kombinovaná forma (platnost od: 2015/2016 zimní semestr, platnost do: 2021/2022 letní semestr)
Název úlohyTyp úlohyMax. počet bodů
(akt. za podúlohy)
Min. počet bodůMax. počet pokusů
Klasifikovaný zápočet Klasifikovaný zápočet 100  51 3
Rozsah povinné účasti: Účast na cvičeních je povinná a je kontrolována. S rozsahem povinné účastí seznámí studenty garant předmětu na začátku semestru.

Zobrazit historii

Podmínky absolvování předmětu a účast na cvičeních v rámci ISP: Splnění všech povinných úkolů v individuálně dohodnutých termínech. Rozsah účasti na cvičeních si student na začátku semestru dohodne s garantem předmětu.

Zobrazit historii

Výskyt ve studijních plánech

Akademický rokProgramObor/spec.Spec.ZaměřeníFormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2024/2025 (N0613A140034) Informatika AZD P čeština Ostrava 1 povinně volitelný typu A stu. plán
2024/2025 (N0613A140034) Informatika AZD K čeština Ostrava 1 povinně volitelný typu A stu. plán
2024/2025 (N0688A140014) Průmysl 4.0 P čeština Ostrava 2 povinně volitelný typu B stu. plán
2024/2025 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika K čeština Ostrava 1 volitelný odborný stu. plán
2024/2025 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika P čeština Ostrava 1 volitelný odborný stu. plán
2024/2025 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC P čeština Ostrava 1 volitelný odborný stu. plán
2024/2025 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC K čeština Ostrava 1 volitelný odborný stu. plán
2023/2024 (N0688A140014) Průmysl 4.0 P čeština Ostrava 2 povinně volitelný typu B stu. plán
2023/2024 (N0613A140034) Informatika AZD K čeština Ostrava 1 povinně volitelný typu A stu. plán
2023/2024 (N0613A140034) Informatika AZD P čeština Ostrava 1 povinně volitelný typu A stu. plán
2023/2024 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika P čeština Ostrava 1 volitelný odborný stu. plán
2023/2024 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika K čeština Ostrava 1 volitelný odborný stu. plán
2023/2024 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC P čeština Ostrava 1 volitelný odborný stu. plán
2023/2024 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC K čeština Ostrava 1 volitelný odborný stu. plán
2023/2024 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava volitelný odborný stu. plán
2023/2024 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava volitelný odborný stu. plán
2022/2023 (N0613A140034) Informatika AZD K čeština Ostrava 1 povinně volitelný typu A stu. plán
2022/2023 (N0613A140034) Informatika AZD P čeština Ostrava 1 povinně volitelný typu A stu. plán
2022/2023 (N0688A140014) Průmysl 4.0 P čeština Ostrava 2 povinně volitelný typu B stu. plán
2022/2023 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika K čeština Ostrava 1 volitelný odborný stu. plán
2022/2023 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika P čeština Ostrava 1 volitelný odborný stu. plán
2022/2023 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC K čeština Ostrava 1 volitelný odborný stu. plán
2022/2023 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC P čeština Ostrava 1 volitelný odborný stu. plán
2022/2023 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava volitelný odborný stu. plán
2022/2023 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava volitelný odborný stu. plán
2021/2022 (N0688A140014) Průmysl 4.0 P čeština Ostrava 2 povinně volitelný typu B stu. plán
2021/2022 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika P čeština Ostrava 1 volitelný odborný stu. plán
2021/2022 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC K čeština Ostrava 1 volitelný odborný stu. plán
2021/2022 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC P čeština Ostrava 1 volitelný odborný stu. plán
2021/2022 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika K čeština Ostrava 1 volitelný odborný stu. plán
2021/2022 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava volitelný odborný stu. plán
2021/2022 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava volitelný odborný stu. plán
2020/2021 (N0688A140014) Průmysl 4.0 P čeština Ostrava 2 povinně volitelný typu B stu. plán
2020/2021 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava povinně volitelný stu. plán
2020/2021 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava povinně volitelný stu. plán
2020/2021 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika K čeština Ostrava 1 volitelný odborný stu. plán
2020/2021 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC P čeština Ostrava 1 volitelný odborný stu. plán
2020/2021 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika P čeština Ostrava 1 volitelný odborný stu. plán
2020/2021 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC K čeština Ostrava 1 volitelný odborný stu. plán
2019/2020 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava povinně volitelný stu. plán
2019/2020 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava povinně volitelný stu. plán
2019/2020 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika P čeština Ostrava 1 volitelný odborný stu. plán
2019/2020 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC P čeština Ostrava 1 volitelný odborný stu. plán
2019/2020 (N0541A170007) Výpočetní a aplikovaná matematika (S01) Aplikovaná matematika K čeština Ostrava 1 volitelný odborný stu. plán
2019/2020 (N0541A170007) Výpočetní a aplikovaná matematika (S02) Výpočetní metody a HPC K čeština Ostrava 1 volitelný odborný stu. plán
2019/2020 (N0688A140014) Průmysl 4.0 P čeština Ostrava 2 povinně volitelný typu B stu. plán
2018/2019 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava povinně volitelný stu. plán
2018/2019 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava povinně volitelný stu. plán
2017/2018 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava povinně volitelný stu. plán
2017/2018 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava povinně volitelný stu. plán
2016/2017 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava povinně volitelný stu. plán
2016/2017 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava povinně volitelný stu. plán
2015/2016 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava povinně volitelný stu. plán
2015/2016 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava povinně volitelný stu. plán

Výskyt ve speciálních blocích

Název blokuAkademický rokForma studiaJazyk výuky RočníkZLTyp blokuVlastník bloku

Hodnocení Výuky



2022/2023 letní
2020/2021 letní
2019/2020 letní
2018/2019 letní
2017/2018 letní
2016/2017 letní
2015/2016 letní