Parallel Programming

Course Description

The course points to the need for algorithms that can take advantage of the increasing availability of parallel computational power. It describes the principles of parallel algorithm development and parallel programming models. The course also presents parallel programming utilities and enables the students to utilize the presented techniques.

Learning Outcomes

  1. describe parallel computation and parallel programming models
  2. describe the PRAM computer model
  3. apply the PRAM programming model in parallel programming
  4. apply MPI technology in parallel program development
  5. recognize phases of parallel algorithm design
  6. combine parallel algorithm development elements
  7. evaluate efficiency and scalability of parallel algorithms

Forms of Teaching

Lectures

predavanja

Exercises

vježbe

Independent assignments

programski projekt

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Laboratory Exercises 0 % 15 % 0 % 10 %
Mid Term Exam: Written 0 % 35 % 0 %
Final Exam: Written 0 % 50 %
Exam: Written 50 % 50 %
Exam: Oral 40 %

Week by Week Schedule

  1. Flynn’s taxonomy
  2. Parallel algorithm development models
  3. Message passing, Shared vs; distributed memory
  4. Message passing
  5. Formal models of parallel computation, including the Parallel Random Access Machine (PRAM/APRAM) and alternatives such as Bulk Synchronous Parallel (BSP)
  6. Formal models of parallel computation, including the Parallel Random Access Machine (PRAM/APRAM) and alternatives such as Bulk Synchronous Parallel (BSP)
  7. Parallel algorithmic patterns (divide-and-conquer, map and reduce, master-workers, others)
  8. Midterm exam
  9. Parallel algorithmic patterns (divide-and-conquer, map and reduce, master-workers, others)
  10. Analysis methods for parallel algoritmhs
  11. Speed-up and scalability
  12. Performance measurement and model evaluation
  13. Modular parallel algorithms
  14. Non-uniform memory architectures; GPGPU
  15. Final exam

Study Programmes

University graduate
Audio Technologies and Electroacoustics (profile)
Free Elective Courses (2. semester)
Communication and Space Technologies (profile)
Free Elective Courses (2. semester)
Computational Modelling in Engineering (profile)
Free Elective Courses (2. semester)
Computer Engineering (profile)
Elective Course of the profile (2. semester)
Computer Science (profile)
(2. semester)
Control Systems and Robotics (profile)
Free Elective Courses (2. semester)
Data Science (profile)
Free Elective Courses (2. semester)
Electrical Power Engineering (profile)
Free Elective Courses (2. semester)
Electric Machines, Drives and Automation (profile)
Free Elective Courses (2. semester)
Electronic and Computer Engineering (profile)
Free Elective Courses (2. semester)
Electronics (profile)
Free Elective Courses (2. semester)
Information and Communication Engineering (profile)
Free Elective Courses (2. semester)
Network Science (profile)
Free Elective Courses (2. semester)
Software Engineering and Information Systems (profile)
Core-elective courses (2. semester)

Literature

D. Jakobović (.), Paralelno programiranje - skripta,
I. Foster (.), Designing and Building Parallel Programs, Addison-Wesley

For students

General

ID 222648
  Summer semester
5 ECTS
L1 English Level
L1 e-Learning
30 Lectures
15 Exercises
15 Laboratory exercises

Grading System

Excellent
Very Good
Good
Acceptable