|
|
|
||
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.
Last update: Kučera Václav, doc. RNDr., 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. Last update: Kučera Václav, doc. RNDr., Ph.D. (12.05.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. Last update: Carson Erin Claire, Ph.D. (07.06.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, https://computing.llnl.gov/tutorials/parallel_comp/ V. Eijkhout. Introduction to High-Performance Scientific Computing, http://www.tacc.utexas.edu/~eijkhout/istc/istc.html 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. Last update: Kučera Václav, doc. RNDr., Ph.D. (12.05.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. Last update: Carson Erin Claire, Ph.D. (07.06.2019)
|
|
||
1. Parallel architectures 2. Parallel programming models 3. Roofline and parallel performance models 4. Designing parallel programs 5. Research challenges Last update: Kučera Václav, doc. RNDr., 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. Last update: Kučera Václav, doc. RNDr., Ph.D. (12.05.2019)
|