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.
1. Introduction to parallel computing
2. Principles of parallel and distributed algorithms design
3. Basic communication operations
4. Properties of parallel and distributed algorithms
6. Matrix operations
7. Graph algorithms I.
8. Graph algorithms II.
9. Combinatorial algorithms
10. Dynamic programming and metaheuristic algorithms
11. Algorithms in linear algebra
12. Fast Fourier transform
13. Distributed algorithms in Ad Hoc networks
2. Semester project assignment
3. Advanced OpenMP Constructs
4. Semester project consultation
6. Semester project consultation
7. Open MPI
8. Distributed algorithms in Open MPI
9. Semester project consultation
10. Parallel graph algorithms
11. Semester project consultation
12. Presentation of Semester projects