Software-Engineering paralleler Systeme
- Fakultät
Ingenieurwissenschaften und Informatik
- Version
Version 6.0 vom 04.09.2019
- Modulkennung
11M1300
- Modulname (englisch)
Software-Engineering of Parallel Systems
- Studiengänge mit diesem Modul
Informatik - Verteilte und Mobile Anwendungen (M.Sc.)
- Niveaustufe
4
- Kurzbeschreibung
In der Entwicklung von Prozessoren hat ein Paradigmenwechsel stattgefunden. Wurde in der Vergangenheit die Leistungsfähigkeit der CPU durch eine kontinuierliche Erhöhung der Taktrate erreicht, so ist dieses aus physikalischen Gründen jenseits von 4 GHz nicht mehr kostentechnisch darstellbar. Da weiterhin ein Leistungszuwachs für neue Anwendungen gefordert ist, werden Prozessoren mit mehreren parallelen Rechnerkernen entwickelt und eingesetzt. Dieses stellt insbesondere eine Herausforderung für die Software-Entwicklung aufgrund der bisherigen sequentiellen Programmierung dar. Rechner mit mehreren Kernen haben das Nischendasein verlassen und sind inzwischen in allen Bereichen anzutreffen: vom Supercomputer bis hinzu eingebetteten, technischen Systemen wie automobile Steuergeräte oder Mobiltelefone. Zeitgleich haben Grafikkarten eine Leistungsdichte erreicht, die weit über konventionellen Prozessoren liegt. Multicore wie auch Manycore-Systeme (beispielsweise GPGPU-Systeme; GeneralPurpose computation on Graphics Hardware) erfordern neue Software Entwicklungsmethoden (beispielsweise Algorithmen, Programmiersprachen, Entwurfsmuster), um die Leistungsfähigkeit auszunutzen.
- Lehrinhalte
- Einführung
- Multi-Core Rechnerarchitekturen
- Betrachtung spezieller Hardware-Aspekte
- Betriebssysteme
- Embedded Multi-Core Systeme
- Parallele Programmierung und Programmiersprachen
- Realisierung ausgewählter Aufgabenstellungen
- Lernergebnisse / Kompetenzziele
Wissensverbreiterung
Die Studierenden, die dieses Modul erfolgreich studiert haben, kennen die Architekturen von Multi-Core und Manycore-Systemen sowie Software-Entwicklungsmethoden und können diese miteinander vergleichen und gegeneinander abgrenzen.
Wissensvertiefung
Die Studierenden, die dieses Moduel erfolgreich studiert haben, erwerben in einem aktuellen Thema detailliertes Wissen und kennen den Stand der Entwicklung und Forschung.
Können - instrumentale Kompetenz
Die Studierenden, die dieses Modul erfolgreich studiert haben, können Software für Multi-Core und Manycore-Systeme entwerfen, implementieren und testen. Sie sind in der Lage, Aufgabenstellungen den spezifischen Herausforderungen von Mehrkernsystemen zu bearbeiten sowie Lösungen zu entwickeln, die die Leistungsfähigkeit der Zielsysteme ausnutzen.
Können - kommunikative Kompetenz
Die Studierenden, die dieses Modul erfolgreich studiert haben, können komplexe Probleme von Multi- und Manycore-Systemen identifizieren und Software-Systeme kritisch analysieren. Sie kommunizieren mit Peers, erfahrenden Kollegen und Spezialisten auf professionellem Niveau sowohl in der Rolle des Systemanalytikers als auch in einer umsetzenden Rolle. Die Studierenden können ihre Entwicklungsergebnisse einem Fachpublikum präsentieren und mit diesem diskutieren.
Können - systemische Kompetenz
Die Studierenden, die dieses Modul erfolgreich studiert haben, wenden aktuelle Fähigkeiten und Techniken an. Sie analysieren Aufgabenstellungen von Multi- und Manycore-Systemen und entwickeln, dokumentieren sowie optimieren selbstständig Lösungstrategien. Sie setzen diese alleine oder im Team um.
- Lehr-/Lernmethoden
Die Veranstaltung gliedert sich in einen Vorlesungs- und Seminaranteil. Die praktischen Fähigkeiten werden in Programmierübungen erworben.
- Empfohlene Vorkenntnisse
C/C++, Software Engineering, Klassische Algorithmen und Datenstrukturen
- Modulpromotor
Uelschen, Michael
- Lehrende
Uelschen, Michael
- Leistungspunkte
5
- Lehr-/Lernkonzept
Workload Dozentengebunden Std. Workload Lehrtyp 15 Vorlesungen 15 Seminare 15 Übungen Workload Dozentenungebunden Std. Workload Lehrtyp 30 Veranstaltungsvor-/-nachbereitung 15 Literaturstudium 60 Kleingruppen
- Literatur
The Art of Multiprocessor Programming; Maurice Herlihy, Nir Shavit; Elsevier; 2008Multi-Core Programmierung; Shameem Akhter, Jason Roberts; INTEL press, 2008Multicore: Parallele Programmierung; Thomas Rauber, Gundula Rünger; Springer, 2007Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism; James Reinders; O'Reilly, 2007
- Prüfungsleistung
Projektbericht, schriftlich
- Unbenotete Prüfungsleistung
Experimentelle Arbeit
- Dauer
1 Semester
- Angebotsfrequenz
Unregelmäßig
- Lehrsprache
Deutsch