Effiziente parallele Implementierung von hierarchischen N-Body-Algorithmen auf Multicore-Systemen mit GPU-Beschleunigung [article]

Hendrik Hochstetter, Universität Stuttgart, Universität Stuttgart
<span title="2012-09-03">2012</span>
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
more &raquo; ... obleme 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 [...]
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.18419/opus-2914">doi:10.18419/opus-2914</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/qzhhvo4idvferf37qnfccm5hbe">fatcat:qzhhvo4idvferf37qnfccm5hbe</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20200224205718/https://elib.uni-stuttgart.de/bitstream/11682/2931/1/DIP_3285.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/4f/ee/4fee03efbb48045bda5eaebb24ceebbd226ec4c7.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.18419/opus-2914"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> Publisher / doi.org </button> </a>