Multikern-Rechner und Rechnerbündel

  • Type: Vorlesung (V)
  • Semester: WS 15/16
  • Time: 20.10.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten


    27.10.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    03.11.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    10.11.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    17.11.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    24.11.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    01.12.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    08.12.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    15.12.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    22.12.2015
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    12.01.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    19.01.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    26.01.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    02.02.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    09.02.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum -101 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten


  • Lecturer: Prof.Dr. Walter Tichy
    Martin Tillmann
  • SWS: 2
  • Lv-No.: 24112
Beschreibung
  • Diese Lehrveranstaltung soll Studierenden die theoretischen und praktischen Aspekte der Multikern-Rechner und Rechnerbündel vermitteln.
  • Es werden Systemarchitekturen als auch Programmierkonzepte behandelt.
  • Die Lehrveranstaltung vermittelt einen Überblick über Netzwerktechnik, ausgewählte Hochgeschwindigkeitsnetzwerke (Gigabit Ethernet, Myrinet, Infiniband u.a.) und Hochleistungs-Kommunikationsbibliotheken.
  • Ergänzend werden auch Ressourcenmanagement, Ablaufplanung, verteilte/parallele Dateisysteme, Programmiermodelle (MPI, gemeinsamer verteilter Speicher, JavaParty) und parallele Algorithmen diskutiert.

 

Lehrinhalt
  • Diese Lehrveranstaltung soll Studierenden die theoretischen und praktischen Aspekte der Multikern-Rechner und Rechnerbündel vermitteln.
  • Es werden Systemarchitekturen als auch Programmierkonzepte behandelt.
  • Die Lehrveranstaltung vermittelt einen Überblick über Netzwerktechnik, ausgewählte Hochgeschwindigkeitsnetzwerke (Gigabit Ethernet, Myrinet, Infiniband u.a.) und Hochleistungs-Kommunikationsbibliotheken.
  • Ergänzend werden auch Ressourcenmanagement, Ablaufplanung, verteilte/parallele Dateisysteme, Programmiermodelle (MPI, gemeinsamer verteilter Speicher, JavaParty) und parallele Algorithmen diskutiert.
Arbeitsbelastung

4 ECTS entspricht 120h:

Präsenzzeit: 30h

Vor- / Nachbereitung der Vorlesung: 60h

Prüfungsvorbereitung: 30h

Ziel

Studierende sind in der Lage den Begriff Parallelität zu motivieren und können Trends in der Rechnerentwicklung bzgl. Taktrate, Anzahl Transistoren und Anzahl Kerne diskutieren. Studierende sind in der Lage, Power Wall, ILP Wall, Memory Wall und die Moore´sche Regel zu definieren. Studierende können Flynns Rechnerkategorien definieren und Beispiele dazu geben. Sie sind in der Lage, die Speicherorganisation von Parallelrechnern zu erläutern und können Multikernrechner, Rechnerbündel und Grafikprozessor definieren und vergleichen. Sie kennen die ungefähre Anzahl von Prozessoren, die der schnellste Rechner der aktuellen Top500-Liste hat.

Studierende sind in der Lage OpenMP zu beschreiben und beherrschen die Konstrukte für parallele Schleifen und Tasks. Sie kennen Konstrukte zur Synchronisation und können diese vergleichen. Studierende erkennen Probleme in einfachen OpenMP-Programmen und sind in der Lage, einfache OpenMP-Programme zu entwickeln. Sie können die Sichtbarkeit von Daten und nützliche OpenMP-Konstrukte erläutern.

Studierende können Konstrukte zum Erzeugen von Parallelität in Java beschreiben. Sie beherrschen die Konzepte kritische Abschnitte und Monitore, Warten und Benachrichtigung, Unterbrechung von Fäden, CAS und volatile. Studierende können Verklemmungen erkennen und vermeiden. Sie sind in der Lage double-checked locking zu erläutern.

Studierende sind in der Lage die Unterschiede zwischen CPU und GPU zu erklären und können die prinzipielle Funktionsweise von GPUs erläutern. Sie können die Faden- und Speicherorganisation für GPUs erklären und einfache Kerne und deren Aufrufe lesen und schreiben.

Studierende sind in der Lage, Zweck und grundsätzliche Operation von Transactional Memory zu erklären, insbesondere Transaktionskonzept und Compare-and-Swap (CAS). Sie verstehen die Implementierungstechnik für Software Transactional Memory (STM) und können diese erläutern. Studierende können Probleme mit STM nennen.

Studierende können theoretische Bewertungskriterien für Netze definieren und bestimmen (Grad, Durchmesser, Kantenkonnektivität, Bisektionsbreite). Sie können Netztopologien definieren, Bewertungskritierien berechnen und Routing-Regeln angeben für Bus, Ring, Torus, Hypercubus, Kreuzschienenverteiler, Mischungspermutation, Butterfly-Netz, Clos-Netz, Fattree, CBB-Netze. Studierende können praktische Bewertungskriterien für Netze definieren

(Latenz, Verzögerung, Bandbreite, Durchsatz) und Vermittlungstechniken erklären (Leitungsvermittlung, Paketvermittlung mit Varianten) sowie Techniken der Hochgeschwindigkeitskommunikation erläutern. Sie können Beispiele für Hochgeschwindigkeitsnetzwerke nennen (Myrinet, Infiniband, Gigabit-Ethernet).

Studierende sind in der Lage, die Kommunikationsmodelle klassisches Send/Receive, erweitertes Send/Receive, Methodenfernaufruf: Remote Procedure Call (RPC), (virtueller) gemeinsamer Speicher: Virtual Shared Memory und Bulk Synchronous Parallelism (BSP) zu erläutern und zu vergleichen.

Studierende können das Programmiermodell von MPI und dessen Kommunikationskonstrukte und ihre Varianten wiedergeben (Punkt-zu-Punkt, kollektive und einseitige Operationen, Kommunikatoren und virtuelle Topologien). Sie sind in der Lage, einfache MPI-Programme zu erklären und zu schreiben.

Studierende können das Maschinenmodell Parallel Random Access Machine (PRAM) erklären, kennen Speicherzugriffsvarianten und können Laufzeit, Beschleunigung, Effizienz sowie Arbeit erklären und bestimmen. Studierende kennen Sprachkonstrukte zur PRAM-Programmierung und können Algorithmen auf PRAM (Reduktion, Prä- und Postfixoperationen, Broadcast, Kompaktifizierung von Listen, Rekurrenzen) erklären. Studierende beherrschen die Transformation eines PRAM Algorithmus zum MPI Programm (Datenverteilung, Prozessverteilung, Virtualisierung und Kommunikation).

Studierende können parallele Algorithmen erklären und ihre Laufzeit bestimmen (Matrizenmultiplikation, transitive Hülle, Zusammenhangskomponenten, Bestimmung aller kürzesten Pfade, lineare Gleichungen, tridiagonale Gleichungssysteme, diskrete/schnelle Fourier Transformation, minimaler Spannbaum, odd-even Transposition Sort, Sortieren mit Stichproben).

Prüfung

Die Erfolgskontrolle erfolgt in Form einer schriftlichen Prüfung nach § 4 Abs. 2 Nr. 1 SPO.