9600-1028/02 – Introduction to programming of HPC systems (ZPHPC)
Gurantor department | IT4Innovations | Credits | 6 |
Subject guarantor | Ing. Ondřej Meca, Ph.D. | Subject version guarantor | Mgr. Branislav Jansík, Ph.D. |
Study level | undergraduate or graduate | Requirement | Compulsory |
Year | 1 | Semester | summer |
| | Study language | English |
Year of introduction | 2019/2020 | Year of cancellation | 2021/2022 |
Intended for the faculties | FEI | Intended for study types | Follow-up Master |
Subject aims expressed by acquired skills and competences
The course will provide the basics of creating parallel applications, including parallel processing and optimization techniques, depending on the target parallel architecture.
Student will be able to:
- actively use the new concepts of parallel programming
- analyze the algorithm, propose a suitable decomposition for its parallelization
- analyze the efficiency of the parallelization design
- implement and optimize algorithm using processor kernel-level parallelization, using multi-core (multicore (CPU) and manycore (MIC) computing capabilities) through OpenMP directives and using multiple computational computing power through MPI inter-process communications.
Teaching methods
Lectures
Seminars
Tutorials
Summary
Compulsory literature:
1. Michael McCool (Author), James Reinders (Author), Arch Robison (Author), Structured Parallel Programming: Patterns for Efficient Computation Paperback – June 25, 2012
2. http://mpi-forum.org, MPI: A Message-Passing Interface Standard
3. http://openmp.org, OpenMP Application Program Interface
Recommended literature:
1. http://software.intel.com, Optimization and Performance Tuning for Intel® Xeon Phi™ Coprocessors - Part 1: Optimization Essentials
2. Intel® 64 and IA-32 Architectures Optimization Reference Manual
3. High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches Paperback – November 17, 2014 by James Reinders (Author), James Jeffers (Author)
Additional study materials
Way of continuous check of knowledge in the course of semester
E-learning
Other requirements
Knowledge of the C / C ++ or Fortran programming language in any version
Knowledge of instruction-level programming is recommended but not required.
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
Subject syllabus:
1. Introduction to HPC, Parallel Programming and Architectures of Current Microprocessors
2. Decomposition algorithms for parallelization, oriented acyclic graphs
3. Optimization techniques for instruction-level parallelization, explicit directives, and instruction-level parallelization
4. Programming parallel threads using OpenMP directives
5. Basic inter-process communication with MPI library, hybrid programming
6. Methods of analytical modeling of the effectiveness of parallel algorithms
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction
Předmět neobsahuje žádné hodnocení.