teaching:sommersemester_2011:paralleles_programmieren

Projekt mit Seminar „Paralleles Programmieren“

Beschreibung

Um bestehende Hochleistungsrechner oder Cluster zu programmieren gibt es verschiedene Konzepte. Die bestehenden Modelle unterschieden sich in vielerlei Hinsicht, der Abstraktionsgrad von der bestehenden Hardware ist eines der entscheidenden Faktoren. Daneben kann die Implementierung eines Modells eine bestehende Programmiersprache erweitern, Bibliotheken bereitstellen, oder den Compiler erweitern. Ein Modell zielt evtl. nur darauf ab Leistung für bestimmte Hardware-Architektur zur Verfügung zu stellen. In der Praxis gibt es für jedes Modell eine Programmiersprachen die sich durchsetzte, jedoch werden auch in der Forschung viele neue Ansätze versucht.

Die Veranstaltung teilt sich in zwei Bereiche, ein Seminar und ein Praxis-Teil in dem eine Anwendung erstellt und parallelisiert wird.

Im Seminar im SS-2011 werden von den Studierenden unterschiedliche Programmierkonzepte vorgestellt. Bis zum WiSe-2011/12 wird in jeweils Kleingruppen die Parallelisierung vorgenommen und ihre Leistung evaluiert. Hierbei dürfen auch verschiedene Sprachen verglichen werden. Die Anwendung kann von der Gruppe ausgesucht werden, es stehen z.B. numerische Algorithmen und Simulationen als auch Löser für Brett- und Kartenspiele zur Verfügung (Themenvorschläge sind unten).

Die Veranstaltung wird voraussichtlich auf Englisch stattfinden, d.h. Seminar-Vorträge und die Ausarbeitungen zu den Projekten werden auf Englisch angefertigt, dies dient auch der Vorbereitung auf den wissenschaftlichen Alltag. Mögliche Defizite in den Sprachkenntnissen werden von uns jedoch großzügig gehandhabt.

Beachten Sie auch unsere allgemeinen organisatorischen Hinweise zu Projekten.

Zielgruppe

Das Projekt mit Seminar eignet sich für Studierende der Informatik in den Diplom- und Masterstudiengängen. Vorkenntnis von Hochleistungsrechnen ist von Vorteil, aber nicht Voraussetzung. Studierende anderer Studiengänge müssen die Anrechnung mit dem jeweiligen Prüfungsausschuss klären.

Zuhörer für das Seminar und auch Teilnehmer sind auch herzlich willkommen.

Daten der Veranstaltung

Zeit Wird in der Vorbesprechung festgelegt
Ort DKRZ, Raum tbd
Beginn Wird in der Vorbesprechung festgelegt
Vorbesprechung 31.03.11, 14 Uhr im DKRZ, Raum 207
Sprache Vorträge und Abschlußbericht in Englisch
Mailingliste PAPS-11

Dozenten

Themenliste

Seminarthemen

  • Hardware: Rechnerarchitekturen und Speicheranbindung
    • Content Addressable Parallel Processor vs. Von Neumann Architektur vs. Datenfluss Architektur
    • Ebenen der Hardware Parallelität: bit-level, instruction level (superskalar), data, and task parallelism
    • Übersicht: SMP & NUMA, Vektorrechner (SSE), Cluster, BlueGene, GPU & Cell Prozessor
  • Software: Übersicht über Programmierparadigmen und Modelle
    • Entwicklung von parallelen Programmen
    • Programmiersprachen vs. Bibliotheken, Automatische Methoden & Spracherweiterungen
    • Paradigmen/Modelle
      • Task-farming, Task-parallelismus, Datenaufteilung (Domain-decomposition) - SPMD, Pipeline, Streaming, Divide & Conquer, Map-reduce, Spekulativ
  • PGAS - Partitioned Global Adress Space
    • Unified Parallel C
    • Global Array Library SHMEM
  • Fresh Breeze Architektur & Programmiermodell
  • Map-Reduce
    • Hadoop
  • OpenCL, GPGPU & Stream Computing
  • Vektorprogrammierung (beeinhaltet SSE)
  • Intel Thread Building Blocks
    • Parallel Programming with .NET – Task Parallel Library
  • Programmiersprachen: Cilk++, Fortress, Erlang
  • Message Passing Interface (MPI)
  • Shared Memory: Threads + OpenMP, Virtual Shared Memory
  • High Performance Fortran & Co-Array Fortran
  • Futures & Promises
    • Futures in Python & C++
  • Parallel Python

Projektvorschläge

  • Räumliches Räuber/Beute System
  • Straßennetz und Autofahrer mit kürzesten Wegen
  • Paralleles Indizieren & Suche von Daten
  • … [Eigene Ideen?] …

Zeitplan und Materialien

Das Seminar findet im SS-2011 statt.

Nach der Festlegung des Themas für die Anwendung soll ein Projektplan erstellt und mit dem Betreuer diskutiert werden. Im Rahmen eines Treffens wird jedes Team den Projektplan und Inhalte in einer Kick-Off-Präsentation skizzieren. Ende WiSe-2011/12 wird das Projekt abgeschlossen und die Resultate werden vorgestellt.

Gerne kann mit dem Projekt auch schon früher begonnen werden!

Präsentationen

  • Kick-off-präsentationen Mi 22. Feb. 2012 14:00 – 16:00 (DKRZ R034)
  • Abschlusspräsentation Mi 4. Apr. 2012 14:00 – 16:00 (DKRZ R034)

Literaturhinweise

teaching/sommersemester_2011/paralleles_programmieren.txt · Last modified: 2018-05-09 17:25 (external edit)