Skip to main content
Skip header

Parallel Algorithms

Type of study Doctoral
Language of instruction Czech
Code 460-6008/01
Abbreviation PA
Course title Parallel Algorithms
Credits 10
Coordinating department Department of Computer Science
Course coordinator prof. Ing. Pavel Krömer, Ph.D.

Subject syllabus

• Introduction to parallel programming. Processes and threads. Processes and threads from the operating system perspective.
• Sequential vs. parallel programming. Parallel programming caveats. Deadlock (definition, properties, conditions, detection, elimination).
• Parallel vs. distributed applications. Classification of parallel systems. Shared memory systems and distributed memory systems. Flynn's taxonomy.
• Shared memory systems programming. Programming with threads. The pthreads library, Threads in Java and C#. Synchronization and exclusion, deadlock.
• The OpenMP interface. OpenMP support in modern compilers. OpenMP directives and functions. Reduction in OpenMP.- R and its packages for parallel programming
• Grid and cloud programming. Web services and distributed applications using web services. Map-reduce paradigm and Hadoop framework.
• Overview of environments for parallel programming. SIMD instructions.
• Introduction to accelerator programming. GPGPU architecture (program organization, memory organization). Data parallelism. CUDA platform and CUDA-C language.

Literature

• I. Foster: Designing and Building Parallel Programs. Addisson-Wesley, 1995.
Standardizační dokumentace k MPI, OpenMP

Advised literature

• A. Grama et al.: Introduction to Parallel Computing, Second Edition. Pearson, 2003.
• C. Lyn, L. Snyder: Principles of Parallel Programming. Pearson, 2009.
• J. JáJá: An Introduction to Parallel Algorithms. Addison-Wesley, 1992.