Projekt mit Seminar „Paralleles Programmieren“

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 werden von den Studierenden unterschiedliche Programmierkonzepte vorgestellt. Bis zum Ende des Semesters 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 Beispielhafte Themen 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.

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.

Zeit Mittwoch, 16–18 Uhr
Ort DKRZ, Raum tbd
Beginn 17.10.2012
Vorbesprechung 17.10.2012, 16 – 18 Uhr
Sprache Vorträge und Abschlussbericht in Englisch
Mailingliste PAPS-1213
  • 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
  • Räumliches Räuber/Beute System
  • Straßennetz und Autofahrer mit kürzesten Wegen
  • Paralleles Indizieren & Suche von Daten
  • … [Eigene Ideen?] …

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-2012/13 wird das Projekt abgeschlossen und die Resultate werden vorgestellt.

Projektthemen:

  • Go-Wrapper für MPIJohann Weging & Alexander Beifuß
  • Räumliches Räuber/Beute SystemEugen Betke & Zhiyu Huang

Seminarthemen:

  • 9. 1. 2013 Shared Memory: Threads & OpenMP, Virtual Shared MemoryEugen Betke
  • 16. 1. 2013 MPI and MPI-3.0Johann Weging
  • 23. 1. 2013 Go und ConcurrencyAlexander Beifuß

Die Ergebnisse des Seminars wurden auf folgender Seite veröffentlicht: PAPO

  • Impressum
  • Privacy
  • teaching/hamburg/wintersemester_2012_2013/paralleles_programmieren_seminar.txt
  • Last modified: 2023-08-28 10:40
  • by 127.0.0.1