Paralelní programování v OpenMP, MPI a CUDA - M403065
Anglický název: Parallel programming in OpenMP, MPI, and CUDA
Zajišťuje: Ústav fyzikální chemie (403)
Fakulta: Fakulta chemicko-inženýrská
Platnost: od 2021
Semestr: letní
Body: letní s.:2
E-Kredity: letní s.:2
Způsob provedení zkoušky: letní s.:
Rozsah, examinace: letní s.:0/10, Z [HS]
Počet míst: neurčen / neurčen (neurčen)
Minimální obsazenost: neomezen
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Způsob výuky: prezenční
Úroveň:  
Poznámka: předmět je možno zapsat mimo plán
povolen pro zápis po webu
Garant: Kolafa Jiří prof. RNDr. CSc.
Třída: Kurz CŽV
Klasifikace: Informatika > Programování
Termíny zkoušek   
Pro tento předmět jsou dostupné online materiály
Anotace -
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)
Výstupy studia předmětu -

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)
Literatura -

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)
Metody výuky -

přednášky(30%), cvičení(30%), projekt (40%)

Poslední úprava: Kolafa Jiří (04.09.2019)
Požadavky ke zkoušce (Forma způsobu ověření studijních výsledků) -

Interaktivní hodnocení bez formálního testu či zkoušení

Poslední úprava: Kolafa Jiří (04.09.2019)
Sylabus -

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)
Vstupní požadavky -

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