Many parallel algorithms use at least linear auxiliary space in the size of the input to enable computations to be done independently without conflicts. Unfortunately, this extra space can be prohibitive for memory-limited machines, preventing large inputs from being processed. Therefore, it is desirable to design parallel in-place algorithms that use sublinear (or even polylogarithmic) auxiliary space. In this paper, we bridge the gap between theory and practice for parallel in-place (PIP) algorithms. We first define two computational models based on fork-join parallelism, which reflect modern parallel programming environments. We then introduce a variety of new parallel in-place algorithms that are simple and efficient, both in theory and in practice. Our algorithmic highlight is the Decomposable Property introduced in this paper, which enables existing non-in-place but highly-optimized parallel algorithms to be converted into parallel in-place algorithms. Using this property, we obtain algorithms for random permutation, list contraction, tree contraction, and merging that take linear work, $O(n^{1-\epsilon})$ auxiliary space, and $O(n^\epsilon\cdot\text{polylog}(n))$ span for $0<\epsilon<1$. We also present new parallel in-place algorithms for scan, filter, merge, connectivity, biconnectivity, and minimum spanning forest using other techniques. In addition to theoretical results, we present experimental results for implementations of many of our parallel in-place algorithms. We show that on a 72-core machine with two-way hyper-threading, the parallel in-place algorithms usually outperform existing parallel algorithms for the same problems that use linear auxiliary space, indicating that the theory developed in this paper indeed leads to practical benefits in terms of both space usage and running time.


翻译:许多平行算法在输入大小中至少使用线性辅助空间, 以便独立进行不发生冲突的计算。 不幸的是, 这个额外空间可能会让记忆限制的机器无法使用, 从而阻止处理大量输入。 因此, 有必要设计使用亚线性( 甚至是多面性) 辅助空间的平行本地算法。 在本文中, 我们缩小了平行( PIP) 算法的理论和实践之间的差距。 我们首先定义了两种基于叉join 平行的计算模型, 这反映了现代平行的编程环境。 然后, 我们引入了各种新的平行的、 在理论和实践中, 使得内存的内存和内存的平行算法 。 我们使用随机的空调算法, 列表收缩, 树木收缩, 并合并了线性工作, 美元 (n+1- eplon) 的内存新平行算法, 以目前的直线性直线性算法计算出目前的 。 美元 双线性算法 中, 将当前 的内存的内存的内存 。

0
下载
关闭预览

相关内容

【经典书】算法C语言实现,Algorithms in C. 672页pdf
专知会员服务
79+阅读 · 2020年8月13日
数据科学导论,54页ppt,Introduction to Data Science
专知会员服务
38+阅读 · 2020年7月27日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
75+阅读 · 2020年7月26日
强化学习最新教程,17页pdf
专知会员服务
167+阅读 · 2019年10月11日
机器学习在材料科学中的应用综述,21页pdf
专知会员服务
46+阅读 · 2019年9月24日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
已删除
将门创投
6+阅读 · 2018年12月3日
Arxiv
0+阅读 · 2021年4月20日
Optimization for deep learning: theory and algorithms
Arxiv
102+阅读 · 2019年12月19日
Arxiv
3+阅读 · 2017年12月14日
VIP会员
相关资讯
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
已删除
将门创投
6+阅读 · 2018年12月3日
Top
微信扫码咨询专知VIP会员