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

Independent assignments

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
Audio Technologies and Electroacoustics (profile)
Free Elective Courses (2. semester)
Communication and Space Technologies (profile)
Free Elective Courses (2. semester)
Computational Modelling in Engineering (profile)
Free Elective Courses (2. semester)
Computer Engineering (profile)
Core-elective courses (2. semester)
Computer Science (profile)
Free Elective Courses (2. semester)
Control Systems and Robotics (profile)
Free Elective Courses (2. semester)
Data Science (profile)
Free Elective Courses (2. semester)
Electrical Power Engineering (profile)
Free Elective Courses (2. semester)
Electric Machines, Drives and Automation (profile)
Free Elective Courses (2. semester)
Electronic and Computer Engineering (profile)
Free Elective Courses (2. semester)
Electronics (profile)
Free Elective Courses (2. semester)
Information and Communication Engineering (profile)
Free Elective Courses (2. semester)
Network Science (profile)
Free Elective Courses (2. semester)
Software Engineering and Information Systems (profile)
Free Elective Courses (2. semester)

Literature

(.), Computer Architecture, a Quantitative Approach 6th Edition, John Henessy and David Patterson, Morgan Kaufmann, 2017.,
(.), Fundamentals of Parallel Multicore Architecture, Chapman & Hall/CRC Computational Science, 2015.,
(.), Using OpenMP – The Next Step, Ruud van der Pas, Eric Stotzer and Christian Terboven, MIT Press, 2017.,
(.), CUDA Application Design and Development, Rob Farber, Morgan Kaufmann, 2011.,
(.), Using MPI: Portable Parallel Programming with the Message-Passing Interface, William Gropp, Ewing Lusk, Anthony Skjellum, MIT Press, 2014.,

For students

General

ID 222466
  Summer semester
5 ECTS
L2 English Level
L1 e-Learning
45 Lectures
12 Laboratory exercises

Grading System

Excellent
Very Good
Good
Acceptable