|
|
|
||
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ří (04.09.2019)
|
|
||
Students will understand parallelization methods and will be able to write a simple CUDA-based code. Last update: 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) Last update: Kolafa Jiří (04.09.2019)
|
|
||
talks(30%), exercise(30%), project (40%) Last update: Kolafa Jiří (04.09.2019)
|
|
||
Interactive evaluation without a formal test or exam Last update: Kolafa Jiří (04.09.2019)
|
|
||
1. History: D825, transputers. Unix world: MIMD threads. Platforms (MPI etc.). SIMD and GPUs. Processors, cores, threads. 2. Algorithmization: Linear algebra (dense, sparse). Grid methods (PDE). MC and MD: domain decomposition, linked-cell list. Graphics: rendering. 3. C and C++ review. 4. Message passing and threads: OpenMP, MPI. 5. GPU - architecture. 6. CUDA basics (NVIDIA Teaching Kit modules 1,2). 7. CUDA Parallelism Model, memory (NTK modules 3-6). 8. Parallel Computation Patterns (NTK modules 7-9). 9. Floating point (NTK module 12). 10. Case study: Electrostatic potential (NTK Module 16). Last update: Kolafa Jiří (04.09.2019)
|
|
||
C-language basics and experience with linux. Last update: Kolafa Jiří (04.09.2019)
|
Teaching methods | ||||
Activity | Credits | Hours | ||
Práce na individuálním projektu | 0.2 | 5 | ||
Účast na seminářích | 0.2 | 5 | ||
0 / 2 | 10 / 56 |