多核 - 如何合并每个核心上的本地数据组?

时间:2009-06-18 15:23:04

标签: algorithm multicore mpi

我有一大堆标量值分布在3D网格上(每个顶点一个值。)

我的目标是展示:

  • 网格中值大于阈值的所有点。
  • 对连接的点进行分组(以简化显示。)

所以我的基本解决方案是:

  1. 找到通过阈值测试的点
  2. 对于尚未分组的每个点,创建一个新组并递归地将所有连接的点放入该组中。
  3. 这很好用,直到我开始使用多核解决方案:

    • 数据集已划分为多个核心
    • 每个核心都知道其他核心共享的边界点。
    • 我正在使用MPI在核心之间进行通信。

    我使用原始算法查找“本地”组的单个核心。

    我的挑战是将“本地”群体合并为全球群体。由于多种原因,问题变得复杂:连接组可以跨越许多核心边界。在一个核心上看似独立的组可以通过第二个核心上的组连接。

    提前致谢。 杰夫

1 个答案:

答案 0 :(得分:1)

阈值测试可以在本地进行,因此为了简单起见,我们可以从讨论中消除它。你想要的是一个分布式算法,用于计算图表中的连通组件。本文应该非常相关:

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1091