【24h】

Balanced Trees Inhabiting Functional Parallel Programming

机译:平衡树居住功能并行编程

获取原文
获取原文并翻译 | 示例

摘要

Divide-and-conquer is an important technique in parallel programming. However, algebraic data structures do not fit divide-and-conquer parallelism. For example, the usual pointer-based implementation of lists cannot efficiently be divided at their middle, which prevents us from developing list-iterating divide-and-conquer parallel programs. Tree-iterating programs possibly face a similar problem, because trees might be ill-balanced and list-like shapes. This paper examines parallel programming based on balanced trees: we consider balanced-tree structures and develop recursive functions on them. By virtue of their balancing nature, either bottom-up or top-down recursive functions exploit divide-and-conquer parallelism. Our main contribution is to demonstrate the promise of this approach. We propose a way of systematically developing balanced trees from parallel algorithms, and then, we show that efficient parallel programs on them can be developed by equational reasoning powered by Reynolds' relational parametric-ity. We consider functions that operate either lists or binary trees, and show that our methods can uniformly deal with both cases. The developed parallel programs are purely functional, correct by construction, and sometimes even simpler than known algorithms.
机译:分而治之是并行编程中的一项重要技术。但是,代数数据结构不适合分而治之的并行性。例如,列表的常规基于指针的实现无法在中间高效地进行划分,这阻止了我们开发列表迭代分治式并行程序。树木迭代程序可能会遇到类似的问题,因为树木可能不平衡且呈列表状。本文研究了基于平衡树的并行编程:我们考虑平衡树结构并在其上开发递归函数。由于其平衡性质,自下而上或自上而下的递归函数都采用了分而治之的并行性。我们的主要贡献是证明这种方法的前景。我们提出了一种从并行算法系统地开发平衡树的方法,然后证明了可以通过基于雷诺的关系参数性的方程推理来开发有效的并行程序。我们考虑操作列表或二叉树的函数,并表明我们的方法可以统一处理这两种情况。开发的并行程序纯粹是功能性的,可以通过构造来纠正,有时甚至比已知算法更简单。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号