SubjectsSubjects(version: 845)
Course, academic year 2019/2020
   Login via CAS
Programming in Parallel Environment - NPRG042
Title in English: Programování v paralelním prostředí
Guaranteed by: Department of Software Engineering (32-KSI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2016 to 2019
Semester: summer
E-Credits: 6
Hours per week, examination: summer s.:2/2 C+Ex [hours/week]
Capacity: unlimited
Min. number of students: unlimited
State of the course: taught
Language: Czech
Teaching methods: full-time
Additional information: http://www.ksi.mff.cuni.cz/lectures/NPRG042/html/index.html
Guarantor: RNDr. Jakub Yaghob, Ph.D.
Class: Informatika Mgr. - Softwarové systémy
Classification: Informatics > Programming
Is pre-requisite for: NPRG058
Annotation -
Last update: T_KSI (19.04.2007)
Multi-core processors yield the possibility making parallel computations on standard computers. Implementing an application using parallelisms is a nontrivial matter. The goals of the course are an theoretical and practical introduction to contemporary software technologies used for parallel programming, practically debugging parallel programs, and practically tuning parallel program performance.
Course completion requirements -
Last update: RNDr. Jakub Yaghob, Ph.D. (10.06.2019)

Students will elaborate 4 homeworks from selected technologies for parallel and distributed computing. Each task will be scored 0-4 points depending on the speedup achieved against the reference serial version of the solution. The final grade from the exam corresponds to the sum of points obtained:

11 and over - excellent

8-10 - very well

5-7 - well

less than 5 - failed

Credit is obtained for at least 4 points, where it is necessary to have at least one point from each homework.

More details on the course page.

Literature - Czech
Last update: RNDr. Jakub Yaghob, Ph.D. (18.09.2013)

A. Grama, A. Gupta, G. Karypis, V. Kumar: Introduction to Parallel Computing, Second Edition, Addison Wesley, 2003

C. Hughes, T. Hughes: Parallel and Distributed Programming Using C++, Addison Wesley, 2003

B. Lewis, D.J. Berg: PThreads Primer: A Guide to Multithreaded Programming, Sun Soft Press, 1996

G.E. Karniadakis, R.M. Kirby II: Parallel Scientific Computing in C++ and MPI: A Seamless Approach to Parallel Algorithms and their Implementation, Cambridge University Press, 2003

M. McCool, A.D. Robison, J. Reinders: Structured Parallel Programming, Morgan Kaufmann Publishers, 2012

Intel Threading Analysis Tools, www.intel.com

Intel Cluster Tools, www.intel.com

OpenMP, www.openmp.org

Syllabus -
Last update: RNDr. Jakub Yaghob, Ph.D. (22.04.2016)
  • A theoretical introduction to parallel algorithms
  • Lock-free algorithms and data structures
  • Design patterns in parallel programming
  • Parallelization in programing languages (C++, OpenMP, Threading Building Blocks)
  • Distributed computing in clusters (MPI)
  • Computing on coprocessors (OpenCL, Intel Xeon Phi)

 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html