Table of Contents
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
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
- Streamprogramming auf GPUs – Julian Fietkau – Präsentation
- Parallel Programming – Joachim Nitschke – Präsentation
- 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
- Experiments with the Fresh Breeze Tree-Based Memory Model, Jack B. Dennis · Guang R. Gao · Xiao X. Meng
- The Fresh Breeze Model of Thread Execution
- Fresh Breeze: A Multiprocessor Chip Architecture Guided by Modular Programming