Course detail
Practical Parallel Programming
FIT-PPPAcad. year: 2020/2021
The course covers architecture and programming of parallel systems with functional and data parallelism. First, the parallel system theory and program parallelization are discussed. The detailed description of most proliferated supercomputing systems, interconnection network typologies and routing algorithms is followed by the architecture of parallel and distributed storage systems. The course goes on in message passing programming in standardized interface MPI. Consequently, techniques for parallel debugging and profiling are discussed. Last part of the course is devoted to the description of parallel programming patterns and case studies from the are of linear algebra, physical systems described by partial differential equations, N-Body systems and Monte-Carlo methods.
Guarantor
Department
Learning outcomes of the course unit
Knowledge of capabilities and limitations of parallel processing, ability to estimate performance of parallel applications. Language means for process/thread communication and synchronization. Competence in hardware-software platforms for high-performance computing and simulations.
Prerequisites
Co-requisites
Recommended optional programme components
Literature
http://mpitutorial.com/
http://www.cs.kent.edu/~jbaker/ParallelProg-Sp11/
Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605
Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 856 s., ISBN: 9780123838728
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Exam prerequisites:
To get 20 out of 40 points for projects and midterm examination.
Language of instruction
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
- Missed labs can be substituted in alternative individual dates
- There will be a place for missed labs in the last week of the semester.
Classification of course in study plans
- Programme IT-MGR-2 Master's
branch MBI , any year of study, summer semester, 5 credits, compulsory-optional
branch MGM , any year of study, summer semester, 5 credits, compulsory-optional
branch MIS , any year of study, summer semester, 5 credits, elective
branch MBS , any year of study, summer semester, 5 credits, elective
branch MIN , any year of study, summer semester, 5 credits, elective
branch MMM , any year of study, summer semester, 5 credits, elective - Programme MITAI Master's
specialization NADE , any year of study, summer semester, 5 credits, elective
specialization NBIO , any year of study, summer semester, 5 credits, compulsory
specialization NGRI , any year of study, summer semester, 5 credits, elective
specialization NNET , any year of study, summer semester, 5 credits, elective
specialization NVIZ , any year of study, summer semester, 5 credits, elective
specialization NCPS , any year of study, summer semester, 5 credits, elective
specialization NSEC , any year of study, summer semester, 5 credits, elective
specialization NISD , any year of study, summer semester, 5 credits, elective
specialization NIDE , any year of study, summer semester, 5 credits, elective
specialization NISY , any year of study, summer semester, 5 credits, elective
specialization NMAL , any year of study, summer semester, 5 credits, elective
specialization NMAT , any year of study, summer semester, 5 credits, elective
specialization NSEN , any year of study, summer semester, 5 credits, elective
specialization NVER , any year of study, summer semester, 5 credits, elective
specialization NSPE , any year of study, summer semester, 5 credits, elective - Programme IT-MGR-2 Master's
branch MPV , 1. year of study, summer semester, 5 credits, compulsory
branch MSK , 1. year of study, summer semester, 5 credits, compulsory - Programme MITAI Master's
specialization NHPC , 1. year of study, summer semester, 5 credits, compulsory
specialization NEMB , 2. year of study, summer semester, 5 credits, compulsory
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- Introduction to parallel processing.
- Parallel algorithm design and metodology.
- MPI: Point-to-point communications.
- MPI: Collective communications.
- MPI: Communicators and typologies.
- MPI: Data types.
- MPI: One-sided communications.
- Distributed file systems and MPI-IO.
- Knihovny pro paralelní vstup a výstup.
- Performance analysis of parallel and distributed applications.
- Case studies (Matrix multiplications, BLAS).
- Cace studies (Jacobi methods, FDTD).
- Interconnection networks: topology and routing algorithms, switching, flow control.
Exercise in computer lab
Teacher / Lecturer
Syllabus
- MPI: Point-to-point communications
- MPI: Collective communications
- MPI: Communicators
- MPI: Data types
- MPI: One sided communications
- MPI: Parallel input and output with MPI-IO
- MPI: Parallel input and output with HDF5
- Profiling and tracing of parallel applications
Project
Teacher / Lecturer
Syllabus
- A parallel program in MPI on the supercomputer.