
Kurz Parallel Programming
Zvládněte celý stack paralelního programování – od vláken CPU a OpenMP po clustery MPI a GPU CUDA. Tento kurz Vám poskytne nástroje, teorii a praktické zkušenosti k psaní rychlého, škálovatelného softwaru na moderním hardwaru. Ať už cílíte na vícejádrové procesory nebo GPU NVIDIA, naučíte se měřit, optimalizovat a dosahovat skutečných výkonnostních zisků.
Co se naučíte:
Získáte hluboké porozumění paralelnímu počítání napříč architekturami se sdílenou pamětí, distribuovanou pamětí a GPU. Kurz pokrývá vlákna ve stylu POSIX, direktivy OpenMP, komunikační vzory MPI a programování jader CUDA od úplných základů. Budete studovat paralelní algoritmy včetně řazení, skenování a procházení grafů spolu s bezuzamčenými datovými strukturami. Podrobně jsou probrány nástroje pro analýzu výkonu a optimalizační strategie – včetně blokování do mezipaměti, vyrovnávání zátěže a modelování roofline. Mezi pokročilá témata patří hybridní programování MPI a OpenMP, paralelní numerické metody a vysokoúrovňové frameworky jako Dask a TBB. Na konci budete vybaveni k návrhu, implementaci a vyladění kompletních paralelních aplikací pro reálné pracovní zátěže.
Jak studujete v praxi Kurz Parallel Programming
Jak procvičujete Kurz Parallel Programming
Pro vás, kteří jste firma a chcete školit svůj tým
V Dedika pro firmy je kurz doplněn o cvičení a příklady přímo z vašeho podnikání a přizpůsoben tak, jak vaše firma potřebuje.
Obsah kurzu
8 Kapitoly • 40 LekceDélka mezi 4 a 360 hodinami (rozhodujete vy)
Kapitola 1SkrýtSkrýt detailyZobrazit detailyZáklady paralelního počítání
Základy paralelního počítání
Lekce 1 • Přehled hardwarové architektury
Poskytuje přehled jader CPU, mezipamětí, paměťových sběrnic a streamovacích multiprocesorů GPU. Propojuje hardwarovou topologii s návrhovými rozhodnutími v softwaru napříč celým kurzem.
Lekce 2 • Měření paralelního výkonu
Vysvětluje Amdahlův zákon, Gustafsonův zákon a metriky efektivity. Studenti získají kvantitativní nástroje pro hodnocení každého programu, který napíší.
Lekce 3 • Souběžnost versus paralelismus
Rozlišuje mezi souběžným prokládáním a skutečným současným prováděním. Vyjasňuje terminologii používanou ve všech navazujících kapitolách.
Lekce 4 • Modely paralelního programování
Představuje modely se sdílenou pamětí, předáváním zpráv a datově paralelní modely. Poskytuje taxonomii, kterou studenti využijí při výběru nástrojů v pozdějších kapitolách.
Lekce 5 • Proč na paralelismu záleží
Pokrývá limity výkonu sekvenčního provádění a ekonomické hnací síly paralelního hardwaru. Stanovuje motivaci pro každou později představenou techniku.
Kapitola 2SkrýtSkrýt detailyZobrazit detailyVlákna a programování se sdílenou pamětí
Vlákna a programování se sdílenou pamětí
Lekce 1 • Atomické operace a paměťové modely
Vysvětluje hardwarové atomické operace, porovnání-a-výměnu a záruky uspořádání paměti. Připravuje studenty na bezzámkové datové struktury v pozdějších kapitolách.
Lekce 2 • Vzájemné vyloučení a zámky
Učí použití mutexů, spinlocků a rozsahu zámků pro ochranu sdíleného stavu. Přímo řeší rizika datových souběhů představená v kapitole 1.
Lekce 3 • Základy vláken
Pokrývá tvorbu, připojování a oddělování vláken pomocí API ve stylu POSIX. Seznamuje studenty s modelem provádění před zavedením synchronizace.
Lekce 4 • Podmíněné proměnné a bariéry
Představuje podmíněné proměnné pro koordinaci producent-konzument a bariéry pro hromadnou synchronizaci. Rozšiřuje zamykání na událostmi řízenou koordinaci vláken.
Lekce 5 • Fondy vláken a fronty práce
Pokrývá návrh fondu vláken pro amortizaci režie tvorby a vyrovnávání zátěže. Propojuje základní API vláken s později představenými rámci pro úlohy na vyšší úrovni.
Kapitola 3SkrýtSkrýt detailyZobrazit detailyOpenMP pro paralelismus se sdílenou pamětí
OpenMP pro paralelismus se sdílenou pamětí
Lekce 1 • Vymezení viditelnosti dat a redukce
Vysvětluje klauzule private, shared, firstprivate a reduction pro řízení viditelnosti proměnných. Zabraňuje datovým souběhům bez ručního zamykání.
Lekce 2 • Paralelní smyčky a sdílení práce
Pokrývá konstrukce parallel-for, sections a single pro distribuci iterací smyček. Přímo aplikuje datově paralelní model z kapitoly 1.
Lekce 3 • Synchronizační konstrukce v OpenMP
Pokrývá direktivy barrier, critical, atomic a flush pro jemné řízení. Doplňuje znalosti o mutextu a atomičnosti z kapitoly 2.
Lekce 4 • Programovací model OpenMP
Představuje model provádění fork-join a syntaxi direktiv kompilátoru. Vytváří mentální model, který studenti používají pro všechny konstrukce OpenMP.
Lekce 5 • Úlohový paralelismus v OpenMP
Představuje direktivy task a taskwait pro nepravidelný a rekurzivní paralelismus. Rozšiřuje sdílení práce na necyklické řídící toky.
Kapitola 4SkrýtSkrýt detailyZobrazit detailyProgramování v distribuované paměti s MPI
Programování v distribuované paměti s MPI
Lekce 1 • Model provádění MPI
Pokrývá model SPMD, komunikátory a identifikaci ranků. Vytváří kontext distribuovaného provádění pro všechny programy MPI.
Lekce 2 • Komunikace bod-bod
Učí blokující a neblokující operace odeslání a příjmu s párováním značek. Buduje komunikační primitiva, která jsou základem všech vzorů na vyšší úrovni.
Lekce 3 • Operace kolektivní komunikace
Pokrývá kolektivní operace broadcast, scatter, gather, reduce a all-to-all. Nahrazuje ruční vzory bod-bod optimalizovanými knihovními voláními.
Lekce 4 • Výkon a škálovatelnost MPI
Analyzuje latenci, šířku pásma a strategie překrývání komunikace a výpočtu. Aplikuje Amdahlův a Gustafsonův zákon z kapitoly 1 na distribuované programy.
Lekce 5 • Odvozené datové typy a komunikátory
Představuje vlastní MPI datové typy pro nespojitá data a dělení komunikátorů. Umožňuje efektivní komunikaci složitých datových struktur.
Kapitola 5SkrýtSkrýt detailyZobrazit detailyProgramování GPU s CUDA
Programování GPU s CUDA
Lekce 1 • Profilování a ladění programů CUDA
Pokrývá postupy optimalizace řízené profilerem a běžné vzory chyb na GPU. Vybavuje studenty k diagnostice a opravě problémů s výkonem a správností.
Lekce 2 • Hierarchie paměti CUDA
Pokrývá globální, sdílenou, konstantní a registrovou paměť s přístupovými vzory. Efektivní využití paměti je primární pákou pro výkon GPU.
Lekce 3 • Techniky optimalizace jader
Učí sloučený přístup do paměti COALES, ladění obsazenosti a redukci divergence warpu. Přímo zlepšuje propustnost jader napsaných v předchozích částech.
Lekce 4 • Programovací model CUDA
Představuje mřížky, bloky, vlákna a model provádění SIMT. Propojuje hardwarové GPU z kapitoly 1 s abstrakcí softwaru CUDA.
Lekce 5 • Proudy CUDA a souběžnost
Představuje proudy, události a souběžné provádění jader pro překrývání práce. Rozšiřuje strategie překrývání představené v kapitole MPI na GPU.
Kapitola 6SkrýtSkrýt detailyZobrazit detailyParalelní algoritmy a datové struktury
Paralelní algoritmy a datové struktury
Lekce 1 • Bezzámkové datové struktury
Navrhuje bezzámkové zásobníky, fronty a hashovací mapy pomocí operací CAS. Aplikuje atomická primitiva z kapitoly 2 na datové struktury s vysokou souběžností.
Lekce 2 • Paralelní grafové algoritmy
Pokrývá BFS, SSSP a souvislé komponenty pomocí paralelních grafových rámců. Aplikuje kolektivní komunikaci a úlohový paralelismus na nepravidelné úlohy.
Lekce 3 • Analýza práce a rozpětí
Představuje model práce a rozpětí, poměr paralelismu a Brentův teorém. Poskytuje analytický rámec pro hodnocení všech algoritmů v této kapitole.
Lekce 4 • Paralelní prefix a scan
Pokrývá algoritmy inkluzivního a exkluzivního scanu a jejich aplikace. Scan je základní primitivum používané v algoritmech pro třídění, kompakci a grafy.
Lekce 5 • Paralelní řadicí algoritmy
Učí bitonické třídění, merge sort a radix sort přizpůsobené pro paralelní provádění. Navazuje na primitiva scanu a analýzu práce a rozpětí z předchozích částí.
Kapitola 7SkrýtSkrýt detailyZobrazit detailyAnalýza výkonu a optimalizace
Analýza výkonu a optimalizace
Lekce 1 • Profilování paralelních aplikací
Pokrývá hardwarové čítače výkonu, vzorkovací profilery a nástroje založené na trasování. Vytváří základ měření pro všechna optimalizační rozhodnutí.
Lekce 2 • Model roofline a analýza úzkých hrdel
Aplikuje model roofline pro klasifikaci jader omezených výpočtem versus pamětí. Navádí studenty k nejúčinnější optimalizaci pro daný program.
Lekce 3 • Snížení komunikační režie
Učí agregaci zpráv, jejich překrývání a směrování s ohledem na topologii pro programy MPI. Rozšiřuje koncepty výkonu MPI z kapitoly 4 o optimalizační techniky.
Lekce 4 • Strategie vyrovnávání zátěže
Pokrývá statické rozdělení, dynamické kradení práce a plánování guided. Řeší nerovnováhu v zátěži, která omezuje škálovatelnost v reálných aplikacích.
Lekce 5 • Optimalizace hierarchie paměti
Učí blokování mezipaměti (cache blocking), prefetching a eliminaci falešného sdílení. Přímo se zaměřuje na mezipaměť a topologii NUMA představené v kapitole 1.
Kapitola 8SkrýtSkrýt detailyZobrazit detailyPokročilé paralelní vzory a aplikace
Pokročilé paralelní vzory a aplikace
Lekce 1 • Návrh komplexní paralelní aplikace
Vede studenty skrze analýzu požadavků, výběr algoritmu a ověření výkonu pro kompletní paralelní aplikaci. Syntetizuje všechny kompetence z kurzu.
Lekce 2 • Vzory pipeline a wavefront
Pokrývá fáze softwarové pipeline, výpočty wavefront a analýzu propustnosti. Rozšiřuje koncepty zřetězení z kapitoly 1 na vícestupňové paralelní programy.
Lekce 3 • Hybridní programování MPI a OpenMP
Navrhuje hybridní programy kombinující ranky MPI s vlákny OpenMP na uzel. Integruje kapitoly 3 a 4 do jednotné strategie víceúrovňového paralelismu.
Lekce 4 • Paralelismus rozděl-a-panuj
Učí rekurzivní rozklad na úlohy, mezní prahy a optimalizaci rozpětí. Staví na úlohách OpenMP a analýze práce a rozpětí z předchozích kapitol.
Lekce 5 • Šablony a hustá lineární algebra
Pokrývá výpočty s dlaždicovými šablonami a paralelní maticové operace pomocí rozkladu ve stylu BLAS. Aplikuje blokování mezipaměti a jádra GPU na numerické úlohy.
Váš platný certifikát o dokončení
Tento kurz je pro vás:
Softwaroví inženýři, kteří chtějí vymáčknout více rychlosti z existujících kódových základen.
Studenti informatiky, kteří se připravují na výzkumné role v oblasti vysoce výkonného počítání.
Datoví vědci, jejichž pipeline v Pythonu jsou příliš pomalé pro produkční pracovní zátěže.
Vývojáři her, kteří chtějí plně využít vícejádrové procesory a hardwarové GPU.
Výzkumníci provozující simulace, kteří potřebují škálovat nad rámec jednoho stroje.
Backendoví inženýři, kteří přecházejí do rolí zaměřených na výkon systémů nebo infrastruktury.
Co říkají naši studenti
Vaše lekce jsou perfektní. Koupil jsem si roční balíček a konečně mám možnost sledovat různá témata, která mě zajímají, aniž bych musel měnit platformu... děkuji za vše, co děláte, už jsem vás doporučil dalším lidem...

Líbí se mi, jak jsou lekce přímočaré a jak mohu přepínat mezi kapitolami a přeskakovat obsah, který nepotřebuji.

Líbí se mi obsah a způsob prezentace a přepisu videí, což celý proces zrychluje!

Platforma je rychlá a jednoduchá na používání. Rozmanitost obsahu a doplňková videa velmi pomáhají při učení.

Hlavní školení
Často kladené otázky
Kdo je Dedika?
Je certifikát platný v Česko?
Jsou kurzy zdarma?
Jaká je pracovní zátěž kurzu?
Jak kurzy vypadají?
Jak kurzy fungují?
Jaká je délka kurzů?
Jaká je cena nebo poplatek za kurzy?
Co je EAD nebo online kurz a jak funguje?
PDF kurz




















