High Performance Computing Applications and Architectures

Course Description

The course introduces students to the basic concepts of high performance parallel computing systems and associated high performance applications. The course explains the types of parallelism and methods of exploitation in designing applications. It then explains the execution models in high-performance parallel systems and the methods of designing and optimizing applications for such systems.

Learning Outcomes

  1. Define the structure, architecture and components of high-performance computer systems
  2. Evaluate and analyze the performance of applications in high performance computing systems
  3. Apply application design and optimization methods in high performance computing systems
  4. Analyze applications and application performance against different criteria
  5. Create an application optimization methodology based on different criteria
  6. Compare methods of implementing computer system components and applications for high performance systems
  7. Select methods for implementing computer system components and applications for high performance systems

Forms of Teaching

Lectures

Lectures are held every week (3 hours per week). Theoretical foundations of high-performance computing applications and architectures are explained together with practical programming examples.

Independent assignments

Students solve simple problems by writing HPC oriented programs.

Laboratory

Students write, debug, and execute HPC programs using languages and architectures designed for HPC programming.

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Laboratory Exercises 0 % 12 % 0 % 12 %
Mid Term Exam: Written 0 % 38 % 0 %
Final Exam: Written 0 % 50 %
Exam: Written 0 % 68 %
Exam: Oral 20 %
Comment:

All Laboratory excercises must be succesfully completed in order to get the passing grade.

Week by Week Schedule

  1. Multicore and manycore systems
  2. Shared multiprocessor memory systems and memory consistency, Multicore and manycore systems
  3. Interconnection networks (hypercube, shuffle-exchange, mesh, crossbar), Shared multiprocessor memory systems and memory consistency
  4. Power Law, SIMD, vector processing
  5. SIMD, vector processing
  6. SIMD, vector processing, GPU, co-processing
  7. Example SIMD and MIMD instruction sets and architectures
  8. Midterm exam
  9. Vector processors and GPUs
  10. Vector processors and GPUs, Parallel matrix computations
  11. Network on chip and heterogenous accellerated architectures, Alternative architectures (VLIW/EPIC, accelerators, and other kinds of special-purpose processors)
  12. Critical paths, work and span, and the relation to Amdahl’s law, Models for parallel program performance
  13. Critical paths, work and span, and the relation to Amdahl’s law, Power usage and management
  14. Power usage and management
  15. Final exam

Study Programmes

University graduate
[FER3-HR] Audio Technologies and Electroacoustics - profile
Elective Courses (2. semester)
[FER3-HR] Communication and Space Technologies - profile
Elective Courses (2. semester)
[FER3-HR] Computational Modelling in Engineering - profile
Elective Courses (2. semester)
[FER3-HR] Computer Engineering - profile
Core-elective courses (2. semester)
[FER3-HR] Computer Science - profile
Elective Courses (2. semester)
[FER3-HR] Control Systems and Robotics - profile
Elective Courses (2. semester)
[FER3-HR] Data Science - profile
Elective Courses (2. semester)
[FER3-HR] Electrical Power Engineering - profile
Elective Courses (2. semester)
[FER3-HR] Electric Machines, Drives and Automation - profile
Elective Courses (2. semester)
[FER3-HR] Electronic and Computer Engineering - profile
Elective Courses (2. semester)
[FER3-HR] Electronics - profile
Elective Courses (2. semester)
[FER3-HR] Information and Communication Engineering - profile
Elective Courses (2. semester)
[FER3-HR] Network Science - profile
Elective Courses (2. semester)
[FER3-HR] Software Engineering and Information Systems - profile
Elective Courses (2. semester)

Literature

John L. Hennessy, David A. Patterson (2017.), Computer Architecture, Morgan Kaufmann
Yan Solihin (2015.), Fundamentals of Parallel Multicore Architecture, CRC Press
Ruud van der Pas, Eric Stotzer, Christian Terboven (2017.), Using OpenMP—The Next Step, MIT Press
Rob Farber (2011.), CUDA Application Design and Development, Elsevier
William Gropp, Ewing Lusk, Anthony Skjellum (2014.), Using MPI, MIT Press

Laboratory exercises

For students

General

ID 222466
  Summer semester
5 ECTS
L1 English Level
L1 e-Learning
45 Lectures
0 Seminar
0 Exercises
12 Laboratory exercises
0 Project laboratory

Grading System

90 Excellent
80 Very Good
65 Good
50 Sufficient