Course: Parallel Programming

« Back
Course title Parallel Programming
Course code UFY/PP
Organizational form of instruction Lecture + Lesson
Level of course Bachelor
Year of study not specified
Frequency of the course In each academic year, in the winter semester.
Semester Winter
Number of ECTS credits 4
Language of instruction Czech
Status of course Compulsory-optional, Optional
Form of instruction unspecified
Work placements unspecified
Recommended optional programme components None
Lecturer(s)
  • Předota Milan, doc. RNDr. Ph.D.
Course content
Lectures: 1. Introduction to parallel computing. What is parallel computing? Why do we need parallel computers? Parallelization strategies. Acquaintance with a simple parallel program. 2. Commands of the C language for working with files and timing of the program. 3. Differences in parallelization with respect to cooperation of threads during the calculation. Shared vs. distributed memory, MPI vs. OpenMP parallel environments. 4. What is MPI? Commands for creating and managing a parallel environment. 5. Parallelization of MPI, basic commands (MPI_BCAST MPI_REDUCE, MPI_ALLREDUCE). 6. Management of tasks, execution of parallel tasks, queue submission systems. 7. Parallelization using MPI, other commands (SEND_MPI, MPI_RECV). 8. Input and output in parallel programs. Comparison of different methods. 9. Communication vs. computing time - optimizing the number of threads' efficiency. 10. Parallelization in OpenMP, basic commands. 11. Application: Parallel Computing in mathematics. 12. Application. Parallel sorting. 13. Application. Parallel molecular dynamics. 14. Programming on the graphic cards (GPU). Seminars: Seminars accompany the lectures - students work on remote parallel cluster, code and execute tasks accompanying each lecture.

Learning activities and teaching methods
Monologic (reading, lecture, briefing), Demonstration, Activating (simulations, games, drama)
  • Preparation for classes - 39 hours per semester
  • Class attendance - 39 hours per semester
  • Preparation for exam - 30 hours per semester
Learning outcomes
Introduction to CPU parallelization, methods of parallelization, its hardware and software implementation using MPI and OpenMP. Quick introduction to parallelization on GPU - graphical cards. Solution of sample practical tasks, work in a parallel environment.
Knowledge of MPI and OpenMP parallelization, knowledge of principles of GPU parallelization. Capability to write a parallel source code and/or parallelize serial code.
Prerequisites
Basic knowledge of programming in C language, basics of work in linux (can be quickly gained).

Assessment methods and criteria
Oral examination, Student performance assessment

Criteria for obtaining the course credit (zápočet): Solving at least 70% of tasks solved during exercises with the help of the teacher. Independent solution of two larger individual tasks to at least 50%. Criterium for passing the exam: At least 50% knowledge of the topic contained in the two drawn test questions.
Recommended literature
  • BARBARA CHAPMAN, GABRIELE JOST, RUUD VAN DER PAS: Using OpenMP: Portable Shared Memory Parallel Programming, The MIT Press, 2007.
  • Elearningové materiály ke kurzu M. Předoty.
  • MICHAEL J. QUINN: Parallel Programming in C with MPI and OpenMP, McGraw Hill Higher Education, 2003.
  • Parallel Programming in OpenMP by Rohit Chandra, Leo Dagum, Dave Kohr, and Dror Maydan.
  • Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation) by William Gropp, Ewing Lusk, and Anthony Skjellum.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester
Faculty: Faculty of Science Study plan (Version): Applied Informatics (1) Category: Informatics courses - Recommended year of study:-, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Applied Informatics (1) Category: Informatics courses - Recommended year of study:-, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Applied Informatics (1) Category: Informatics courses - Recommended year of study:-, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Applied Informatics (1) Category: Informatics courses - Recommended year of study:-, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Applied Informatics (1) Category: Informatics courses - Recommended year of study:-, Recommended semester: Winter