Publication details
- Parallelisierungsansätze für Wissenschaftliches Rechnen anhand numerischer Simulation (Rasmus Pranke), Bachelor's Thesis, School: Universität Hamburg, 2022-09-26
Publication details
Abstract
Computersimulation ist ein wichtiger Bestandteil moderner Wissenschaft. Es ist eine der größten Herausforderungen für wissenschaftliche Programmierer, diesen eine hohe Performanz zu verliehen. Parallelisierung ist ein wichtiges Werkzeug, um diese Performanz zu erreichen. In dieser Arbeit wird eine repräsentatives Programm erarbeitet, dass als Grundlage für den Einstieg in dieses Feld dienen kann. Das N-Körper-Problem als geeignetes Beispiel identifiziert. Anhand diesem werden die relevanten Ansätze paralleler Ausführung und Ausgabe illustriert. Dabei werden POSIX-Threads, OpenMP und das Message-Passing-Interface als praxisrelevante Werkzeuge für die parallele Ausführung und NetCDF sowie HDF5 für parallele Ein- und Ausgabe vorgestellt. Eine Lösung für das N-Körper-Problem wird implementiert und mithilfe dieser Ansätze parallelisiert. Die Ansätze werden gegenübergestellt und im Hinblick auf ihre Komplexität und Performanz verglichen. Anhand des implementierten Programms werden typische Performanz-Eigenschaften paralleler Software aufgezeigt. Abschließend wird eine Reihe an möglichen Übungsaufgaben identifiziert, mit denen das Programm in der Lehre verwendet werden kann. Es ergibt sich, dass alle Ansätze eine enorme Performanz bieten, dabei aber unterschiedliche Schwerpunkte setzen. OpenMP erlaubt es, die gleiche Parallelisierung wie POSIX-Threads auf Kosten von Flexibilität zu erreichen. MPI dagegen setzt ein etwas komplexere Modell um, dass dafür sehr einfach die Skalierung über einen Rechner hinaus erlaubt. NetCDF und HDF5 stehen sich als Abwägung von Möglichkeiten und Komplexität gegenüber, in der NetCDF durch Simplizität und HDF5 durch Macht glänzt.
BibTeX
@misc{PFWRANSP22,
author = {Rasmus Pranke},
title = {{Parallelisierungsansätze für Wissenschaftliches Rechnen anhand numerischer Simulation}},
advisors = {Jannek Squar and Michael Kuhn},
year = {2022},
month = {09},
school = {Universität Hamburg},
howpublished = {{Online \url{https://wr.informatik.uni-hamburg.de/_media/research:theses:rasmus_pranke_parallelisierungsansaetze_fuer_wissenschaftliches_rechnen_anhand_numerischer_simulation.pdf}}},
type = {Bachelor's Thesis},
abstract = {Computersimulation ist ein wichtiger Bestandteil moderner Wissenschaft. Es ist eine
der größten Herausforderungen für wissenschaftliche Programmierer, diesen eine hohe Performanz
zu verliehen. Parallelisierung ist ein wichtiges Werkzeug, um diese Performanz zu erreichen.
In dieser Arbeit wird eine repräsentatives Programm erarbeitet, dass als Grundlage für den
Einstieg in dieses Feld dienen kann. Das N-Körper-Problem als geeignetes Beispiel
identifiziert. Anhand diesem werden die relevanten Ansätze paralleler Ausführung und Ausgabe
illustriert. Dabei werden POSIX-Threads, OpenMP und das Message-Passing-Interface als
praxisrelevante Werkzeuge für die parallele Ausführung und NetCDF sowie HDF5 für parallele
Ein- und Ausgabe vorgestellt. Eine Lösung für das N-Körper-Problem wird implementiert und
mithilfe dieser Ansätze parallelisiert. Die Ansätze werden gegenübergestellt und im Hinblick
auf ihre Komplexität und Performanz verglichen. Anhand des implementierten Programms werden
typische Performanz-Eigenschaften paralleler Software aufgezeigt. Abschließend wird eine Reihe
an möglichen Übungsaufgaben identifiziert, mit denen das Programm in der Lehre verwendet
werden kann. Es ergibt sich, dass alle Ansätze eine enorme Performanz bieten, dabei aber
unterschiedliche Schwerpunkte setzen. OpenMP erlaubt es, die gleiche Parallelisierung wie
POSIX-Threads auf Kosten von Flexibilität zu erreichen. MPI dagegen setzt ein etwas komplexere
Modell um, dass dafür sehr einfach die Skalierung über einen Rechner hinaus erlaubt. NetCDF
und HDF5 stehen sich als Abwägung von Möglichkeiten und Komplexität gegenüber, in der NetCDF
durch Simplizität und HDF5 durch Macht glänzt.},
}