arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1401.4441cs.DC
收藏

避免串行化效应的数据相关任务并行空间分解算法

Avoiding Serialization Effects in Data-Dependency aware Task Parallel Algorithms for Spatial Decomposition

Christoph Niethammer, Colin W. Glass, Jose Gracia

摘要:

空间分解是并行代码的一个流行基础。在任务并行的框架下,空间域上的计算可以被视为一个任务。如果相邻的域交互并共享结果,则需要同步对特定数据的访问,以避免竞争条件。这是各种应用的情况,如大多数分子动力学和许多计算流体动力学代码。在这里,我们提出了一个意想不到的问题,可能会发生在依赖驱动的任务并行化模型,如StarSs:访问特定空间域的任务被视为相互依赖的,依赖关系通过内存地址自动检测。因此,任务生成的顺序将对依赖关系树产生严重影响。在最坏的情况下,会达到完整的串行化,并且不能并行计算两个任务。我们提出了详细的问题的基础上,从分子动力学的一个例子,并介绍了一个理论框架来计算的程度序列化。此外,我们提出的策略,以避免这种不必要的问题。我们建议将这些策略作为在此类场景中使用依赖驱动的任务并行编程模型(如StarSs)时的最佳实践。

英文摘要:

Spatial decomposition is a popular basis for parallelising code. Cast in the frame of task parallelism, calculations on a spatial domain can be treated as a task. If neighbouring domains interact and share results, access to the specific data needs to be synchronized to avoid race conditions. This is the case for a variety of applications, like most molecular dynamics and many computational fluid dynamics codes. Here we present an unexpected problem which can occur in dependency-driven task parallelization models like StarSs: the tasks accessing a specific spatial domain are treated as interdependent, as dependencies are detected automatically via memory addresses. Thus, the order in which tasks are generated will have a severe impact on the dependency tree. In the worst case, a complete serialization is reached and no two tasks can be calculated in parallel. We present the problem in detail based on an example from molecular dynamics, and introduce a theoretical framework to calculate the degree of serialization. Furthermore, we present strategies to avoid this unnecessary problem. We recommend treating these strategies as best practice when using dependency-driven task parallel programming models like StarSs on such scenarios.

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

↑