1. Course Title | High Performance Systems and Computing | |||||||
2. Code | 3ФЕИТ07З031 | |||||||
3. Study program | KTI | |||||||
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/7 | 7. Number of ECTS credits | 6.00 | |||||
8. Lecturer | Dr Daniel Denkovski | |||||||
9. Course Prerequisites | ||||||||
10. Course Goals (acquired competencies): Introduction to high-performance computing systems and parallel programming. Upon completion of the course, students will be able to independently use high performance computing systems and write appropriate software solutions. |
||||||||
11. Course Syllabus: Introduction. Concepts of parallel processing. Basic concepts for design of parallel processing. Synchronization. Deployment. Process dependency. Mapping parallel algorithms of parallel architectures. Models with shared memory. Shared memory and threads. Parallel algorithms: ideal and realistic models. Introduction to OpenMP. Introduction to Distributed Memory and MPI. Practical examples with MPI. Introduction to GPUs. Introduction to GPU programming. GPU programming and CUDA. Advanced concepts for parallel programming. Parallel Pattern Templates. Examples of parallel algorithms. Algorithms for processing (sparse) matrices. Fast Furier Transformation Algorithms (FFT). Algorithms for matrices and graphs. Performance measurement. |
||||||||
12. Learning methods: Theoretical and practical (laboratory) classes | ||||||||
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 | 15 | ||||||
16.2. Individual tasks | 30 | |||||||
16.3. Homework and self-learning | 60 | |||||||
17. Grading | 17.1. Exams | 10 | ||||||
17.2. Seminar work/project (presentation: written and oral) | 40 | |||||||
17.3. Activity and participation | 0 | |||||||
17.4. Final exam | 50 | |||||||
18. Grading criteria (points) | up to 50 points | 5 (five) (F) | ||||||
from 51 to 60 points | 6 (six) (E) | |||||||
from 61 to 70 points | 7 (seven) (D) | |||||||
from 71 to 80 points | 8 (eight) (C) | |||||||
from 81 to 90 points | 9 (nine) (B) | |||||||
from 91 to 100 points | 10 (ten) (A) | |||||||
19. Conditions for acquiring teacher’s signature and for taking final exam | laboratory 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 | Evaluation of the curriculum using tests and quizzes | |||||||
23. Literature | ||||||||
23.1. Required Literature | ||||||||
No. | Author | Title | Publisher | Year | ||||
1 | Peter Pacheco | An Introduction to Parallel Programming | Morgan Kaufmann | 2011 | ||||
2 | G. Hager, G. Wellein | Introduction to High Performance Computing for Scientists and Engineers | CRC Press | 2010 | ||||
3 | David A. Patterson | Computer Architecture: A Quantitative Approach, 5th Ed. | Morgan Kaufmann | 2011 | ||||
23.2. Additional Literature | ||||||||
No. | Author | Title | Publisher | Year | ||||
1 | A. Grama, G. Karypis, V.Kumar, A. Gupta | Introduction to Parallel Computing, 2nd Ed.) 2nd Edition by | Pearson | 2003 | ||||
2 | David A. Bader | Petascale Computing: Algorithms and Applications | Chapman and Hall/CRC | 2007 | ||||
3 | D. Storti, M. Yurtoglu | CUDA for Engineers: An Introduction to High-Performance Parallel Computing | Addison-Wesley Professional | 2015 |