Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
 

Parallele Programmierung und Heterogenes Rechnen (Sommersemester 2020)

Dozent: Prof. Dr. Andreas Polze (Betriebssysteme und Middleware) , Sven Köhler (Betriebssysteme und Middleware) , Max Plauth (Betriebssysteme und Middleware) , Felix Eberhardt (Betriebssysteme und Middleware) , Lukas Wenzel (Betriebssysteme und Middleware)
Website zum Kurs: https://osm.hpi.de/parProg/2020/

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 22.04.2020 - 12.05.2020
  • Lehrform: Vorlesung
  • Belegungsart: Wahlpflichtmodul
  • Lehrsprache: Deutsch

Studiengänge, Modulgruppen & Module

Data Engineering MA
IT-Systems Engineering MA
  • IT-Systems Engineering
    • HPI-ITSE-E Entwurf
  • IT-Systems Engineering
    • HPI-ITSE-K Konstruktion
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-K Konzepte und Methoden
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-S Spezialisierung
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-T Techniken und Werkzeuge
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-K Konzepte und Methoden
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-S Spezialisierung
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-T Techniken und Werkzeuge

Beschreibung

In this lecture you will learn the theoretical and practical solution available for parallel software development.

Since the very beginning of computers, processors were build with ever-increasing clock frequencies and instruction-level optimizations for faster serial code execution, such as ILP, caches, or speculative engines. Software developers and industry got used to the fact that applications get faster by just exchanging the underlying hardware. For several years now, these rules are proven to be no longer valid. Moore’s law about the ever-increasing number of transistors per die is still valid, but decreased structural sizes and increased power consumption demand stalling, or even reduced, clock frequencies. Due to this development, serial execution performance no longer improves automatically with the next processor generation.

In the many-core era that happens now, additional transistors are used not to speed up serial code paths, but to offer multiple execution engines (cores) per processor. This changes every desktop-, server-, or even mobile system into a parallel computer. The exploitation of additional transistors is therefore now the responsibility of software, which makes parallel programming a mandatory approach for all software with scalability demands.

The following topics and technologies will be covered:

  • Theory: Flynn’s Taxonomy, Strategies, Memory Models
  • Shared Memory: PThreads, C++11 Threads, Futures, OpenMP, TBB
  • Non-Uniform Memory Access: libnuma, PGASUS
  • On-Chip Accelerators: SIMD (SSE, AVX, AltiVec), Compression, LLVM-IR
  • External Accelerators: GPUs (CUDA), FGPAs (CAPI SNAP/MetalFS)
  • Shared Nothing: MPI, CloudCL, Actors (Erlang)
  • Profiling and monitoring with Hardware Performance Counters
  • Energy-Aware Computing

Voraussetzungen

Participants should be familiar with the C and C++ programming languages, as well as basics of computer architecture and operating systems (concurrency, caching, memory management).

Lern- und Lehrformen

This lecture will follow a flipped classroom approach, with the following time distribution:

  • 75 % Follow the lecture on Tele-Task/Vimeo (pre-recorded and new material)
  • 25 %: Zoom meet-ups

About one hour per week will be an video-conferencing discussion, where we can cover your questions. You will also receive updates over the lecture, hands-on demos and tipps for your assignments.

Apart from the video discussion you can always ask questions in our GitLab forum.

All slides will be available in English. Newly recorded lecture videos and the online-discussion will be held in German, unless English is requested.

Leistungserfassung

This lecture includes five pratical assignments.

Assignments have to be solved in teams of three persons. The oral exam admittance is achieved if 50% of each assignment is solved correctly. We may provide one non-mandatory assignment at the end of the semester, that can be used to cancel out one failed assignment.

All assigments are submitted to and validated by our submission system at osm.hpi.de/submit Submissions failing the validation script will be treated like not handed in (thus failed).

Termine

Watch pre-recorded videos as convenient to you.

Our weekly Zoom meetups will take place each Thursday, 11am.

For a detailed time table, video links and meetup links, visit https://osm.hpi.de/parProg/2020/ for updates.

Zurück