|
|
|
||
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.
Poslední úprava: Kolafa Jiří (04.09.2019)
|
|
||
Studenti se budou orientovat v metodách paralelizace a budou schopni vytvořit jednoduchý kód na platformě CUDA. Poslední úprava: Kolafa Jiří (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) Poslední úprava: Kolafa Jiří (04.09.2019)
|
|
||
přednášky(30%), cvičení(30%), projekt (40%) Poslední úprava: Kolafa Jiří (04.09.2019)
|
|
||
Interaktivní hodnocení bez formálního testu či zkoušení Poslední úprava: Kolafa Jiří (04.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). 9. Výpočty s reálnými čísly (NTK module 12). 10. Případová studie: výpočet elektrostatického potenciálu mnoha částic (NTK Module 16). Poslední úprava: Kolafa Jiří (11.09.2019)
|
|
||
Základy jazyka C a zkušenost s linuxem. Poslední úprava: Kolafa Jiří (04.09.2019)
|
Zátěž studenta | ||||
Činnost | Kredity | Hodiny | ||
Práce na individuálním projektu | 0.2 | 5 | ||
Účast na seminářích | 0.2 | 5 | ||
0 / 2 | 10 / 56 |