460-4040 – Parallel Programming I (PPA I)

Gurantor departmentDepartment of Computer Science
Subject guarantorprof. Ing. Pavel Krömer, Ph.D.
Study levelundergraduate or graduate
Subject version
Version codeYear of introductionYear of cancellationCredits
460-4040/01 2010/2011 2015/2016 4

Subject aims expressed by acquired skills and competences

Survey in the field of design, realization and evaluation of parallel algorithms. Practical experience in parallel programming of selected multiprocessor computer systems. Working knowledge in the field of parallel systems and their programming, including: Design of parallel algorithms, parallelization of sequential algorithms. Practical realization of a parallel algorithm based on the message passing model. Analysis of the algorithm, evaluation of its implementation. Optimization and increasing of efficiency.

Teaching methods

Lectures
Individual consultations
Tutorials
Project work
Other activities

Summary

The course provides the students with working knowledge in the area of parallel systems, algorithms and programming. It concentrates on practical development of parallel codes so that the students can make effective use of the modern powerful hardware, from supercomputers to multicore notebooks, for solution of demanding tasks from various application fields. The so-called multicomputers, where the interaction of parallel processes is based on message passing, are focused on, but the specifics of shared-memory systems (symmetric multiprocessors) are discussed as well. Such a traditional techniques of parallel programming will be supplemented by an introduction to advanced technologies that were recently introduced, (e.g. GPGPU programming and parallel Matlab). Exercises are devoted to the design of parallel algorithms and their implementation in the PVM, MPI, OpenMP environment or possibly parallel Matlab, on the most powerful computer systems of VŠB-TUO/CVT, nowadays on the network of workstations Ultra with remote access to the 32-processor cluster Teri (128 cores) and to the four-processor symmetric multiprocessor Quad.

Compulsory literature:

Syllabus I. Foster: Designing and building of parallel programs. Addison-Wesley, 1995 Al Geist et al.: PVM: Parallel Virtual Machine. A User's Guide and Tutorial for Networked Parallel Computing. The MIT Press, 1994. MPI: A Message-Passing Interface Standard. Message Passing Interface Forum, University of Tennessee, June 1995.

Recommended literature:

K. Ježek et al.: Paralelní architektury a programy. ZČU Plzeň, 1997. (In Czech) B. Wilkinson, M. Allen: Parallel Programming. Prentice Hall, 1999. R. Chandra et al.: Parallel Programming in OpenMP. Morgan Kaufmann Publishers, 2001.

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.