Implementierung und Optimierung des Lattice-Boltzmann-Verfahrens für das DSM-System Jackal

Student:Alexander Dreweke
Title:Implementierung und Optimierung des Lattice-Boltzmann-Verfahrens für das DSM-System Jackal
Type:bachelor thesis
Advisors:Klemm, M.; Philippsen, M.; Rüde, U.
State:submitted on August 4, 2005
Prerequisits:

Die Lattice-Boltzmann-Methode ist ein Verfahren basierend auf zellulären Automaten zur Simulation von Strömungen. Die durch die Strömung erfasste Domäne wird durch ein Gitter (meist strukturiert) approximiert. In jeder Gitterzelle existieren dabei zu Beginn gesetzte Gewichtungen, in deren Richtung ein Teil der strömenden Partikel aus der Zelle fließen kann (im 2D-Fall: N, NO, O, SO, S, SW, W, NW), sowie eine Gewichtung, wie viele Partikel in der Gitterzelle verbleiben (C). In jedem Zeitschritt der Simulation modifiziert nun das Verfahren die Gewichtungen so, dass diese dem Verlauf der Strömung entsprechen.

Durch den hohen Bedarf des Verfahrens an Rechenzeit und Speicher ist eine Parallelisierung der Implementierung wünschenswert. Am Lehrstuhl für Informatik 10 wurde bereits eine optimierte, parallele Version (für Rechnerbündel) in der Programmiersprache C mittels des Kommunikationsstandards MPI implementiert.

Eine weitere mögliche Strategie zur Parallelisierung des Verfahrens für Rechnerbündel besteht in der Nutzung eines DSM-Systems (DSM=Distributed Shared Memory), welches auf den verteilten Speichern der Knoten des Rechnerbündels eine gemeinsamen Speicher simuliert. Ein solches System implementiert das Jackal-Projekt. Als rein Software-basiertes DSM nutzt es einen speziellen Java-Compiler und dessen Laufzeitsystem zur Bereitstellung des DSM.

Eine Parallelisierung mittels des Jackal-Projektes besteht damit in der Verteilung des Berechnungsgitters auf mehrere (Java-)Threads. Die Verteilung der Daten und der einzelnen Threads übernimmt dann das Laufzeitsystem von Jackal.

Topic:

Im Rahmen dieser Bachelor-Arbeit soll das Lattice-Boltzmann-Verfahren sowohl für 2D- als auch 3D-Gitter implementiert werden. Das rein sequentielle Programme ist anschließend mittels der Java-Thread-API zu parallelisieren.

Durch Messungen ist die Leistungsfähigkeit der Java-Implementierung nachzuweisen. Durch die Experimente soll weiterhin nachgewiesen werden, welche Leistungseinbußen auf die Verwendung des DSM-Systems zurückzuführen sind, und wie diese durch gezielte Optimierungen sowohl auf Ebene des Programms als auch des DSM-Systems ausgeglichen werden können.

Meilensteine

  • Implementierung eines sequentiellen Programms für 2D und 3D
  • Parallelisierung des sequentiellen Programms mittels Java-Threads
  • Laufzeitmessungen in Bezug auf Skalierbarkeit und paralleler Effizienz
  • Optimierung der parallelen Programm-Version
  • Optimierungsvorschläge in Bezug auf das Jackal-System
  • Schriftliche Ausarbeitung
watermark seal