我正在 MPI 中实现并行深度优先搜索算法的一半,我正在考虑尝试在 CUDA/OpenCL 中也这样做,只是为了好玩/出于好奇。该算法很简单,但并非微不足道。 C 语言的单核版本大约有 200 行代码。
GPGPU多少适合这种问题?
最佳答案
在 CUDA 中实现树搜索操作并不是那么简单。有一些文件,比如那个
另一个相当简单的实现(在我看来不是一个大规模并行化的实现)
Pawan Harish 和 P. J. Narayanan
困难在于,树操作通常涉及决策,并根据决策采取不同的分支。因此,在不重叠的情况下大规模并行化操作并进行冗余操作非常困难。
有一些方法使用堆栈和队列实现来遍历树。
您可能会在这里找到类似的问题:
Error: BFS on CUDA Synchronization
关于parallel-processing - CUDA/OpenCL 中的深度优先搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12671654/