首页> 外文期刊>Parallel Processing Letters >Perfectly Load-Balanced, Stable, Synchronization-Free Parallel Merge
【24h】

Perfectly Load-Balanced, Stable, Synchronization-Free Parallel Merge

机译:负载均衡,稳定,无同步的并行合并

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

We present a simple, work-optimal and synchronization-free solution to the problem of stably merging in parallel two given, ordered arrays of m and n elements into an ordered array of m+n elements. The main contribution is a new, simple, fast and direct algorithm that determines, for any prefix of the stably merged output array, the exact prefixes of each of the two input arrays needed to produce this output prefix. More precisely, for any given index in the resulting, but not yet constructed output array, representing the desired output prefix, the algorithm computes the indices (called co-ranks) in each of the two input arrays representing the required input prefixes without having to merge the input arrays. The co-ranking algorithm takes O(log min (m, n)) time steps, and uses O(1) space. Co-ranking is used in parallel to partition the input arrays into a collection of as many pairs as desired, each pair with exactly the same number of elements. Any stable, sequential merge algorithm can be used to merge pairs independently. The result is a perfectly load-balanced, stable, parallel merge algorithm. Co-ranking and sequential merging of pairs can be done without synchronization. Compared to other, linear speed- up approaches to the parallel merge problem, the algorithm is considerably simpler and can be up to a factor of two faster. Compared to previous algorithms for solving the co-ranking problem, the new algorithm works for arbitrary output array indices and maintains stability in the presence of repeated elements at no extra space or time cost. When the number of processing elements p does not exceed (m+n)/log min(m, n), the parallel merge algorithm has perfect, linear speedup p. Furthermore, it is easy to implement on both shared and distributed memory systems.
机译:对于稳定地将两个给定的m和n个元素的有序数组并行合并到m + n个元素的有序数组中,我们提出了一个简单,工作优化且无同步的解决方案。主要贡献是一种新的,简单,快速和直接的算法,该算法针对稳定合并的输出数组的任何前缀确定生成此输出前缀所需的两个输入数组中每个数组的确切前缀。更准确地说,对于结果中但尚未构建的表示期望的输出前缀的给定索引中的任何给定索引,该算法将在表示需要的输入前缀的两个输入数组中的每个输入数组中计算索引(称为协同秩),而不必合并输入数组。联合排名算法采用O(log min(m,n))个时间步长,并使用O(1)空间。并行使用并行排序将输入数组划分为所需的多对对的集合,每对具有完全相同数量的元素。任何稳定的顺序合并算法均可用于独立合并对。结果是一个完美的负载平衡,稳定的并行合并算法。可以在不同步的情况下完成对的共同排序和顺序合并。与解决并行合并问题的其他线性加速方法相比,该算法简单得多,并且可以快两倍。与以前的解决同排名问题的算法相比,新算法可用于任意输出数组索引,并在存在重复元素的情况下保持稳定性,而不会占用额外的空间或时间。当处理元素的数量p不超过(m + n)/ log min(m,n)时,并行合并算法具有完美的线性加速比p。此外,在共享和分布式存储系统上都易于实现。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号