AutoPas ist eine in C++ geschriebene, freie und quelloffene Softwarebibliothek, die mehrere effiziente Algorithmen für Partikelsimulationen bereitstellt. Um moderne Prozessoren voll auszunutzen, ist es notwendig, die Rechenlast gleichmäßig auf mehrere Threads zu verteilen. Einer der in AutoPas implementierten Ansätze zur shared-memory Parallelisierung zerschneidet die Simulationsdomäne in
mehrere gleich große Slices und teilt jedem Thread ein Slice zu. Für inhomogene Partikelverteilungen teilt dies jedoch die Rechenlast nicht gleichmäßig auf die Threads auf.
In dieser Bachelorarbeit wurden mehrere Varianten dieses “sliced traversal” für verschiedene Partikelcontainer implementiert, welche dazu dienen, die Rechenlast besser zu verteilen. Die neuen Traversals wurden mittels zwei verschiedener Partikelsimulationen bewertet, welche auf dem auf der Haswell Architektur basierenden CoolMUC-2 Cluster durchgeführt wurden. Die Ergebnisse zeigen, dass jedes der neuen Traversals in mindestens einem Szenario performanter ist, als das ursprüngliche unbalanzierte sliced Traversal. Da AutoPas autotuning verwendet um das für das Szenario am besten geeignete traversal zu bestimmen, ist dies nur vorteilhaft.
«
AutoPas ist eine in C++ geschriebene, freie und quelloffene Softwarebibliothek, die mehrere effiziente Algorithmen für Partikelsimulationen bereitstellt. Um moderne Prozessoren voll auszunutzen, ist es notwendig, die Rechenlast gleichmäßig auf mehrere Threads zu verteilen. Einer der in AutoPas implementierten Ansätze zur shared-memory Parallelisierung zerschneidet die Simulationsdomäne in
mehrere gleich große Slices und teilt jedem Thread ein Slice zu. Für inhomogene Partikelverteilungen teilt...
»