arXiv · 1707.09668
Handling Nested Parallelism and Extreme Load Imbalance in an Orbital Analysis Code
Abstract
Nested parallelism exists in scientific codes that are searching multi-dimensional spaces. However, implementations of nested parallelism often have overhead and load balance issues. The Orbital Analysis code we present exhibits a sparse search space, significant load imbalances, and stopping when the first solution is reached. All these aspects of the algorithm exacerbate the problem of using nested parallelism effectively. In this paper, we present an inspector/executor strategy for chunking such computations into parallel wavefronts. The presented shared memory parallelization is no longer nested and exhibits significantly less load imbalance. We evaluate this approach on an Orbital analysis code, and we improve the execution time from the original implementation by an order of magnitude. As part of a Graduate Computer Science course in Parallel Programming models, we show how the approach can be implemented in parallel Perl, Python, Chapel, Pthreads, and OpenMP. Future work includes investigating how to automate and generalize the parallelization approach.
Explore related subjects
Keep this discovery
Benjamin James Gaska, Neha Jothi, Mahdi Soltan Mohammadi, Kat Volk, Michelle Mills Strout. 2017-07-30. Handling Nested Parallelism and Extreme Load Imbalance in an Orbital Analysis Code. https://arxiv.org/abs/1707.09668
Cite the original work for its findings. Save a collection to share your selection of sources.