Course detail

Applications of Parallel Computers

FIT-PDDAcad. year: 2017/2018

The course gives an overview of usable parallel platforms and models of programming, mainly shared-memory programming (OpenMP), message passing (MPI) and data-parallel programming (CUDA, OpenCL). A parallelization methodology is completed by performance studies and applied to a particular problem. The emphasis is put on practical aspects and implementation.

Language of instruction

Czech

Mode of study

Not applicable.

Learning outcomes of the course unit

To learn how to parallelize various classes of problems and predict their performance. To be able to utilize parallelism and communication at thread- and process level. To get acquainted with state-of-the-art standard interfaces, language extensions and other tools for parallel programming (MPI, OpenMP). Write and debug a parallel program for a selected task.

Parallel architectures with distributed and shared memory,  programming in C/C++ with MPI and OpenMP, GPGPU, parallelization of basic numerical methods.

Prerequisites

Types of parallel computers, programming in C/C++, basic numerical methods

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

Study evaluation is based on marks obtained for specified items. Minimimum number of marks to pass is 50.

Course curriculum

    Syllabus of lectures:
    • Parallel computer architectures, performance measures and their prediction
    • Patterns for parallel programming
    • Synchronization and communication techniques.
    • Shared variable programming with OpenMP
    • Message-passing programming with MPI
    • Data parallel programming with CUDA/OpenCL
    • Examples of task parallelization and parallel applications

Work placements

Not applicable.

Aims

To clarify possibilities of parallel programming on multi-core processors, on clusters and on GP GPUs. View over synchronization and communication techniques. Get to know a method of parallelization and performance prediction of selected real-world applications, the design of correct programs and the use parallel computing in practice.

Specification of controlled education, way of implementation and compensation for absences

Defence of a software project based on a variant of parallel programming.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Basic literature

Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605    Kirk, D., and Hwu, W.: Programming Massively Parallel Processors: A Hands-on Approach, Elsevier, 2010, s. 256, ISBN: 978-0-12-381472-2

Classification of course in study plans

  • Programme CSE-PHD-4 Doctoral

    branch DVI4 , 0 year of study, winter semester, elective

Type of course unit

 

Lecture

39 hod., optionally

Teacher / Lecturer

Syllabus

  • Parallel computer architectures, performance measures and their prediction
  • Patterns for parallel programming
  • Synchronization and communication techniques.
  • Shared variable programming with OpenMP
  • Message-passing programming with MPI
  • Data parallel programming with CUDA/OpenCL
  • Examples of task parallelization and parallel applications