9600-1007/02 – Parallel Programming I (PP1)

Gurantor departmentIT4InnovationsCredits6
Subject guarantorMgr. Branislav Jansík, Ph.D.Subject version guarantorMgr. Branislav Jansík, Ph.D.
Study levelundergraduate or graduateRequirementCompulsory
Study languageEnglish
Year of introduction2016/2017Year of cancellation
Intended for the facultiesUSPIntended for study typesFollow-up Master
Instruction secured by
LoginNameTuitorTeacher giving lectures
JAN0369 Mgr. Branislav Jansík, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Credit and Examination 2+2

Subject aims expressed by acquired skills and competences

Upon the successful completion of the course, students will be able to: Analyze an algorithm and design suitable decomposition for its parallelization Analyze efficiency of the partitioning design Implement and optimize an algorithm using the instruction-level parallelism, combined computational power of many cores (multi-core (CPU) and many-core (MIC)), OpenMP directives, and combined computational power of many computational nodes through MPI inter-process communication.

Teaching methods

Project work


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


Other requirements

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


Subject has no prerequisities.


Subject has no co-requisities.

Subject syllabus:

1. Introduction to HPC and Parallel Programming 2. Introduction to the Architecture of Modern x86 Microprocessors 3. Decomposition of Algorithms for Parallelization, Directed Acyclic Graphs 4. Optimizing Methods for Instruction-level Parallelism, Explicit Directives and Commands for Instruction-level Parallelism 5. Programming of Parallel Threads using OpenMP Directives 6. Basic Inter-process Communication using MPI, Hybrid Programming 7. Methods for Analytical Modelling of Parallel Algorithms Efficiency

Conditions for subject completion

Full-time form (validity from: 2017/2018 Winter semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of points
Credit and Examination Credit and Examination 100 (100) 51
        Credit Credit 30  15
        Examination Examination 70  30
Mandatory attendence parzicipation: Solution of excursuses and their defense.

Show history

Occurrence in study plans

Academic yearProgrammeField of studySpec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2018/2019 (N2658) Computational Sciences (2612T078) Computational Sciences P English Ostrava 1 Compulsory study plan
2017/2018 (N2658) Computational Sciences (2612T078) Computational Sciences P English Ostrava 1 Compulsory study plan
2016/2017 (N2658) Computational Sciences (2612T078) Computational Sciences P English Ostrava 1 Compulsory study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner