【发布时间】:2015-06-18 16:51:35
【问题描述】:
在并行计算中,第一步通常是将原点问题划分为一些子任务,并将它们映射到块和线程上。
对于规则数据结构的问题,非常简单高效,例如矩阵乘法、FFT等。
但是图论问题,如最短路径、图遍历、树搜索,具有不规则的数据结构。至少在我看来,在使用 GPU 时将问题划分为块和线程似乎并不容易。
我想知道这种分区是否有有效的解决方案?
为简单起见,以单源最短路径问题为例。我被困在如何划分图表以便局部性和合并。
【问题讨论】:
-
这是一个非常宽泛的问题,很难回答。你有没有想到一个特定的应用程序?您能否细化您所询问的范围?
-
您能否详细介绍一下您正在寻找的算法的应用领域。我可以分享最近邻搜索的经验,但如果你问一些一般的图问题,比如生成树搜索...
-
@marina.k 我没有解决单源最短路径问题。首先,Dijkstra 算法如果在多核系统中实现似乎很难。其次,如果使用类似于 Dijkstra 算法的迭代方案,由于节点之间的约束非常复杂且不规则,很难保证局部性和合并性,甚至使用共享内存进行缓存。
-
@talonmies 请参阅上面的评论。