
Ternopil Ivan Puluj National Technical University

Каф. комп'ютерних наук
Distributed Systems Technologies and Parallel Computations
syllabus
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.
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 exam |
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 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.
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
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
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
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 | ||
VNZ (100 points) |
National (4 points) |
ECTS |
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 «
»
y.).