Lecture Concepts and Models of Parallel and Data-centric Programming

Organization

The lecture will be held in person. As a backup, we will provide the lecture videos of previous years. However, we cannot guarantee that these will always be up-to-date. We will also provide supplemental material, quizzes, and so forth.

Schedule

An introductory meeting will take place on Monday, April 7, 2025, at 14:30 in C.A.R.L. H05 (1385|105). Details will be published in the Moodle course room. Please register via RWTHonline for the lecture to get access to the course room (see below).

Lectures and Exercises

  • Monday, 14:30 - 16:00 in C.A.R.L. H05 (1385|105)
  • Tuesday, 14:30 - 16:00 in C.A.R.L. H05 (1385|105)

Registration

Registration for the lecture is organized via RWTHonline.

Materials

Materials are published in the Moodle course room. You get access by registering via RWTHonline.

Description

The traditional simulation is increasingly enhanced by modeling based on (large) data sets. Methods and tools of parallel programming foster the setup, evaluation and adoption of compute-intensive and complex models. In parallel processing of large amounts of data, novel programming models offer additional functionality and performance improvements by adopting data-centric approaches instead of focusing on computations. In this lecture, corresponding programming models, selected algorithms and tools are presented which are used in high-performance computing and data sciences.

The objectives of the lecture are the classification of parallel systems in high-performance computing, as well as the processing of large data sets (big data) and the understanding of optimization and parallelization concepts to exploit these systems. This includes the knowledge and comprehension of the implementation of various programming models, of selected parallel algorithms and respective complexity characteristics and scalability limits.

Content

  • Architecture of parallel computers (clusters) for the application in high-performance computing and in the processing of large amounts of data (big data)
  • Parallel programming models: instruction level, accelerators, shared memory, distributed memory, MapReduce concept
  • Parallel processing of I/O
  • Synchronization concepts used by parallel programming models
  • Realization of commonly used (abstract) data types in parallel programming models
  • Selected parallel algorithms from different application areas
  • Modeling of parallelism (speedup, efficiency, scalability limits) and performance
  • Further selected topics