Course detail
Practical Parallel Programming
FIT-PPPAcad. year: 2022/2023
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.
Language of instruction
Number of ECTS credits
Mode of study
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
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
- Missed labs can be substituted in alternative dates (monday or friday)
- There will be a place for missed labs in the last week of the semester.
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar: Introduction to Parallel Computing, Addison-Wesley, 2003, 978-0201648652.Slides: download
Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 1136 s., ISBN 1-55860-596-7.
Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605 URL: download
Victor Eijkhout: Parallel Programming in MPI and OpenMP Full book: download web version: https://theartofhpc.com/pcse/
William Gropp, Ewing Lusk, Anthony Skjellum: Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing InterfaceUsing MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface, MIT Press, 978-0262571326
Recommended reading
MPI Tutoriál: http://mpitutorial.com/
Elearning
Classification of course in study plans
- Programme IT-MSC-2 Master's
branch MBS , 0 year of study, summer semester, elective
branch MIN , 0 year of study, summer semester, elective
branch MIS , 0 year of study, summer semester, elective
branch MMM , 0 year of study, summer semester, elective
branch MPV , 1 year of study, summer semester, compulsory
branch MSK , 1 year of study, summer semester, compulsory - Programme MITAI Master's
specialization NADE , 0 year of study, summer semester, elective
specialization NBIO , 0 year of study, summer semester, compulsory
specialization NCPS , 0 year of study, summer semester, elective
specialization NEMB , 2 year of study, summer semester, compulsory
specialization NGRI , 0 year of study, summer semester, elective
specialization NHPC , 1 year of study, summer semester, compulsory
specialization NIDE , 0 year of study, summer semester, elective
specialization NISD , 0 year of study, summer semester, elective
specialization NISY up to 2020/21 , 0 year of study, summer semester, elective
specialization NMAL , 0 year of study, summer semester, elective
specialization NMAT , 0 year of study, summer semester, elective
specialization NNET , 0 year of study, summer semester, elective
specialization NSEC , 0 year of study, summer semester, elective
specialization NSEN , 0 year of study, summer semester, elective
specialization NSPE , 0 year of study, summer semester, elective
specialization NVER , 0 year of study, summer semester, elective
specialization NVIZ , 0 year of study, summer semester, elective
specialization NISY , 0 year of study, summer semester, elective - Programme IT-MSC-2 Master's
branch MBI , 0 year of study, summer semester, compulsory-optional
branch MGM , 0 year of study, summer semester, compulsory-optional - Programme MITAI Master's
specialization NEMB up to 2021/22 , 2 year of study, summer semester, compulsory
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- Introduction to parallel processing.
- Architectures with distributed memory,
- Interconnection networks: topology and routing algorithms, switching, flow control.
- Technologies of interconnection networks (Infiniband).
- Distributed file systems (Lustre, HPFS).
- Message passing interface, pair-wise communications, data types
- Collective communications and communicators,
- Hybrid programming OpenMP/MPI and one-sided communications.
- Parallel code debugging, profiling and tracing.
- Programming patterns for parallel programming.
- Case studies: matrix calculations, linear equation systems
- Case studies: solution of PDE systems, finite difference, spectral methods
- Case studies: Fluid dynamics, N-Body systems, Monte-Carlo.
Exercise in computer lab
Teacher / Lecturer
Syllabus
- MPI: Point-to-point communications
- MPI: Collective communications
- MPI: Communicators
- MPI: Data types, reduction
- MPI: Parallel input and output
- Profiling and tracing of parallel applications
- Matrix calculations.
- Finite difference methods.
Project
Teacher / Lecturer
Syllabus
- A parallel program in MPI on the supercomputer.
Elearning