Parallel processing CUDA/OpenCL中的深度优先搜索

Parallel processing CUDA/OpenCL中的深度优先搜索,parallel-processing,cuda,opencl,gpgpu,depth-first-search,Parallel Processing,Cuda,Opencl,Gpgpu,Depth First Search,我已经在MPI中实现了并行深度优先搜索算法,我正在考虑尝试在CUDA/OpenCL中也实现它,只是为了好玩/出于好奇。该算法简单但不繁琐。C中的单核版本大约有200行代码 GPGPU在多大程度上适用于此类问题?在CUDA中实现树搜索操作并不是那么简单。有一些文件,像那一份 “在GPU上探索回溯范式的经验教训” 还有另一个相当简单的实现(我认为这不是一个大规模并行化的实现) “使用CUDA在GPU上加速大图算法” Pawan Harish和P.J.Narayanan 困难来自这样一个事实,

我已经在MPI中实现了并行深度优先搜索算法,我正在考虑尝试在CUDA/OpenCL中也实现它,只是为了好玩/出于好奇。该算法简单但不繁琐。C中的单核版本大约有200行代码


GPGPU在多大程度上适用于此类问题?

在CUDA中实现树搜索操作并不是那么简单。有一些文件,像那一份

  • “在GPU上探索回溯范式的经验教训”
还有另一个相当简单的实现(我认为这不是一个大规模并行化的实现)

  • “使用CUDA在GPU上加速大图算法” Pawan Harish和P.J.Narayanan

困难来自这样一个事实,即树操作通常涉及决策,并根据决策采取不同的分支。因此,在没有重叠和冗余操作的情况下大规模并行化操作是相当困难的

有一些方法使用堆栈和队列实现来遍历树

您可以在此处找到类似的问题:

“困难来自这样一个事实:树操作通常涉及决策制定,并根据决策采取不同的分支。”@phoad-我等不及动态并行:)有类似“推测执行”的方法。尽管它降低了并行度,但它可能有利于树生长和搜索算法。