arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 1707.09668cs.DC
收藏

在轨道分析程序中处理嵌套不平衡和极端载荷不平衡

Handling Nested Parallelism and Extreme Load Imbalance in an Orbital Analysis Code

Benjamin James Gaska, Neha Jothi, Mahdi Soltan Mohammadi, Kat Volk, Michelle Mills Strout

摘要:

嵌套并行存在于搜索多维空间的科学代码中。然而,嵌套并行的实现通常具有开销和负载平衡问题。我们提出的轨道分析代码表现出稀疏的搜索空间,显着的负载不平衡,并停止时,达到第一个解决方案。算法的所有这些方面都加剧了有效使用嵌套并行的问题。在本文中,我们提出了一个检查员/执行者的策略分块到并行波前这样的计算。所提出的共享内存并行不再嵌套,并表现出显着更少的负载不平衡。我们评估这种方法的轨道分析代码,我们从原来的执行时间提高了一个数量级。作为并行编程模型研究生计算机科学课程的一部分,我们展示了如何在并行Perl,Python,Chapel,Pthreads和OpenMP中实现该方法。未来的工作包括研究如何自动化和推广的并行化方法。

英文摘要:

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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑