Particle simulators commonly loop over particles and compute their interactions pairwise. Indeed, running the computations in parallel threads can significantly speed up the simulations. However, developers should look out for load imbalance: the uneven distribution of tasks between threads, such that some finish early and wait instead of taking up more work. For example, this may occur when tasks differ in complexity. To maintain optimal performance, simulators can thus benefit from load balancing techniques when scheduling their loop iterations to the threads. This thesis improves parallel loop scheduling in AutoPas: a particle simulation library. AutoPas employs OpenMP: a library that provides loop scheduling features via compiler directives. We integrate Auto4OMP, which is an OpenMP extension with advanced load balancing capabilities. To test the new setup, we ran different simulations with various parameters. In general, Auto4OMP performed close to the optimal standard OpenMP schedule, but the impact of its advanced scheduling techniques on non-homogeneous simulations was weaker than expected. That said, it showed promising results with homogeneous simulations.
«
Particle simulators commonly loop over particles and compute their interactions pairwise. Indeed, running the computations in parallel threads can significantly speed up the simulations. However, developers should look out for load imbalance: the uneven distribution of tasks between threads, such that some finish early and wait instead of taking up more work. For example, this may occur when tasks differ in complexity. To maintain optimal performance, simulators can thus benefit from load balanc...
»