SubjectsSubjects(version: 965)
Course, academic year 2019/2020
  
Parallel programming in OpenMP, MPI, and CUDA - M403065
Title: Paralelní programování v OpenMP, MPI a CUDA
Guaranteed by: Centrum počítačového vzdělávání VŠCHT Praha (599)
Faculty: Faculty of Chemical Engineering
Actual: from 2019 to 2020
Semester: summer
Points: summer s.:2
E-Credits: summer s.:2
Examination process: summer s.:
Hours per week, examination: summer s.:0/10, C [HS]
Capacity: unknown / 20 (unknown)
Min. number of students: unlimited
State of the course: taught
Language: Czech
Teaching methods: full-time
Level:  
Note: course can be enrolled in outside the study plan
enabled for web enrollment
Guarantor: Kolafa Jiří prof. RNDr. CSc.
Class: Kurz CŽV
Classification: Informatics > Programming
Examination dates   Schedule   
This subject contains the following additional online materials
Annotation -
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)
Literature -

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)
Teaching methods -

talks(30%), exercise(30%), project (40%)

Last update: Kolafa Jiří (04.09.2019)
Requirements to the exam -

Interactive evaluation without a formal test or exam

Last update: Kolafa Jiří (04.09.2019)
Syllabus -

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)
Learning outcomes -

Students will understand parallelization methods and will be able to write a simple CUDA-based code.

Last update: Kolafa Jiří (04.09.2019)
Entry requirements -

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
Coursework assessment
Form Significance
Regular attendance 50
Defense of an individual project 50

 
VŠCHT Praha