Skip to main content
Skip header

Introduction to programming of HPC systems

Course aims

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.

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

Advised 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)


Language of instruction čeština, angličtina, čeština, angličtina
Code 9600-1028
Abbreviation ZPHPC
Course title Introduction to programming of HPC systems
Coordinating department IT4Innovations
Course coordinator Ing. Ondřej Meca, Ph.D.