This course will prepare students to understand parallel computer architecture, organization, and programming. The course starts with parallel computer classification and multithreading. It covers the architecture of centralized and distributed shared-memory parallel systems, multiprocessor cache coherence, snooping / directory-based cache coherence protocols, implementation, and limitations. Next, the students study interconnection networks and routing in parallel systems, synchronization, and memory consistency. To ensure the correctness of shared-memory multithreaded programs, independent of the speed of execution of its independent threads, the essential topics of memory consistency and synchronization will be covered in detail. As a case study, the architecture of a few accelerators such as GPUs will also be discussed in detail. Besides understanding the architecture and organization of parallel systems, programming them is also very challenging. The course will cover how to program massively parallel systems using API/libraries such as CUDA/OpenCL, and MPI/OpenMP.
Problem-based Assignments/Project: There will be 3-4 assignments for project-based learning consisting of the following:
Implement and compare different cache coherence protocols using a simulator or a high-level, event-driven simulation interface such as SystemC
Programming massively parallel systems to solve computationally intensive problems such as password cracking using CUDA/OpenCL/MPI/OpenMP
Pre-requisites:
Basic course on computer architecture and C/C++ programming.
Erxleben, J. (2023). Entwicklung eines Algorithmus zur Identifikation und Klassifizierung relevanter Arbeitspunkte eines elektrischen Systems aus Momentanwert-Datensätzen.
beendete
2023
Engemann, T. (2023). Entwicklung einer Methodik zur automatischen Identifizierung, Klassifizierung und Modellierung betriebsrelevanter Arbeitspunkte eines elektrischen Netzes aus Echtzeitmesswerten.
Herzberg, M. (2023). Entwicklung eines echtzeitfähigen Photovoltaiksimulators auf Basis historischer Strahlungsdaten für einen Power Hardware-in-the-Loop Aufbau mit einem PV-Wechselrichter.
Heunda, J.E.W. (2023). Entwicklung, Optimierung und Vergleich von Methoden zur Erzeugung passiver Ersatzschaltbilder aus Messwerten einer Impedanzspektroskopie.
2022
Becker, H. C. (2022). Entwicklung, Implementierung und Verifizierung einer Schnittstellensynchronisation für die Kopplung von in Echtzeit simulierten Anlagen und Komponenten an einen PHiL Laboraufbau.
Hinzke, M. (2022). Untersuchung der Stabilität eines Power Hardware-in-the-Loop Teststandes unter der Verwendung eines Synchrongenerators als Schnittstelle zwischen Simulation und Hardware.
Landenfeld, Jakob (2022). Implementierung und Validierung einer Methode zur Stabilisierung von Power Hardware-in-the-Loop Simulationen mittels einer online-Impedanzmessung auf einem FPGA.
Landenfeld, Jakob (2022). Bestimmung der Stabilitätskriterien eines DC Power Hardware-in-the-Loop Aufbaus zur Untersuchung von Rippelstrom in Gleichstromsystemen.
Müller, E. (2022). Evaluation of different modelling approaches for battery aging to predict capacity fade for optimization of battery operation.
von Krosigk, J. (2022). Analyse und Bewertung einer Einsatzoptimierung für erneuerbare Energieanlagen in Kombination mit Batteriespeichersystemen im Multi-Use Betrieb.
2021
Erxleben, J. (2021). Untersuchung der Performance eines Pools aus Erneuerbaren Energien für die Erbringung von frequenzstützenden Maßnahmen.
von Krosigk, J. (2021). Untersuchung eines neuartigen Ansatzes zur kurz- und mittelfristigen Vorhersage der Netzfrequenz unter der Verwendung künstlicher neuronaler Netze.