High Performance Systems and Computing

Објавено: October 12, 2018
  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