我有一组分布在三维网格上的标量值(每个顶点一个值)。
我的目标是展示:
网格中值大于阈值的所有点。
并对连接的点进行分组(以简化显示)。
所以我的基本解决方案是:
找到通过阈值测试的点
对于尚未分组的每个点,创建一个新组并递归地将所有连接点放入该组。
这很好,直到我开始使用多核解决方案:
数据集被划分为多个核心
每个核心都知道其他核心共享的边界点。
我正在使用mpi在内核之间进行通信。
我用我原来的算法找到“局部”组的单个核心。
我的挑战是将“本地”组合并为全局组。这个问题变得复杂有很多原因:连接的组可以跨越许多核心边界。在一个核心上看似分离的组可以通过在第二个核心上的组来连接。
提前谢谢。
杰夫
最佳答案
阈值测试可以在本地进行,因此为了简单起见,我们可以从讨论中消除它。您需要的是有一个分布式算法来计算图中连接的组件。这篇论文应该非常相关:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1091
关于algorithm - 多核-如何合并在每个核上找到的本地数据组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1013334/