Parallel algorithms

In the introductory lectures, we will focus on general approaches to design of parallel algorithms and their properties important for understanding the fundamental principles of parallel and distributed algorithms. Subsequently we will talk about fundamental parallel algorithms; typically, constituting cornerstones of algorithms for real-world problems. The laboratory exercise will be aimed at hardware platform commonly used in practice.

Code
B4M35PAG
Semester
Winter
Form of study
Fulltime
Range
2P+2S
Capacity
50
Occupied
45
Credits
6
Completion
Assessment + Examination
Language
Czech
Lectures contents

1. Introduction to parallel computing
2. Principles of parallel and distributed algorithms design
3. Basic communication operations
4. Properties of parallel algorithms
5. Sorting
6. Matrix operations
7. Algorithms in linear algebra, Test
8. Parallel accelerators
9. Graph algorithms I.
10. Graph algorithms II.
11. Combinatorial algorithms
12. Dynamic programming
13. Fast Fourier transform

Tutorials contents

1. Introduction to parallel programming, environment setting
2. Introduction to Cpp11 threads
3. Advanced constructs in Cpp11
4. Assignment of the semestral work + homework 1
5. OpenMP - basic constructs
6. OpenMP - vectorization, parallel sort
7. Homework 2, deadline for homework 1
8. Semestral work - consultation
9. OpenMPI - distributed algorithms
10. Homework 3, deadline for homework 2
11. Semestral work - consultation
12. Presentations of semestral works
13. deadline for homework 3, student assessment