9600-1028 – Introduction to programming of HPC systems (ZPHPC)
Gurantor department | IT4Innovations |
Subject guarantor | Ing. Ondřej Meca, Ph.D. |
Study level | undergraduate or graduate |
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
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.