Parallel Programming (IN2147) (Lecture)
Lecturer (assistant) | |
---|---|
Duration | 2 SWS |
Term | Sommersemester 2024 |
Language of instruction | English |
Links
Announcements
- There will be no lecture and exercise in the first week of the semester (Mo 15.04.2024 & Tue 16.04.2024)
- Course material and announcements via Moodle: Parallel Programming
- Questions via Zulip: https://zulip.in.tum.de/#narrow/stream/2330-ParProg-24
This lecture will be held in English.
Prerequisites
Participants need to have experience with working on Linux or Linux-like systems as well as experience in programming C/C++.
Course Content
The course starts with a motivation for parallel programming and a classification of parallel architectures. It focuses first on parallelization for distributed memory architectures with MPI. It introduces the major concepts, e.g., point to point communication, collective operations, communicators, virutal topologies, non-blocking communication, single-sided communication and parallel IO. In addition, it covers the overall parallelization approach based on four phases, i.e., decomposition, assignment, orchestration and mapping. The next section presents dependence analysis as the major theoretical basis for parallelization. It introduces program transformations and discusses their profitability and safety based on data dependence analysis. The second major programming interface in the course is OpenMP for shared memory systems. This section covers most of the language concepts as well as proposed extensions. In the last part, the lecture presents novel programming interfaces, such as PGAS languages, threading building blocks, CUDA, OpenCL, and OpenACC.
For more information, please see TUMOnline.