Suche


Praktikum Parallele Rechnerarchitekturen

Modulbeschreibung

Beschreibung

Cell-Prozessor

dfsd

Cell-Prozessor mit insgesamt 9 Kernen (8 SPEs und ein PowerPC).

Moderne Anwendungen erfordern immer mehr Rechenleistung, womit die Anforderungen an moderne Hardware stets größer werden, während physikalische Grenzen näher und näher rücken. Ein möglicher Ausweg aus diesem Dilemma ist die Verwendung von paralleler Hardware bzw. parallelen Architekturen. Mit Multicore-Architekturen kamen parallele Rechner endgültig aus der akademischen Nische und wurden rechentechnisches Allgemeingut. Zugleich sind die geläufigen parallelen Rechnerarchitekturen immer heterogener geworden (Cell (Bild 1), GPU, Clusterrechner mit Mehrkernprozessoren, paralleles Rechnen mit FPGAs). Ziel des Praktikums ist es, die Teilnehmer mit veschiedenen Programmiertechniken und der Architektur dieser Prozessoren vertraut zu machen. Dazu sollen alle diese Architekturen anhand eines durchgänigen Beispiels erprobt werden: die Simulation zellulärer Automaten.

Ein berümtes Beispiel für einen zellulären Automat ist „Conway's Game of Life ”. Allgemein handelt es sich bei solchen Anwendungen um eine Menge von Zellen, welche in einem regelmäßigen Raster angeordnet sind. Jede dieser Zellen besitzt einen Zustand, der sich in jedem Zeitschritt ändern kann. Dabei hägt die Berechnung des Folgezustands nur von den Zuständen der Nachbarn der Zelle und ihrem eigenen Zustand ab. Viele Probleme wie die Wärmeausbreitung im Metall (Video 1), Stauvorhersage und Gasmolekübewegungen können so simuliert werden. Aber auch kleine „Spiele” wie Explosionen (Video 2), Sanduhren (Video 3) oder Eisenbahnen (Video 4) sind mit solchen Modellen möglich.

Video 1

Video 2

Video 3

Video 4


Cell-Prozessor

dfsd

CUDA Profiler zur Analyse des Cache-Verhaltens von GPU-Programmen. Cell-Prozessor mit insgesamt 9 Kernen (8 SPEs und ein PowerPC).

In diesem Praktikum lernen Sie nicht (nur) WAS es für Architekturen gibt, sondern (hauptsächlich) WIE man diese programmiert bzw. entwirft. Im Einzelnen werden folgende Themen behandelt:

  • Ausnutzen von Cache-Effekten (Bild 2)
  • Vektorarithmetik (SIMD, SSE, AltiVec)
  • Speicher- und Nachrichtengekoppelte Programmierung (OpenMP, OpenMPI)
  • Architektur-nahe GPU Programmierung (CUDA)
  • Heterogene Multikernprozessoren (CELL BE)
  • Entwerfen eigener Applikationsspezifischer fein-granularar Prozessorfelder in FPGAs
  • Entwerfen eigener grob-granularer Multikernprozessoren in FPGAs
  • Effiziente Speicher und Prozessorkopplung


Game of Life berechnet mit 3 Prozessoren auf einem FPGA mit VGA-Beamer-Ausgabe

Das Praktikum gliedert sich in zwei Teile. Im Teil A steht die Software im Vordergrund. Sie werden auf modernen Architekturen wie Cluster, IBM Cell BE (z.B. Prozessor der Playstation 3) und Grafikkarten rechnen (Bild 3, Video 4). Dabei kommen Standards wie MPI, OpenMP und CUDA zum Einsatz. Im Teil B wird es um die Erstellung von eigener Hardware gehen. Sie werden auf Basis von FPGAs (Bild 4) eigene Prozessoren entwickeln und testen bzw. fertige Prozessoren (Soft-IPs) verwenden, diese effizient miteinander verbinden und programmieren (Video 5, Video 6).

Durchführungsort ist unser Parallelrechnerlabor (Quadcore-PCs, FPGAs mit ESD-Schutz an allen Arbeitsplätzen). Die Parallelrechner befinden sich im Serverraum nebenan.


Video 4: Emergente Ameisen-Simulation

Bild 4: FPGA-Board zur Erprobung selbst entwickelter Hardware (klicken für eine größere Darstellung)

Video 6: Komplettsystem in Aktion


FIXME
FIXME
FIXME
FIXME


Bild 3: Verwendete Architekturen (klicken für eine größere Darstellung) von links nach rechts: Bladecenter als Teil des Clusters, einzelner Blade, Cell Blades (3 Stück in der Mitte) in einem Bladcenter mit Headnode und Entwicklungsserver, Tesla Grafikkarten in einem Standard PC

Für dieses Praktikum sind keine speziellen Vorkenntnisse nötig. Jedes Themengebiet wird durch einen kurzen Vortrag eingeleitet. Dabei werden einige Beispiele vorgestellt, um den Einstieg in die eigene Entwicklung zu erleichtern. Zu jedem Aufgabenkomplex wird es ein kleines Kolloquium geben, welches einen Teil der Bewertung darstellt. Die Bewertung der Durchführung und insgesamt 2 abzugebende Protokolle bilden die anderen Teile Ihrer Note.