Course details

Computation Systems Architectures

AVS Acad. year 2023/2024 Winter semester 5 credits

The course covers architecture of modern computational systems composed of universal as well as special-purpose processors and their memory subsystems. Instruction-level parallelism is studied on scalar and superscalar processors. Then the processors with thread-level parallelism are discussed. Data parallelism is illustrated on SIMD streaming instructions and on graphical processors. Programming for shared memory systems in OpenMP follows and then the most proliferated multi-core multiprocessors and the advanced NUMA systems are described. Finally, the generic architecture of the graphics processing units and basic programming techniques using OpenMP are also covered. Techniques of  low-power processors are also explained.

Guarantor

Course coordinator

Language of instruction

Czech

Completion

Credit+Examination (written)

Time span

  • 26 hrs lectures
  • 12 hrs pc labs
  • 14 hrs projects

Assessment points

  • 60 pts final exam (written part)
  • 10 pts mid-term test (written part)
  • 30 pts projects

Department

Lecturer

Instructor

Learning objectives

To familiarize yourself with the architecture of modern computational systems based on x86, ARM and RISC-V multicore processors in configurations with uniform (UMA) and non-uniform (NUMA) shared memory, often accompanied with a GPU accelerator. To understand hardware aspects of computational systems that have a significant impact on the application performance and power consumption. To be able to assess computing possibilities of a particular architecture and to predict the performance of applications. To clarify the role of a compiler and its cooperation with processors. To be able to orientate oneself on the computational system market, to evaluate and compare various systems.

Overview of the architecture of modern computational systems, their capabilities, limits and future trends. The ability to estimate performance of software applications on a given computer system, identify performance issues and propose their rectification. Practical user experience with supercomputers.
Understanding of hardware limitations having impact on the efficiency of software solutions. 

Why is the course taught

There's a large range of problems and programming languages, where the performance of the final application, the amount of consumed memory or electric power is not significant. However, what shall we do in situations where these aspects are of critical importance?
The purpose of the AVS course is to examine and analyze the architecture of current multi-core super-scalar processors, memory subsystems and accelerator cards such as GPUs in order to understand their potential and limits. The practical part of the course is devoted to teaching the OpenMP library allowing efficient parallelization and vectorization on both CPUs and GPUs.

Prerequisite knowledge and skills

Von-Neumann computer architecture, computer memory hierarchy, cache memories and their organization, programming in assembly and in C/C++, compiler's tasks and functions.

Study literature

  • Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 1136 s., ISBN 1-55860-596-7. download.
  • Baer, J.L.: Microprocessor Architecture. Cambridge University Press, 2010, 367 s., ISBN 978-0-521-76992-1. info.
  • van der Pas, R., Stotzer, E., and Terboven, T.: Using OpenMP-The Next Step, MIT Press Ltd, ISBN 9780262534789, 2017. info.
  • Materiály ke kurzu Computer Science 152: Computer Architecture and Engineering. http://inst.eecs.berkeley.edu/~cs152/sp13/
  • Agner Fog: Software optimization resources.
  • Aktuální PPT prezentace přednášek v Elearningu.

Fundamental literature

  • Baer, J.L.: Microprocessor Architecture. Cambridge University Press, 2010, 367 s., ISBN 978-0-521-76992-1.
  • Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 1136 s., ISBN 1-55860-596-7.
  • van der Pas, R., Stotzer, E., and Terboven, T.: Using OpenMP-The Next Step, MIT Press Ltd, ISBN 9780262534789, 2017.

Syllabus of lectures

  1. Scalar processors, pipelined instruction processing and compiler assistance.
  2. Superscalar processors, dynamic instruction scheduling.
  3. Data flow through the hierarchy of cache memories. 
  4. Branch prediction, optimization of instruction and data fetching.
  5. Processors with data level parallelism.
  6. Multi-threaded and multi-core processors.
  7. Loop parallelism and code vectorization.
  8. Functional parallelism and acceleration of recursive algorithms.
  9. Synchronization on systems with shared memory.
  10. Algorithm for cache coherency.
  11. Architectures with distributed shared memory.
  12. Architecture and programming of graphics processing units.
  13. Low power processors and techniques.

Syllabus of computer exercises

  1. Performance measurement of sequential code 
  2. Cache blocking, loop swapping and unrolling
  3. OpenMP 4.0 vectorization 
  4. OpenMP loops 
  5. OpenMP tasks
  6. OpenMP sections and mutual exclusion 

Syllabus - others, projects and individual work of students

  • Performance evaluation and code optimization using OpenMP.
  • Development of an application in OpenMP on a NUMA node.

Progress assessment

Assessment of two projects, 14 hours in total and, computer laboratories and a midterm examination.

  • Missed labs can be substituted in alternative dates.
  • There will be a place for missed labs in the last week of the semester.

Exam prerequisites

To get 20 out of 40 points for projects and midterm examination.

Schedule

DayTypeWeeksRoomStartEndCapacityLect.grpGroupsInfo
Mon other 2023-12-25 L334 00:0023:59 Zápočet
Mon comp.lab 3., 5., 6., 8., 9., 10. of lectures O204 09:0010:5020 1MIT 2MIT xx Olšák
Mon other 2023-12-18 L334 12:0023:59 Zápočet
Mon comp.lab 3., 5., 8., 9., 10. of lectures O204 14:0015:5020 1MIT 2MIT xx Jaroš
Mon comp.lab 2023-10-23 O204 14:0015:5020 1MIT 2MIT xx Olšák
Mon exam 2023-10-30 E104 E105 E112 16:0016:50 Půlsemestrální test
Mon lecture 1., 2., 3., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures E104 E105 E112 16:0017:50294 1MIT 2MIT NBIO - NSPE NISD NSEC - NGRI NVER xx Jaroš
Mon lecture 2023-10-09 E104 E105 E112 16:0017:50294 1MIT 2MIT NBIO - NSPE NISD NSEC - NGRI NVER xx Mrázek
Tue other 2023-12-19 L334 00:0023:59 Zápočet
Tue other 2023-12-26 L334 00:0023:59 Zápočet
Tue comp.lab 3., 5., 6., 8., 9., 10. of lectures O204 08:0009:5020 1MIT 2MIT xx Piňos
Tue comp.lab 3., 5., 6., 8., 9., 10. of lectures O204 10:0011:5020 1MIT 2MIT xx Piňos
Tue comp.lab 3., 5., 6., 8., 9., 10. of lectures O204 12:0013:5020 1MIT 2MIT xx Piňos
Wed other 2023-12-20 L334 00:0023:59 Zápočet
Wed other 2023-12-27 L334 00:0023:59 Zápočet
Wed comp.lab 3., 6., 8., 9., 10. of lectures O204 09:0010:5020 1MIT 2MIT xx Jaroš
Wed comp.lab 2023-10-18 O204 09:0010:5020 1MIT 2MIT xx Olšák
Wed comp.lab 3., 6., 8., 9., 10. of lectures O204 11:0012:5020 1MIT 2MIT xx Jaroš
Wed comp.lab 2023-10-18 O204 11:0012:5020 1MIT 2MIT xx Olšák
Wed exam 2023-12-20 E104 E112 13:0014:50 Předtermín zkoušky
Wed exam 2024-01-03 D0206 D105 13:0014:50 řádná
Wed exam 2024-01-31 D0206 13:0014:50 2. termín
Thu other 2023-12-21 L334 00:0023:59 Zápočet
Thu other 2023-12-28 L334 00:0023:59 Zápočet
Thu comp.lab 3., 5., 6., 8., 10. of lectures O204 08:0009:5020 1MIT 2MIT xx Olšák
Thu comp.lab 2023-11-16 O204 08:0009:5020 1MIT 2MIT xx Jaroš
Thu comp.lab 3., 5., 6., 8., 9. of lectures O204 10:0011:5020 1MIT 2MIT xx Chlebík
Thu comp.lab 3., 5., 6., 8., 9. of lectures O204 16:0017:5020 1MIT 2MIT xx Chlebík
Fri other 2023-12-22 L334 00:0023:59 Zápočet
Fri other 2023-12-29 L334 00:0023:59 Zápočet
Fri exam 2024-01-19 D105 14:0015:50 1. termín
Fri comp.lab 3., 5., 6., 8., 10. of lectures O204 14:0015:5020 1MIT 2MIT xx Jaroš
Fri comp.lab 3., 5., 6., 8., 10. of lectures O204 16:0017:5020 1MIT 2MIT xx Jaroš
Sat other 2023-12-23 L334 00:0023:59 Zápočet
Sat other 2023-12-30 L334 00:0023:59 Zápočet
Sun other 2023-12-24 L334 00:0023:59 Zápočet
Sun other 2023-12-31 L334 00:0012:00 Zápočet

Course inclusion in study plans

Back to top