1. Course Title |
High Performance Systems and Computing |
2. Code |
4ФЕИТ07Л022 |
3. Study program |
КТИ |
4. Organizer of the study program (unit, institute, department) |
Faculty of Electrical Engineering and Information Technologies |
5. Degree (first, second, third cycle) |
First cycle |
6. Academic year/semester |
IV/8 |
7. Number of ECTS credits |
6 |
8. Lecturer |
D-r Daniel Denkovski |
9. Course Prerequisites |
Passed: Data structures and algorithm analysis, Operating Systems |
10. Course Goals (acquired competencies): Knowledge in the domains of high-performance computing systems and parallel programming. Upon completion of the course, students will be able to independently use high performance computing systems, analyze and design parallel algorithms and develop appropriate software solutions using the MPI, Pthreads and OpenMP libraries. |
11. Course Syllabus: Introduction to parallel hardware and software. Basic concepts in parallel processing. Task and data-level parallelism. Design concepts and considerations for parallel programs. Synchronization and barriers. Scheduling. Process/thread inter-dependences and non-determinism in parallel programs. Shared and distributed memory parallel systems. Introduction to distributed memory parallel programming and MPI. Point-to-point and collective communications in MPI. Practical examples with MPI. Shared memory programs and threads. Introduction to Pthreads and OpenMP for shared memory parallel program. Critical sections, mutexes, locks. Practical examples with Pthreads and OpenMP. Introduction to GPUs and GPU programming. Performance evaluation, efficiency of parallel programs. |
12. Learning methods: Theoretical and practical classes, laboratory exercises, individual work on project assignments and seminar works |
13. Total number of course hours |
2 + 2 + 1 + 0 |
14. Distribution of course hours |
180 |
15. Forms of teaching |
15.1. Lectures-theoretical teaching |
30 |
15.2. Exercises (laboratory, practice classes), seminars, teamwork |
45 |
16. Other course activities |
16.1. Projects, seminar papers |
30 |
16.2. Individual tasks |
30 |
16.3. Homework and self-learning |
45 |
17. Grading |
17.1. Exams |
0 |
17.2. Seminar work/project (presentation: written and oral) |
30 |
17.3. Activity and participation |
30 |
17.4. Final exam |
40 |
18. Grading criteria (points) |
up to 50 points |
5 (five) (F) |
from 51to 60 points |
6 (six) (E) |
from 61to 70 points |
7 (seven) (D) |
from 71to 80 points |
8 (eight) (C) |
from 81to 90 points |
9 (nine) (B) |
from 91to 100 points |
10 (ten) (A) |
19. Conditions for acquiring teacher’s signature and for taking final exam |
Regular following of lectures and tutorial classes and complete fulfillment of all lab exercises |
20. Forms of assessment |
One partial written exam during the semester (in the middle of the semester) with a duration of 120 minutes or one final written exam in a corresponding exam session with a duration of 120 minutes. Every student must do an independent obligatory project. The student may opt to do an additional supplementary project. The final grade includes points from the exam and the obligatory project work and from the supplementary project (if one is made). Usage of books, hand-written materials or any kind of supplementary text book during the exam is allowed, but electronic devices are not. |
21. Language |
Macedonian and English |
22. Method of monitoring of teaching quality |
Internal evaluation and questionnaires |
23. Literature |
23.1. Required Literature |
No. |
Author |
Title |
Publisher |
Year |
1 |
Peter Pacheco |
An Introduction to Parallel Programming |
Morgan Kaufmann |
2011 |
2 |
G. Barlas |
Multicore and GPU Programming: An Integrated Approach |
Morgan Kaufmann |
2015 |
23.2. Additional Literature |
No. |
Author |
Title |
Publisher |
Year |
1 |
D. B. Kirk and W. W. Hwu |
Programming Massively Parallel Processors: A Hands-on Approach |
Morgan Kaufmann |
2017 |
2 |
B. Schmidt, J. Gonzalez-Dominguez, C. Hundt and M. Schlarba |
Parallel Programming: Concepts and Practice |
Morgan Kaufmann |
2018 |