SubjectsSubjects(version: 944)
Course, academic year 2023/2024
   Login via CAS
High-Performance Computing for Computational Science - NMNV565
Title: High-Performance Computing for Computational Science
Guaranteed by: Department of Numerical Mathematics (32-KNM)
Faculty: Faculty of Mathematics and Physics
Actual: from 2021
Semester: winter
E-Credits: 5
Hours per week, examination: winter s.:2/2, C+Ex [HT]
Capacity: unlimited
Min. number of students: unlimited
4EU+: no
Virtual mobility / capacity: yes / unlimited
Key competences: 4EU+ Flagship 3
State of the course: taught
Language: English
Teaching methods: full-time
Teaching methods: full-time
Guarantor: Erin Claire Carson, Ph.D.
Class: M Mgr. NVM
M Mgr. NVM > Volitelné
Classification: Mathematics > Numerical Analysis
Annotation -
Last update: doc. RNDr. Václav Kučera, Ph.D. (12.05.2019)
This course focuses on how to program parallel computers to efficiently solve challenging problems in science and engineering, where very fast computers are required either to perform complex simulations or to analyze enormous datasets. Students will be introduced to modern machine architectures, parallel programming models, and models of parallel performance. The course will also introduce patterns of parallelism which occur frequently in scientific applications and types of parallel communication.
Aim of the course
Last update: doc. RNDr. Václav Kučera, Ph.D. (12.05.2019)

The main goal of the course is to introduce students to concepts and tools for high-performance computing. A special focus will be on aspects of modern supercomputers, including heterogeneous systems, accelerators, and evaluating the time and energy cost of a specific implementation. Students will gain hands-on experience in parallel programming and be introduced to current research challenges.

Course completion requirements -
Last update: Erin Claire Carson, Ph.D. (07.06.2019)

Students will complete homework assignments given periodically throughout the semester (possibly including written assignments, simple programming, as well as potentially more open-ended problems) as well as a final exam.

Literature -
Last update: doc. RNDr. Václav Kučera, Ph.D. (12.05.2019)

T. G. Mattson. Patterns for Parallel Programming, 2004.

B. Schmidt, J. Gonzalez-Dominguez, C. Hundt, M. Schlarb. Parallel Programming: Concepts and Practice, 2017.

M. J. Quinn. Parallel programming in C with MPI and OpenMP, 2003.

B. Barney, Introduction to Parallel Computing,

V. Eijkhout. Introduction to High-Performance Scientific Computing,

M. McCool, J. Reinders, A. Robison. Structured Parallel Programming: Patterns for Efficient Computation, 2012.

D. B. Kirk, W. W. Hwu. Programming Massively Parallel Processors: A Hands-on Approach, 2016.

Requirements to the exam -
Last update: Erin Claire Carson, Ph.D. (07.06.2019)

The final exam will be given orally. Students will be asked one or two questions related to the material on the syllabus that was covered in lectures and exercises.

Syllabus -
Last update: doc. RNDr. Václav Kučera, Ph.D. (12.05.2019)

1. Parallel architectures

2. Parallel programming models

3. Roofline and parallel performance models

4. Designing parallel programs

5. Research challenges

Entry requirements -
Last update: doc. RNDr. Václav Kučera, Ph.D. (12.05.2019)

As a preliminary we assume to have basic knowledge of linear algebra as, for example, from the course NMAG101, experience in programming, and familiarity with parallel computing, for example, from the course NMNV532.

Charles University | Information system of Charles University |