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

Gurantor departmentIT4InnovationsCredits6
Subject guarantorMgr. Branislav Jansík, Ph.D.Subject version guarantorMgr. Branislav Jansík, Ph.D.
Study levelundergraduate or graduateRequirementCompulsory
Study languageCzech
Year of introduction2019/2020Year of cancellation
Intended for the facultiesFEIIntended for study typesFollow-up Master
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Examination 2+4
Combined Examination 8+20

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



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)

Way of continuous check of knowledge in the course of semester


Další požadavky na studenta

Knowledge of the C / C ++ or Fortran programming language in any version Knowledge of instruction-level programming is recommended but not required.


Subject has no prerequisities.


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

Full-time form (validity from: 2019/2020 Winter semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of points
Examination Examination 100  51
Mandatory attendence parzicipation: Attendance on exercises. Elaboration of a project.

Show history

Occurrence in study plans

Academic yearProgrammeField of studySpec.FormStudy language Tut. centreYearWSType of duty
2019/2020 (N0541A170007) Computational and Applied Mathematics (S01) Applied Mathematics P Czech Ostrava 1 Compulsory study plan
2019/2020 (N0541A170007) Computational and Applied Mathematics (S02) Computational Methods and HPC P Czech Ostrava 1 Compulsory study plan
2019/2020 (N0541A170007) Computational and Applied Mathematics (S01) Applied Mathematics K Czech Ostrava 1 Compulsory study plan
2019/2020 (N0541A170007) Computational and Applied Mathematics (S02) Computational Methods and HPC K Czech Ostrava 1 Compulsory study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner