Diploma Thesis DIP-3285

BibliographyHochstetter, Hendrik: Effiziente parallele Implementierung von hierarchischen N-Body-Algorithmen auf Multicore-Systemen mit GPU-Beschleunigung.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Diploma Thesis No. 3285 (2012).
97 pages, german.
CR-SchemaD.1.3 (Concurrent Programming)
I.6.3 (Simulation and Modeling Applications)
J.2 (Physical Sciences and Engineering)
Abstract

Mit Hilfe der Simulation von N-Body-Problemen lassen sich in verschiedenen naturwissenschaftlichen Disziplinen, wie der Astrophysik oder der Biochemie, Erkenntnisse gewinnen, die allein durch Theorie und Experiment nicht zugänglich wären. In der vorliegenden Diplomarbeit wird eine effiziente parallele Implementierung des Barnes-Hut-Verfahrens zur näherungsweisen Berechnung von N-Body-Problemen beschrieben.

Als Einführung in die Thematik werden zunächst die physikalischen Grundlagen der N-Body-Probleme vorgestellt. Es folgt ein Überblick über verschiedene algorithmische Lösungsansätze für N-Body-Probleme, in dem auch der Barnes-Hut-Algorithmus vorgestellt wird. Um den Übergang von der sequentiellen Beschreibung zur parallelen Implementierung zu ermöglichen, werden anschließend unterschiedliche Klassifikationen von Parallelrechnerarchitekturen eingeführt und Aufbau sowie Programmierung von Multicore-Systemen und Graphikkarten beschrieben.

Zur Implementierung des Barnes-Hut-Verfahrens wird dieses zunächst in mehrere Teilprobleme zerlegt, deren Lösungen sich getrennt voneinander als Module umsetzen lassen. Für jedes Modul werden anschließend unterschiedliche sequentielle und parallele CPU-Implementierungen und GPU-Implementierungen beschrieben und jeweils miteinander verglichen. Es zeigt sich dabei, dass sich insbesondere das zeitaufwändigste Teilproblem, die Kraftauswertung, sehr gut für eine Parallelisierung sowohl auf CPU als auch auf GPU eignet, wobei die Wahl der eingesetzten Datenstrukturen einen maßgeblichen Anteil an der effizienten Umsetzung hat. Zudem kann demonstriert werden, dass sich die Berechnungsgeschwindigkeit durch eine gemeinsame Berechnung der Kräfte auf dem Hauptprozessor und der Graphikkarte noch weiter steigern lässt.

Nach der Vorstellung der Implementierungen der verschiedenen Module werden schließlich durch Kombination einzelner Implementierungen unterschiedliche Gesamtprogramme zusammengestellt und miteinander verglichen. Es stellt sich dabei heraus, dass das optimale Gesamtprogramm aus den jeweils besten Implementierungen der Teilproblemlösungen besteht. Anhand verschiedener Gesamtprogramme kann zuletzt auch nachgewiesen werden, dass sich Speicherlatenzen sehr gut verstecken lassen, wobei diese auch ohne Verstecken nur einen kleinen Bruchteil des Gesamtaufwands ausmachen und somit zu vernachlässigen sind.

Full text and
other links
PDF (2597840 Bytes)
Department(s)University of Stuttgart, Institute of Parallel and Distributed Systems, Distributed Systems
Superviser(s)Hannak, Hannes; Blochinger, Wolfgang
Entry dateAugust 24, 2012
   Publ. Computer Science