Students will have good understanding of existing parallel computer and parallel programming models. Students will be able to design and implement a parallel algorithm maintaining the desired quality properties. Students will have practical knowledge of basic programming tools for parallel program design and quantitative performance analysis.
- describe parallel computation and parallel programming models
- describe PRAM computer model
- apply PRAM programming model in parallel programming
- apply MPI technology in parallel program development
- recognize phases of parallel algorithm design
- combine parallel algorithm development elements
- evaluate efficiency and scalability of parallel algorithms
Forms of Teaching
Teaching is organized into two teaching cycles (15-week classes). First cycle consists of 7-week classes and midterm exam. Second cycle consists of 6-week classes and final exam.Exams
Midterm exam. Final exam.Consultations
Consultation hours will be given at the first lectureProgramming Exercises
|Type||Threshold||Percent of Grade||Threshold||Percent of Grade|
|Homeworks||0 %||12 %||0 %||0 %|
|Attendance||0 %||3 %||0 %||0 %|
|Mid Term Exam: Written||0 %||35 %||0 %|
|Final Exam: Written||0 %||50 %|
|Exam: Written||50 %||50 %|
|Exam: Oral||50 %|
All homework assignments must be handed in (regardless of the number of points) as a condition for taking the exam
Week by Week Schedule
- Parallel computer models. Parallel programming paradigms. Properties of parallel programs. Sequential to parallel program conversion.
- MPI - Message Passing Interface standard
- Synchronous shared memory parallel computer model (PRAM).
- Sum of prefixes algorithm.
- Asynchronous parallel computer (APRAM). Model and program complexity.
- Designing parallel algorithms. Design phases.
- Algorithm partitioning. Communication structure definition.
- Task agglomeration. Task to processor mapping.
- Examples of parallel algorithms designs.
- Evolutionary and genetic algoritms principles. Genetic algorithm parallelization. Parallel evolutionary algorithms.
- Quantitative analysis of parallel algorithms. Algorithm performance definitions.
- Parallel algorithm scalability analysis.
- Development of modular parallel programs. Modular development support in MPI.
- (Final exam)