Seminar „Multithreading und nebenläufige Programmierung“

In dieser Veranstaltung soll das Thema Nebenläufigkeit in der Informatik erarbeitet werden. Nebenläufige Prozesse spielen eine immer wichtigere Rolle, was zu einem maßgeblichen Teil an den in den letzten Jahrzehnten entstanden Hardwarestrukturen liegt, also parallelen Rechnerarchitekturen und Rechnerverbünden, aber auch an neuen Programmiermodellen, die die Programmierung nebenläufiger Prozesse mit verhältnismäßig einfachen Mitteln gestattet. Hierzu erstellen die Studierenden zu einem bestimmten Thema eine etwa 20-seitige Hausarbeit und halten einen halbstündigen Vortrag mit anschließender gemeinsamer Diskussion.

Das Seminar wird je nach Nachfrage über mehrere Termine, gleichmäßig über die zweite Semesterhälfte verteilt, stattfinden. Beim ersten Termin werden die Themen besprochen und vergeben. Bei den anderen Terminen halten die Teilnehmer ihre Vorträge. Hierbei besteht Anwesenheitspflicht. Die Hausarbeit muss zum Ende des Semesters zu dem unten im Zeitplan angegebenen Termin abgegeben werden.


Inhaltsverzeichnis


Themenvorschläge

  1. Parallele Rechnerarchitekturen
    • Mehrkernprozessoren
      • Grundlagen und Strukturen
      • Rechenwerk
    • Rechnerverbünde und Clouds
      • Aufbau
      • Betriebssyteme
  2. Mathematische Betrachtungen: Das Amdahl'sche und das Gustafson'sche Gesetz
  3. Multithreading in Java
    • Teil (a)
      • Shared Memory und Semaphore
      • Thread und Runnable
      • Beispielprogramme (Philosophen-Problem)
      • Data Races
        • Statistische Analyse eines Beispielprogramms
    • Teil (b)
      • Aktormodell und asynchrones Messageing (verteilte Datenspeicher)
      • Die Interfaces Future und Callable
        • Beispielprogramme
  4. Multithreading mit FX
    • Überblick
    • Beispielprogramm (Spiel?)
  5. Theorie von Fork-Join
    • Grundidee
    • Rekursion und Parallelisierbarkeit
    • Laufzeitkomplexitäten paralleler Algorithmen
  6. Das Fork-Join-Modell in Java
  7. Die Komplexitätsklasse NC
    • Definition
    • Beispiele für NC-Probleme
    • NC = P?
      • Beispiele für P-vollständige Probleme: CVP, Horn-SAT
    • Literatur:
      • Arora, S.; Barak, B. (2009). Computational complexity. A modern approach. Cambridge University Press.
  8. Verteilte Datenbanken und Big Data (NoSQL)

Teilnahmevoraussetzungen

Kenntnis des Stoffs der Informatikveranstaltungen der ersten zwei Semester

Zielgruppe

Studierende der Wirtschaftsinformatik und des Wirtschaftsingenieuwesens ab dem 4. Semester

Anrechenbarkeit im Curriculum

Seminar Wirtschaftsinformatik, auch als Zusatz- oder Wahlpflichtfach Sondergebiete der Informatik anerkennbar.

Anmeldung

Bitte melden Sie sich zur Planung der Veranstaltung über das Vorlesungsplan-Informationssystem (VPIS) an. Zur endgültigen Teilnahme müssen Sie noch das Anmeldeformular unterschrieben bei mir einreichen.

Bewertung

Die Note ermittelt sich zu 40% aus dem Vortrag und zu 60% aus der Hausarbeit. Bewertet wird dabei die Plausibilität der Darstellung des Themas und die Wissenschaftlichkeit, also die Art der Begründung einer These durch belegende Zitate oder durch eigene Argumente. (Haben Sie bei Erstellung Ihrer Arbeit immer den skeptischen „Advocatus Diaboli“ vor Ihrem geistigen Auge, der jede Ihrer Aussagen anzweifelt und den Sie überzeugen müssen.) Vermeiden Sie unbedingt Plagiate, verweisen Sie also für alle wörtlichen oder sinngemäßen Zitate, Grafiken, Daten oder sonstigen Leistungen Dritter auf die Quellen, bevorzugt wissenschaftlich valide Referenzen wie Fachartikel, Fach- oder Lehrbücher, DOI-Dokumente oder Links von wissenschaftlichen Institutionen (hier hilft z.B. Google Scholar). Beachten Sie zur Recherche die Hinweise des Online-Tutorials der FH-Bibliothek, insbesondere die Zitierrichtlinien.

Zeitplan

Datum Uhrzeit Thema Vortragende(r)
03.04.2017 15.45 Vorbesprechung
bis 14 Tage vor dem Vortrag 24.00 Einreichung des Exposés
26.06.2017 08.15 Mehrkernprozessoren Kevin Schmidt
26.06.2017 09.00 Shared Memory und das Philosophenproblem Carl David Hohage & Mathias Masuch
26.06.2017 10.30 Multithreading mit FX: Grundlagen Sabrina Piekny
26.06.2017 11.15 Multithreading mit FX in der Spieleprogrammierung Jan Schwaner
09.07.2017 24.00 Späteste Einreichung der Hausarbeit (elektronisch als PDF, gerne auch in einem editierbaren Format wie Word/LaTeX/ ... für eine etwaige Zusammenstellung / Veröffentlichung)