Ternopil Ivan Puluj National Technical University

Каф. комп'ютерних наук

Distributed Systems Technologies and Parallel Computations


1. Educational programs for which discipline is mandatory:

# Educational stage Broad field Major Educational program Course(s) Semester(s)
1 bachelor's 12. Інформаційні технології 122. Комп’ютерні науки та інформаційні технології (бакалавр) 4 7

2. The course is offered as elective for all levels of higher education and all educational programs.

3. Information about the author of the course

Full name Nazarevych Oleg Bogdanovych
Academic degree PhD
Academic title Assoc. Prof.
Link to the teacher`s page on the official website of the University http://library.tntu.edu.ua/personaliji/a/n/nazarevych-oleh-bohdanovych/
Е-mail (in the domain tntu.edu.ua)

4. Information about the course

Study hours structure Lectures: 32
Practical classes: 0
Laboratory classes: 32

Amount of hours for individual work: 64
ECTS credits: 4
Teaching language english
Form of final examination credit
Link to an electronic course on the e-learning platform of the university https://dl.tntu.edu.ua/bounce.php?course=3000

5. Program of discipline

Description of academic discipline, its goals, subject of study and learning outcomes

Distributed and Parallel Computing
The course requires basic programming skills in C/C++ and knowledge about data structures and algorithms.

The place of academic discipline in the structural and logical scheme of study according to the educational program

List of disciplines based on learning results from this discipline

Methods and means data integration

Contents of the academic discipline

Lectures (titles/topics)

It is intended to provide only a very quick overview of the extensive and broad topic of Parallel Computing, as a lead-in for the tutorials that follow it. As such, it covers just the very basics of parallel computing, and is intended for someone who is just becoming acquainted with the subject and who is planning to attend one or more of the other tutorials in this workshop. It is not intended to cover Parallel Programming in depth, as this would require significantly more time. The tutorial begins with a discussion on parallel computing - what it is and how it's used, followed by a discussion on concepts and terminology associated with parallel computing. The topics of parallel memory architectures and programming models are then explored. These topics are followed by a series of practical discussions on a number of the complex issues related to designing and running parallel programs. The tutorial concludes with several examples of how to parallelize simple serial programs.
Introduction to Operating Systems is a graduate-level introductory course in operating systems. This course teaches the basic operating system abstractions, mechanisms, and their implementations. The core of the course focuses on OS support for concurrency (threads) and synchronization, resource management (CPU, memory, I/O), and distributed services. The practical component of the course teaches multithread programming, inter-process communication, and distributed interactions via RPC.

Practical classes (topics)

Supercomputers and HPC systems
Components of HPC systems
HPC Access and Data Tranfser
HPC software modules
HPC Jobs and Scheduling Software
SLURM - workflow manager
PBS - Portable Batch System
Parallel programing with OpenMP

Laboratory classes (topics)

Lab 0 Install VM Ubuntu with OpenMP
Lab 1 OpenMP: How to Use Parallel Block in C/C++
Lab 2 OpenMP directive for parallel execution
Lab 3 Create a program with three threads

Learning materials and resources

1. How to start using OpenMP in Visual Studio https://youtu.be/-xnkxxEHsrg
2. Introduction to OpenMP Programming by Christian Terboven https://youtu.be/6FMn7M5jxrM?list=PLQsgurGJM5pgnaCedcuI-cmrwKPbCjvDA
3. Introduction to OpenMP 3.1 by Barbara Chapman https://youtu.be/OHx2G4a9JI0?list=PLQsgurGJM5pgyDoxNh3EjCJ1zKsORlASg
4. Computer Architecture and Structured Parallel Programming | James Reinders https://youtu.be/hACtH8NdeIk?list=PLGj2a3KTwhRbpV3Y-6A3k1R1usnDtClnv

6. Policies and assessment process of the academic discipline

Assessment methods and rating system of learning results assessment

You need pass all topics and done Labs

Table of assessment scores:

Assessment scale
(100 points)
(4 points)
90-100 Excellent А
82-89 Good B
75-81 C
67-74 Fair D
60-66 E
35-59 Poor FX
1-34 F
Approved by the department
(protocol №
on «