TU Wien:Advanced Multiprocessor Programming VU (Träff)

From VoWi
Jump to navigation Jump to search

Daten[edit | edit source]

Lecturers Prof. Dr. Scient. Jesper Larsson Träff, Martin Wimmer
ECTS 4
Department Forschungsbereich Parallel Computing
When summer semester
Language English
Links tiss:184726, Homepage
Zuordnungen
Master Logic and Computation Wahlmodul Programming Languages and Verification
Master Software Engineering & Internet Computing Wahlmodul Computersprachen und Programmierung
Master Technische Informatik Pflichtmodul Advanced Multiprocessor Programming

Mattermost: Channel "advanced-multiproccessor-programming"RegisterMattermost-Infos

Inhalt[edit | edit source]

Aus TISS:

Speichermodelle, Synchronisationsprobleme, -operatione, und -primitive, atomische Operationen, Konsensus, Universalität und Unmöglichkeit, "Locks", "Lock- and Wait-free" Datenstrukturen und Algorithmen (Warteschlangen, Listen, Hash-Tabellen, Suchstrukturen, ua.), "Work-stealing". Programmierprojekt (C/C++ mit Pthreads, oder Java, oder...)

Aus Studentensicht: Der erste Teil war theoretischer Natur (Amdahl's law, mutual exclusion, registers and impossibility of achieving censuns >2 with registers, atomic operations, lock implementations, deadlock-, starvation-, lock- and wait-freedom, linearization, memory consistency models. Der zweite Teil war eher praktischer Natur: Implementierung von Locks und lock- and wait-free data structures. Am Ende gab es eine kurze Einführung in das C++11 Speichermodel und atomare Operationen in C++.

Persönliche Meinung: Der theoretische und praktische Teil ergänzen einander sehr gut.

Ablauf[edit | edit source]

Wöchentliche Vorlesung, volle 2 Stunden. 2 theoretische Übungsblätter, eine praktische Programmierübung in einer 2er Gruppe. Prüfung am Ende des Semesters.

Benötigte/Empfehlenswerte Vorkenntnisse[edit | edit source]

Programmierkenntnisse mit C++ sind für die Programmieraufgabe wichtig. Ansonsten sind Kenntnisse aus Parallel Computing, Betriebssysteme und Algorithmen hilfreich, aber nicht notwendig.

Vortrag[edit | edit source]

Wöchentliche Vorlesung, volle 2 Stunden. Laut LVA-Homepage mit Anwesenheitspflicht, die aber nicht überprüft wird. Bei Bedarf in Englisch.

Übungen[edit | edit source]

2 theoretische Übungsblätter sind zu Hause auszuarbeiten und dann in einer Übungsstunde an der Tafel zu präsentieren. Läuft sehr locker ab: Studenten können sich freiwillig melden, es ist mehr eine gemeinsame Diskussion der Beispiele.

Praktische Programmieraufgabe: Im ersten Teil geht es nur darum, das verwendete Framework zum Laufen zu bringen und damit ein bisschen umgehen zu lernen. Für die eigentliche Aufgabe muss man eine parallele Datenstruktur implementieren. Die meisten Datenstrukturen waren lock-and-wait free, es gab aber auch eine die mit Locks implementiert werden musste. Abgeben werden muss ein detailiertes Protokol (Beschreibung der Datenstruktur, theoretische Analyse zu Linearisierung, Deadlock- und Starvation-freedom, Benchmarks usw).

Prüfung, Benotung[edit | edit source]

Mündliche Prüfung zu Beginn der Sommerferien, wobei es eher ein Abgabegespräch zur Programmieraufgabe ist: Man diskutiert mit den Vortragenden und seinem Buddy aus der Programmierübung das erstellte Protokol. Wenn man sich Mühe gegeben hat, ist es viel mehr eine Diskussion als eine Prüfung: es wird gefragt, warum und wie man Sachen implementiert hat, ob etwas nicht funktioniert hat usw. und wertvolles Feedback zum Erstellen von Protokollen/Papers gegeben.

SS2021 Oral discussion about the project and some basic questions related to the lecture material (e.g. definition of lock-free, wait-free, ABA problem, TSO etc..)

Dauer der Zeugnisausstellung[edit | edit source]

<2 Wochen nach der Prüfung

Zeitaufwand[edit | edit source]

Angemessen.

Unterlagen[edit | edit source]

Vorlesungsfolien auf der LVA-Homepage sowie das dort vorgeschlagene Buch: Maurice Herlihy, Nir Shavit: The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. Revised 1st Edition, 2012.

Tipps[edit | edit source]

Aufwand der Programmieraufgabe nicht unterschätzen! Die LVA-Leitung legt großen Wert auf ordentliche und vollständige Protokolle. Die theoretischen Übungsaufgaben müssen auch abgegeben werden und sollten daher sauber ausgearbeitet sein.

Verbesserungsvorschläge / Kritik[edit | edit source]

Keine.

Attachments

This page has no attachments yet but you can add some.