Personal tools

Masterpraktikum Scientific Computing - High Performance Computing - Winter 09

From Sccswiki

Jump to: navigation, search
Term
Winter 09
Lecturer
Univ.-Prof. Dr. Hans-Joachim Bungartz,
Prof. Dr. Michael Bader,
Thomas Auckenthaler,
Wolfgang Eckhardt
Time and Place
Dienstag, 15:15 bis 16:45 im Raum 02.07.023 (erstes Treffen am 20.10.)
Audience
Studierende im Masterstudiengang Informatik, Studierende der Informatik im Hauptstudium, Studierende der Techno-, Diplom- und Finanz-Mathematik
Tutorials
-
Exam
-
Semesterwochenstunden / ECTS Credits
6 SWS / 10 Credits
TUMonline
{{{tumonline}}}



Contents

Inhalt

Leistungsfähige Programme, die die Eigenschaften schneller Rechnersysteme voll ausnutzen sind heute wichtige Wettbewerbsfaktoren in Forschung und Industrie. Die maximale Rechenleistung eines durchschnittlichen Arbeitsplatzrechners wurde in den letzten Jahren drastisch gesteigert. Begriffe wie SSE, EPIC, Dual-core, Multithreading usw. sprießen im Wettlauf der Hardwarehersteller wie Pilze aus dem Boden. Das Praktikum "Wissenschaftliches Rechnen" beschäftigt sich mit den Konzepten, die hinter diesen Schlagwörtern stehen, mit deren Einfluss auf den Entwurf und die Programmierung rechenintensiver Programme sowie mit der Implementierung dieser Programme auf leistungsstarken Rechnern und Rechenclustern.

Die Veranstaltung vermittelt den TeilnehmerInnen ein Verständnis für leistungsorientierte Datenstrukturen und Algorithmen der seriellen und parallelen Programmierung. Die Besonderheiten der einzelnen Plattformen werden besprochen und am Laufzeitverhalten numerischer Algorithmen verifiziert.

Konkrete Themen sind etwa:

  • Performance-Optimierung sequentieller Programme
    • Pipelining
      • Loop unrolling
      • Vermeidung von Datenabhängigkeiten
    • Cache-Effizienz
      • Cache blocking
    • Performance-Messung
  • Vorstellung aktueller Hardware
    • CPUs
    • Speicherarchitekturen
    • Supercomputer
  • Parallele Programmierung
    • Parallelisierung auf Systemen mit gemeinsamem Speicher (OpenMP)
    • Parallelisierung auf Systemen mit verteiltem Speicher (MPI)
    • Lastbalancierung

Das Praktikum gliedert sich in zwei Teile. Im ersten Teil werden die grundlegenden Begriffe, Konzepte und Programmiertechniken eingeführt. Hier sind auf jedem Übungsblatt mehrere Aufgaben teils theoretisch, teils praktisch von jeder Übungsgruppe zu lösen. Im zweiten Teil bearbeitet jede Übungsgruppe ein Projekt. Hier wird das im ersten Teil Erlernte an einem praktischen Beispiel angewandt. Nähere Informationen erhalten die Teilnehmer in der Vorbesprechung.

Einordnung

Masterpraktikum (Modul IN2106), Wahlpflichtpraktikum im Bereich theoretische Informatik (Modul IN8904)

Voraussetzungen

  • Kenntnisse in der C-Programmierung unter Linux sind von Vorteil

Folien

Übungsblätter

Material

Aktuelles

Nächstes Treffen am Dienstag, 12.01.2010