Lecture Concepts and Models of Parallel and Data-centric Programming

Organization

We will likely implement the flipped classroom concept. In the introductory event, however, it is planned to give all those present the opportunity to vote on whether they would prefer an in-person lecture instead.

"Flipped classroom" means that the lecture has been broken up into subsections of 20 - 30 minutes length each, and these subsections will be provided as videos here. We will also add supplemental material, quizzes, and so forth. The scheduled lecture slots will be used as interactive question-and-answer sessions (in person or in a hybrid format via Zoom on request) to address the lecture parts that were made available during the week before.

An in-person lecture would take place live in the lecture hall. Streaming or recording of the lecture is not planned in this case.

Schedule

An introductory meeting will take place on Tuesday, April 9, 2024, at 12:30 in C.A.R.L. H06 (1385|004). 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).

Q&A Sessions and Exercises

  • Tuesday, 12:30 - 14:00 in C.A.R.L. H06 (1385|004)
  • Thursday, 12:30 - 14:00 in C.A.R.L. H04 (1385|103)

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