460-4056/01 – Programování paralelních aplikací II (PPA II)

Garantující katedraKatedra informatikyKredity5
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í2012/2013Rok zrušení2019/2020
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í Zápočet a zkouška 2+2
kombinovaná Zápočet a zkouška 10+2

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 Programování paralelních aplikaci I (PPA). 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ě)
Projekt

Anotace

Předmět plynule navazuje na vyučovaný předmět Programování paralelních aplikací (PPAI). 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. Nir Shavit, Maurice Herlihy: The Art of Multiprocessor Programming, Morgan Kaufmann (March 14, 2008) , ISBN-13: 978-0123705914 2. Edward Kandrot, Jason Sanders: CUDA by Example: An Introduction to General-Purpose GPU Programming, Addison-Wesley Professional; 1 edition (July 29, 2010), ISBN-13: 978-0131387683 3. David Kirk: Programming Massively Parallel Processors: A Hands-on Approach (Applications of GPU Computing Series), Morgan Kaufmann; 1 edition (February 5, 2010), 978-0123814722

Doporučená literatura:

1. Timothy G. Mattson: Patterns for Parallel Programming, Addison-Wesley Professional; 1 edition (September 25, 2004), ISBN-13: 978-0321228116

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

Během semestru bude student pracovat samostatně nebo ve skupině max. dvou lidí na projektu 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

Další požadavky na studenta nejsou kladeny.

Prerekvizity

Kód předmětuZkratkaNázevPovinnost
460-4040 PPA I Programování paralelních aplikací I Doporučená

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. 1. Úvod do paralelních výpočtů na GPU, GPU historie a CUDA - vývoj grafických procesorů - počátky programování na GPU, GPGPU - programovatelná pipeline - aktuální existující architektury 2. Architektura CUDA, integrace na úrovni C++ projektu - seznámení se s vybranou architekturou - obecná dekompozice algoritmické úlohy - hardwarová vs. Softwarová dekompozice 3. Práce s vlákny, kernel funkce - vlákno a jeho význam na GPU - 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í - globální, sdílená, konstantní paměť, registry, texturovací paměť - alokace a dealokace paměti - zarovnávání paměti - kopírování z RAM do VRAM, mapování paměti 5. Řešení konfliktů paměti GPU - optimalizace přístupů do paměti - volba vhodné datové struktury 6. Řízení běhu programu, distribuce algoritmu - streamy, paralelní volání kernel funkcí - synchronizace na úrovni vláken, bloků, GPU vs. CPU - distribuce na více GPU 7. Výkon algoritmu v závislosti na jeho paralelizaci na GPU - 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. Doplňková knihovna CUBLAS - seznámení se s podpůrnými knihovnami 10. Optimalizace výkonu GPU - ukázka grafické úlohy a její řešení při různém nastavení - využití bufferování - optimalizace bloků, registrů, apod. 11. Případové studie - představení konkrétní praktické úlohy , - nástin jejího řešení - demonstrace experimentů - ladění programu s využitím nástrojů nVidia nSight

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

Prezenční forma (platnost od: 2013/2014 zimní semestr, platnost do: 2019/2020 letní semestr)
Název úlohyTyp úlohyMax. počet bodů
(akt. za podúlohy)
Min. počet bodůMax. počet pokusů
Zápočet a zkouška Zápočet a zkouška 100 (100) 51
        Zápočet Zápočet 40 (40) 21
                Projekt Projekt 40  21
        Zkouška Zkouška 60 (60) 11 3
                Ověření znalostí Ústní zkouška 60  11
Rozsah povinné účasti:

Zobrazit historii

Podmínky absolvování předmětu a účast na cvičeních v rámci ISP:

Zobrazit historii

Výskyt ve studijních plánech

Akademický rokProgramObor/spec.Spec.ZaměřeníFormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2014/2015 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 volitelný odborný stu. plán
2014/2015 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 volitelný odborný stu. plán
2013/2014 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 volitelný odborný stu. plán
2013/2014 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 volitelný odborný stu. plán
2012/2013 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 volitelný odborný stu. plán
2012/2013 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 volitelný odborný 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



2014/2015 letní
2013/2014 letní
2012/2013 letní