Detail předmětu

Paralelní zpracování dat

FEKT-MPC-PZPAk. rok: 2024/2025

Paralelizace na CPU. Paralelizace na GPU (maticové operace, algoritmy hlubokého učení). Technologie Apache Spark, Hadoop, Kafka, Cassandra. Distribuované výpočty pro operace: transformace dat, agregace, klasifikace, regrese, shlukování dat, četné vzory, optimalizace. Streamování dat – základní operace, stavové operace, monitorování. Další technologie pro distribuované výpočty.

Jazyk výuky

čeština

Počet kreditů

6

Pravidla hodnocení a ukončení předmětu

závěrečná zkouška
Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.

Učební cíle

Cílem kurzu je seznámit studenty s možnostmi paralelizace při zpracování dat s využitím klasických procesorů, grafických procesorů a distribuovaných systémů.
Absolventi jsou schopni návrhu a implementace různých forem paralelních systémů pro řešení problémů při zpracování velkých objemů dat. Naučí se techniky pro paralelizaci programů na CPU a GPU a dále techniky pro distribuované výpočty. Zde budou absolventi ovládat technologie Apache Spark, Kafka, Cassaandra a naučí se provádět distribuované zpracování dat s využitím datových operací: transformace, agregace, klasifikace, regrese, shlukování dat, četné vzory.

Základní literatura

Holubová, Irena, et al. Big Data a NoSQL databáze. Grada, 2015. (EN)

Doporučená literatura

BARLAS, Gerassimos. Multicore and gpu programming: an integrated approach. ISBN 9780124171374 (EN)

Zařazení předmětu ve studijních plánech

  • Program MPC-IBE magisterský navazující, 1. ročník, zimní semestr, povinně volitelný
  • Program MPC-KAM magisterský navazující, 1. ročník, zimní semestr, povinně volitelný

  • Program MPC-AUD magisterský navazující

    specializace AUDM-TECH , 2. ročník, zimní semestr, povinně volitelný

  • Program MPC-TIT magisterský navazující, 2. ročník, zimní semestr, povinně volitelný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Úvod do paralelního zpracování dat.

2. Paralelní výpočty na CPU – návrh paralelních programů, vlákna, procesy, synchronizace.

3. Úvod do programování GPU – vlákna, bloky, mřížka, PyCUDA.

4. Paměť GPU – globální, sdílená; rychlost a velikosti.

5. Synchronizace na GPU – atomické operace, warpy.

6. Paralelní vzory na GPU – warp shuffles, asynchronní spuštění funkcí, paralelní redukce.

7. Operace s maticemi a “streams” na GPU – násobení matic, využití více GPU.

8. Úvod do Spark – Jobs, Stages, Tasks, DAG atd.

9. Pokročilé operace ve Spark – sdílené proměnné, partitioning, webové rozhraní, DataFrames.

10. Strojové učení ve Spark – statistika, extrakce příznaků, klasifikace, shluková analýza apod.

11. Streamování ve Spark – DStreams, SQL operace, MLlib.

12. Další paralelní technologie – Apache Kafka, Nvidia Jetson, TPU.

 

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

Osnova

Cvičení na počítači jsou vedeny v jazyce Python a s využitím prostředí Google Colab.

1. Úvod do paralelního zpracování dat.

2. Paralelní výpočty na CPU – návrh paralelních programů, vlákna, procesy, synchronizace.

3. Úvod do programování GPU – vlákna, bloky, mřížka, PyCUDA.

4. Paměť GPU – globální, sdílená; rychlost a velikosti.

5. Synchronizace na GPU – atomické operace, warpy.

6. Paralelní vzory na GPU – warp shuffles, asynchronní spuštění funkcí, paralelní redukce.

7. Operace s maticemi a “streams” na GPU – násobení matic, využití více GPU.

8. Úvod do Spark – Jobs, Stages, Tasks, DAG atd.

9. Pokročilé operace ve Spark – sdílené proměnné, partitioning, webové rozhraní, DataFrames.

10. Strojové učení ve Spark – statistika, extrakce příznaků, klasifikace, shluková analýza apod.

11. Streamování ve Spark – DStreams, SQL operace, MLlib.

12. Další paralelní technologie – Apache Kafka, Nvidia Jetson, TPU.

 

Projekt

13 hod., nepovinná

Vyučující / Lektor

Osnova

Jedná se o samostatný projekt, který je vypracováván během semestru, kdy student dosažené znalosti aplikuje na řešení konkrétní komplexní úlohy.