Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
After general introduction to models of parallel programming, we will cover main rules and tricks leading to efficient parallelization of various tasks. In the second part of the course, we will focus on a particlar architecture, namely graphics processing units NVIDIA. We will cover CUDA software (incl. the needed basics of laguage C++) and solve exercises focussing on the field of computational chemistry.
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
Po obecném úvodu o modelech paralelního programování probereme hlavní zásady a triky vedoucí k efektivní paralelizaci úloh různých typů. V druhé části kurzu se zaměříme na konkrétní architekturu, totiž grafické procesory NVIDIA. Probereme sofware CUDA (vč. nezbytných základů jazyka C++) a budeme řešit cvičné úlohy se zaměřením na aplikace ve výpočetní chemii.
Aim of the course -
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
Students will understand parallelization methods and will be able to write a simple CUDA-based code.
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
Studenti se budou orientovat v metodách paralelizace a budou schopni vytvořit jednoduchý kód na platformě CUDA.
Literature -
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
J. Sanders, E. Kandrot: CUDA by example - An Introdiction to General-Purpose GPU Programming (Adisson-Wesley 2011, 978-0-13-138768-3)
D. B. Kirk, W-m. W. Hwu: Programming Massively Parallel Processors - A Hands-on Approach (Elsevier 2010, 978-0-12-381472-2)
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
J. Sanders, E. Kandrot: CUDA by example - An Introdiction to General-Purpose GPU Programming (Adisson-Wesley 2011, 978-0-13-138768-3)
D. B. Kirk, W-m. W. Hwu: Programming Massively Parallel Processors - A Hands-on Approach (Elsevier 2010, 978-0-12-381472-2)
Teaching methods -
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
talks(30%), exercise(30%), project (40%)
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
přednášky(30%), cvičení(30%), projekt (40%)
Requirements to the exam -
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
Interactive evaluation without a formal test or exam
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
Interaktivní hodnocení bez formálního testu či zkoušení
Syllabus -
Last update: Kolafa Jiří prof. RNDr. CSc. (04.09.2019)
10. Case study: Electrostatic potential (NTK Module 16).
Last update: Kolafa Jiří prof. RNDr. CSc. (11.09.2019)
1. Historie: D825, transputery. Svět Unixu: MIMD vlákna. Platformy (MPI aj.). SIMD and GPUs. Procesor, jádro, vlákno.
2. Algoritmizace: Lineární algebra (husté a řídké matice). Mřížky (PDE). MC a MD: domain decomposition, metoda zřetězených seznamů. Grafika: Rendering.
3. C and C++ přehled.
4. Message passing (zasílání zpráv) a vlákna: OpenMP, MPI.
5. GPU - architektura.
6. CUDA základy (NVIDIA Teaching Kit modules 1,2).
7. CUDA model paralelismu, paměť (NTK modules 3-6).
8. Typické příklady paralelních výpočtů (NTK modules 7-9).