[IVS1] - [de] - [Verteilte Systeme I]


Verteilte Systeme I [2021/22 WiSe]
Code
IVS1
Name
Verteilte Systeme I
LP
6 LP
Dauer
ein Semester
Angebotsturnus
mind. jedes 4. Semester
Format
Vorlesung 2 SWS, Übung 2 SWS
Arbeitsaufwand
180 h; davon
60 h Präsenzstudium
15 h Prüfungsvorbereitung
105 h Selbststudium und Aufgabenbearbeitung (evtl. in Gruppen)
Verwendbarkeit
B.Sc. Angewandte Informatik,
B.Sc. Informatik,
M.Sc. Angewandte Informatik
Sprache
Lehrende
Prüfungsschema
Lernziele Verständnis der unterschiedlichen parallelen Architekturen und der Besonderheiten von verteilten Systemen
Kenntnis der grundlegenden theoretischen Probleme und Algorithmen in verteilten Systemen (z.B. Skalierbarkeit)
Fähigkeit zur Erstellung von parallelen und verteilten Programmen, insbes. im Spark-Programmiermodell
Kenntnis der praktischen Anwendung diverser Programmierparadigmen und Frameworks (Pthreads, MPI, Hadoop, Spark) für parallele oder verteilte Programmierung
Vertrautheit mit skalierbarer Verarbeitung von Daten
Kenntnisse über Probleme und Lösungen in Bereichen Fehlertoleranz und Verlässlichkeit der verteilten Systeme
Lerninhalte Das Modul behandelt die grundlegenden Prinzipien der parallelen und verteilten Systeme im Kontext ihrer Programmierung, insbesondere zum Zwecke der skalierbaren Verarbeitung von Daten. Es werden Konzepte aus den Bereichen Architekturen, Protokolle, Algorithmen, Implementierung und Softwareframeworks vorgestellt. Ein wesentlicher Teil der Vorlesung widmet sich der praktischen parallelen und verteilten Programmierung. Dazu gehörten u.a. Ansätze wie MPI, Map-Reduce, Spark-Programmiermodell und Actors. Ergänzende Themen umfassen Fehlertoleranz, effiziente Protokolle und Skalierbarkeit. Die Umsetzung in die Praxis erfolgt an Beispielen der Verarbeitung großer Datenmengen. Das Modul soll die Studierenden befähigen, Spezifika und Probleme der verteilten Systeme zu verstehen, und effiziente verteilte Anwendungen mit Softwareframeworks wie Apache Spark zu erstellen.
Teilnahme-
voraus-
setzungen
empfohlen sind: Kenntnisse in Java (z.B. durch Einführung in Software Engineering (ISW)) oder Python
Vergabe der LP und Modulendnote Bestehen der Modulprüfung
Nützliche Literatur George Coulouris, Jean Dollimore, Tim Kindberg: Distributed Systems: Concepts and Design (4th ed.), Addison-Wesley, 2005.
Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia: Learning Spark: Lightning-Fast Big Data Analysis, O'Reilly Media, 2015.
Jure Leskovec, Anand Rajaraman, Jeff Ullman: Mining of Massive Datasets, 2nd edition (v2.1), Online: http://www.mmds.org/
Grama, A., Gupta, A., Karypis, G., Kumar V.: Introduction to Parallel Computing, Addison-Wesley, 2. Auflage, 2003.
Andrew S. Tanenbaum, Maarten Van Steen: Distributed Systems: Principles and Paradigms, Prentice Hall, 2006.