Course detail

Parallel Data Processing

FEKT-MKC-PZPAcad. year: 2025/2026

Parallelization using CPU. Parallelization using GPU (matrix operations, deep learning algorithms). Technologies: Apache Spark, Hadoop, Kafka, Cassandra. Distributed computations for operations: data transformation, aggregation, classification, regression, clustering, frequent patterns, optimization. Data streaming – basic operations, state operations, monitoring. Further technologies for distributed computations.

Language of instruction

Czech

Number of ECTS credits

6

Mode of study

Not applicable.

Entry knowledge

Not applicable.

Rules for evaluation and completion of the course

final exam
The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year.

Aims

The goal of the course is to introduce parallelization for data analysis with using common processors, graphic processors and distributed systems.
Students have skills of design and implementation of various forms of parallel systems to solve big data challenge. They will learn techniques for the parallelization of computations using CPU and GPU and further they will learn techniques for distributed computations. Students will control technologies Apache Spark, Kafka, Cassandra to solve distributed data processing with using data operations: data transformations, aggregation, classification, regression, clustering, frequent patterns.

Study aids

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

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

Recommended reading

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

Classification of course in study plans

  • Programme MPC-TIT Master's 2 year of study, winter semester, compulsory-optional

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

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.

 

Exercise in computer lab

26 hod., compulsory

Teacher / Lecturer

Syllabus

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.

 

Project

13 hod., optionally

Teacher / Lecturer

Syllabus

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.