9600-1028 – Introduction to programming of HPC systems (ZPHPC)

Gurantor departmentIT4Innovations
Subject guarantorIng. Ondřej Meca, Ph.D.
Study levelundergraduate or graduate
Subject version
Version codeYear of introductionYear of cancellationCredits
9600-1028/01 2019/2020 2021/2022 6
9600-1028/02 2019/2020 2021/2022 6
9600-1028/03 2021/2022 6
9600-1028/04 2021/2022 6

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)

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.